def initialize(owner_pipe, options = {})
@server_sockets = {}
if should_use_unix_sockets?
@main_socket_address, @main_socket = create_unix_socket_on_filesystem
@server_sockets[:main] = [@main_socket_address, 'unix', @main_socket]
else
@main_socket_address, @main_socket = create_tcp_socket
@server_sockets[:main] = [@main_socket_address, 'tcp', @main_socket]
end
@http_socket_address, @http_socket = create_tcp_socket
@server_sockets[:http] = [@http_socket_address, 'tcp', @http_socket]
@owner_pipe = owner_pipe
@options = options
@previous_signal_handlers = {}
@main_loop_generation = 0
@main_loop_thread_lock = Mutex.new
@main_loop_thread_cond = ConditionVariable.new
@memory_limit = options["memory_limit"] || 0
@connect_password = options["connect_password"]
@detach_key = options["detach_key"]
@pool_account_username = options["pool_account_username"]
if options["pool_account_password_base64"]
@pool_account_password = options["pool_account_password_base64"].unpack('m').first
end
@analytics_logger = options["analytics_logger"]
@iterations = 0
@processed_requests = 0
@soft_termination_linger_time = 3
@main_loop_running = false
@passenger_header = determine_passenger_header
@debugger = @options["debugger"]
if @debugger
@server_sockets[:ruby_debug_cmd] = ["127.0.0.1:#{Debugger.cmd_port}", 'tcp']
@server_sockets[:ruby_debug_ctrl] = ["127.0.0.1:#{Debugger.ctrl_port}", 'tcp']
end
end