# File lib/phusion_passenger/request_handler/thread_handler.rb, line 63
        def initialize(request_handler, options = {})
                @request_handler   = request_handler
                @server_socket     = Utils.require_option(options, :server_socket)
                @socket_name       = Utils.require_option(options, :socket_name)
                @protocol          = Utils.require_option(options, :protocol)
                @app_group_name    = Utils.require_option(options, :app_group_name)
                Utils.install_options_as_ivars(self, options,
                        :app,
                        :union_station_core,
                        :connect_password
                )

                @stats_mutex   = Mutex.new
                @interruptable = false
                @iteration     = 0

                if @protocol == :session
                        metaclass = class << self; self; end
                        metaclass.class_eval do
                                alias parse_request parse_session_request
                        end
                elsif @protocol == :http
                        metaclass = class << self; self; end
                        metaclass.class_eval do
                                alias parse_request parse_http_request
                        end
                else
                        raise ArgumentError, "Unknown protocol specified"
                end
        end