# File lib/phusion_passenger/wsgi/application_spawner.rb, line 53
        def spawn_application(options)
                a, b = UNIXSocket.pair
                pid = safe_fork(self.class.to_s, true) do
                        a.close
                        
                        file_descriptors_to_leave_open = [0, 1, 2, b.fileno]
                        NativeSupport.close_all_file_descriptors(file_descriptors_to_leave_open)
                        close_all_io_objects_for_fds(file_descriptors_to_leave_open)
                        
                        run(MessageChannel.new(b), options)
                end
                b.close
                Process.waitpid(pid) rescue nil
                
                channel = MessageChannel.new(a)
                return AppProcess.read_from_channel(channel)
        end