class PhusionPassenger::Rack::ApplicationSpawner

def self.start_request_handler(channel, app, forked, options)

def self.start_request_handler(channel, app, forked, options)
	app_root = options["app_root"]
	$0 = "Rack: #{options['app_group_name']}"
	reader, writer = IO.pipe
	begin
		reader.close_on_exec!
		
		handler = RequestHandler.new(reader, app, options)
		app_process = AppProcess.new(app_root, Process.pid, writer,
			handler.server_sockets)
		app_process.write_to_channel(channel)
		writer.close
		channel.close
		
		before_handling_requests(forked, options)
		handler.main_loop
	ensure
		channel.close rescue nil
		writer.close rescue nil
		handler.cleanup rescue nil
		after_handling_requests
	end
end