passenger 2.2.1 → 2.2.2
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of passenger might be problematic. Click here for more details.
- data/Rakefile +66 -79
- data/bin/passenger-install-nginx-module +1 -1
- data/bin/passenger-memory-stats +1 -1
- data/bin/passenger-spawn-server +8 -2
- data/doc/Users guide Apache.html +33 -49
- data/doc/Users guide Apache.txt +28 -27
- data/doc/Users guide Nginx.html +9 -19
- data/doc/Users guide Nginx.txt +8 -20
- data/doc/cxxapi/Bucket_8h-source.html +1 -1
- data/doc/cxxapi/Configuration_8h-source.html +297 -300
- data/doc/cxxapi/DirectoryMapper_8h-source.html +1 -1
- data/doc/cxxapi/Hooks_8h-source.html +1 -1
- data/doc/cxxapi/annotated.html +1 -1
- data/doc/cxxapi/classHooks-members.html +1 -1
- data/doc/cxxapi/classHooks.html +1 -1
- data/doc/cxxapi/classPassenger_1_1DirectoryMapper-members.html +1 -1
- data/doc/cxxapi/classPassenger_1_1DirectoryMapper.html +1 -1
- data/doc/cxxapi/classes.html +1 -1
- data/doc/cxxapi/definitions_8h-source.html +1 -1
- data/doc/cxxapi/files.html +1 -1
- data/doc/cxxapi/functions.html +1 -1
- data/doc/cxxapi/functions_func.html +1 -1
- data/doc/cxxapi/graph_legend.html +1 -1
- data/doc/cxxapi/group__Configuration.html +1 -23
- data/doc/cxxapi/group__Core.html +1 -1
- data/doc/cxxapi/group__Hooks.html +1 -1
- data/doc/cxxapi/group__Support.html +1 -1
- data/doc/cxxapi/main.html +1 -1
- data/doc/cxxapi/modules.html +1 -1
- data/doc/users_guide_snippets/rackup_specifications.txt +4 -2
- data/ext/apache2/Configuration.h +0 -3
- data/ext/apache2/Hooks.cpp +5 -3
- data/ext/common/ApplicationPoolServer.h +1 -0
- data/ext/common/ApplicationPoolServerExecutable.cpp +5 -2
- data/ext/common/SpawnManager.h +1 -0
- data/ext/common/Utils.cpp +22 -23
- data/ext/common/Utils.h +32 -21
- data/ext/common/Version.h +31 -0
- data/ext/nginx/ContentHandler.c +61 -8
- data/ext/nginx/HelperServer.cpp +3 -0
- data/ext/nginx/HttpStatusExtractor.h +185 -0
- data/ext/nginx/StaticContentHandler.c +18 -3
- data/ext/nginx/config +2 -1
- data/ext/nginx/ngx_http_passenger_module.c +21 -15
- data/ext/oxt/backtrace.cpp +4 -2
- data/ext/oxt/spin_lock.hpp +3 -3
- data/lib/phusion_passenger/abstract_request_handler.rb +5 -3
- data/lib/phusion_passenger/admin_tools/control_process.rb +6 -1
- data/lib/phusion_passenger/constants.rb +2 -2
- data/lib/phusion_passenger/rack/application_spawner.rb +2 -1
- data/lib/phusion_passenger/rack/request_handler.rb +45 -35
- data/lib/phusion_passenger/templates/nginx/config_snippets.txt.erb +1 -1
- data/lib/phusion_passenger/utils.rb +13 -3
- data/misc/rake/cplusplus.rb +7 -0
- data/test/ApplicationPoolServer_ApplicationPoolTest.cpp +2 -0
- data/test/ApplicationPoolTest.cpp +39 -62
- data/test/CxxTestMain.cpp +6 -6
- data/test/HttpStatusExtractorTest.cpp +17 -0
- data/test/StandardApplicationPoolTest.cpp +2 -0
- data/test/UtilsTest.cpp +17 -28
- data/test/ruby/abstract_request_handler_spec.rb +3 -7
- data/test/ruby/utils_spec.rb +18 -13
- data/test/ruby/wsgi/application_spawner_spec.rb +5 -9
- data/test/stub/railsapp/app/controllers/{bar_controller_1.rb → bar_controller.rb} +0 -0
- data/test/stub/railsapp/app/controllers/bar_controller_1.txt +5 -0
- data/test/stub/railsapp/app/controllers/{bar_controller_2.rb → bar_controller_2.txt} +0 -0
- data/test/support/Support.h +20 -0
- data/test/support/config.rb +13 -0
- data/vendor/README +4 -3
- data/vendor/{rack-0.9.1 → rack-1.0.0-git}/COPYING +1 -1
- data/vendor/{rack-0.9.1 → rack-1.0.0-git}/KNOWN-ISSUES +0 -0
- data/vendor/{rack-0.9.1 → rack-1.0.0-git}/README +54 -7
- data/vendor/rack-1.0.0-git/Rakefile +164 -0
- data/vendor/{rack-0.9.1 → rack-1.0.0-git}/lib/rack.rb +7 -3
- data/vendor/{rack-0.9.1 → rack-1.0.0-git}/lib/rack/adapter/camping.rb +0 -0
- data/vendor/rack-1.0.0-git/lib/rack/auth/abstract/handler.rb +37 -0
- data/vendor/{rack-0.9.1 → rack-1.0.0-git}/lib/rack/auth/abstract/request.rb +0 -0
- data/vendor/{rack-0.9.1 → rack-1.0.0-git}/lib/rack/auth/basic.rb +0 -0
- data/vendor/{rack-0.9.1 → rack-1.0.0-git}/lib/rack/auth/digest/md5.rb +1 -1
- data/vendor/{rack-0.9.1 → rack-1.0.0-git}/lib/rack/auth/digest/nonce.rb +0 -0
- data/vendor/{rack-0.9.1 → rack-1.0.0-git}/lib/rack/auth/digest/params.rb +0 -0
- data/vendor/{rack-0.9.1 → rack-1.0.0-git}/lib/rack/auth/digest/request.rb +2 -2
- data/vendor/rack-1.0.0-git/lib/rack/auth/openid.rb +480 -0
- data/vendor/{rack-0.9.1 → rack-1.0.0-git}/lib/rack/builder.rb +1 -5
- data/vendor/{rack-0.9.1 → rack-1.0.0-git}/lib/rack/cascade.rb +0 -0
- data/vendor/rack-1.0.0-git/lib/rack/chunked.rb +49 -0
- data/vendor/{rack-0.9.1 → rack-1.0.0-git}/lib/rack/commonlogger.rb +0 -0
- data/vendor/{rack-0.9.1 → rack-1.0.0-git}/lib/rack/conditionalget.rb +4 -0
- data/vendor/{rack-0.9.1 → rack-1.0.0-git}/lib/rack/content_length.rb +7 -3
- data/vendor/rack-1.0.0-git/lib/rack/content_type.rb +23 -0
- data/vendor/rack-1.0.0-git/lib/rack/deflater.rb +96 -0
- data/vendor/{rack-0.9.1 → rack-1.0.0-git}/lib/rack/directory.rb +5 -2
- data/vendor/{rack-0.9.1 → rack-1.0.0-git}/lib/rack/file.rb +4 -1
- data/vendor/{rack-0.9.1 → rack-1.0.0-git}/lib/rack/handler.rb +22 -1
- data/vendor/{rack-0.9.1 → rack-1.0.0-git}/lib/rack/handler/cgi.rb +7 -3
- data/vendor/{rack-0.9.1 → rack-1.0.0-git}/lib/rack/handler/evented_mongrel.rb +0 -0
- data/vendor/{rack-0.9.1 → rack-1.0.0-git}/lib/rack/handler/fastcgi.rb +26 -24
- data/vendor/{rack-0.9.1 → rack-1.0.0-git}/lib/rack/handler/lsws.rb +7 -4
- data/vendor/{rack-0.9.1 → rack-1.0.0-git}/lib/rack/handler/mongrel.rb +5 -3
- data/vendor/{rack-0.9.1 → rack-1.0.0-git}/lib/rack/handler/scgi.rb +5 -3
- data/vendor/{rack-0.9.1 → rack-1.0.0-git}/lib/rack/handler/swiftiplied_mongrel.rb +0 -0
- data/vendor/{rack-0.9.1 → rack-1.0.0-git}/lib/rack/handler/thin.rb +3 -0
- data/vendor/{rack-0.9.1 → rack-1.0.0-git}/lib/rack/handler/webrick.rb +11 -5
- data/vendor/{rack-0.9.1 → rack-1.0.0-git}/lib/rack/head.rb +0 -0
- data/vendor/{rack-0.9.1 → rack-1.0.0-git}/lib/rack/lint.rb +138 -66
- data/vendor/{rack-0.9.1 → rack-1.0.0-git}/lib/rack/lobster.rb +0 -0
- data/vendor/rack-1.0.0-git/lib/rack/lock.rb +16 -0
- data/vendor/{rack-0.9.1 → rack-1.0.0-git}/lib/rack/methodoverride.rb +0 -0
- data/vendor/{rack-0.9.1 → rack-1.0.0-git}/lib/rack/mime.rb +4 -4
- data/vendor/{rack-0.9.1 → rack-1.0.0-git}/lib/rack/mock.rb +42 -5
- data/vendor/{rack-0.9.1 → rack-1.0.0-git}/lib/rack/recursive.rb +0 -0
- data/vendor/rack-1.0.0-git/lib/rack/reloader.rb +106 -0
- data/vendor/{rack-0.9.1 → rack-1.0.0-git}/lib/rack/request.rb +46 -10
- data/vendor/{rack-0.9.1 → rack-1.0.0-git}/lib/rack/response.rb +15 -3
- data/vendor/rack-1.0.0-git/lib/rack/rewindable_input.rb +98 -0
- data/vendor/rack-1.0.0-git/lib/rack/session/abstract/id.rb +142 -0
- data/vendor/{rack-0.9.1 → rack-1.0.0-git}/lib/rack/session/cookie.rb +2 -0
- data/vendor/rack-1.0.0-git/lib/rack/session/memcache.rb +109 -0
- data/vendor/rack-1.0.0-git/lib/rack/session/pool.rb +100 -0
- data/vendor/{rack-0.9.1 → rack-1.0.0-git}/lib/rack/showexceptions.rb +2 -1
- data/vendor/{rack-0.9.1 → rack-1.0.0-git}/lib/rack/showstatus.rb +1 -1
- data/vendor/{rack-0.9.1 → rack-1.0.0-git}/lib/rack/static.rb +0 -0
- data/vendor/{rack-0.9.1 → rack-1.0.0-git}/lib/rack/urlmap.rb +12 -5
- data/vendor/{rack-0.9.1 → rack-1.0.0-git}/lib/rack/utils.rb +212 -65
- metadata +71 -170
- data/doc/rdoc/classes/ConditionVariable.html +0 -194
- data/doc/rdoc/classes/Exception.html +0 -120
- data/doc/rdoc/classes/GC.html +0 -113
- data/doc/rdoc/classes/IO.html +0 -169
- data/doc/rdoc/classes/PhusionPassenger.html +0 -238
- data/doc/rdoc/classes/PhusionPassenger/AbstractInstaller.html +0 -153
- data/doc/rdoc/classes/PhusionPassenger/AbstractRequestHandler.html +0 -506
- data/doc/rdoc/classes/PhusionPassenger/AbstractServer.html +0 -692
- data/doc/rdoc/classes/PhusionPassenger/AbstractServer/ServerAlreadyStarted.html +0 -97
- data/doc/rdoc/classes/PhusionPassenger/AbstractServer/ServerError.html +0 -96
- data/doc/rdoc/classes/PhusionPassenger/AbstractServer/ServerNotStarted.html +0 -97
- data/doc/rdoc/classes/PhusionPassenger/AbstractServer/UnknownMessage.html +0 -96
- data/doc/rdoc/classes/PhusionPassenger/AbstractServerCollection.html +0 -598
- data/doc/rdoc/classes/PhusionPassenger/AdminTools.html +0 -140
- data/doc/rdoc/classes/PhusionPassenger/AdminTools/ControlProcess.html +0 -264
- data/doc/rdoc/classes/PhusionPassenger/AdminTools/ControlProcess/Instance.html +0 -138
- data/doc/rdoc/classes/PhusionPassenger/AppInitError.html +0 -154
- data/doc/rdoc/classes/PhusionPassenger/Application.html +0 -283
- data/doc/rdoc/classes/PhusionPassenger/ConsoleTextTemplate.html +0 -172
- data/doc/rdoc/classes/PhusionPassenger/FrameworkInitError.html +0 -145
- data/doc/rdoc/classes/PhusionPassenger/HTMLTemplate.html +0 -175
- data/doc/rdoc/classes/PhusionPassenger/InitializationError.html +0 -141
- data/doc/rdoc/classes/PhusionPassenger/InvalidPath.html +0 -92
- data/doc/rdoc/classes/PhusionPassenger/MessageChannel.html +0 -489
- data/doc/rdoc/classes/PhusionPassenger/NativeSupport.html +0 -350
- data/doc/rdoc/classes/PhusionPassenger/Rack.html +0 -91
- data/doc/rdoc/classes/PhusionPassenger/Rack/ApplicationSpawner.html +0 -185
- data/doc/rdoc/classes/PhusionPassenger/Rack/RequestHandler.html +0 -184
- data/doc/rdoc/classes/PhusionPassenger/Railz.html +0 -95
- data/doc/rdoc/classes/PhusionPassenger/Railz/ApplicationSpawner.html +0 -419
- data/doc/rdoc/classes/PhusionPassenger/Railz/ApplicationSpawner/Error.html +0 -98
- data/doc/rdoc/classes/PhusionPassenger/Railz/CGIFixed.html +0 -200
- data/doc/rdoc/classes/PhusionPassenger/Railz/FrameworkSpawner.html +0 -443
- data/doc/rdoc/classes/PhusionPassenger/Railz/FrameworkSpawner/Error.html +0 -98
- data/doc/rdoc/classes/PhusionPassenger/Railz/RequestHandler.html +0 -154
- data/doc/rdoc/classes/PhusionPassenger/SpawnManager.html +0 -402
- data/doc/rdoc/classes/PhusionPassenger/UnknownError.html +0 -125
- data/doc/rdoc/classes/PhusionPassenger/Utils.html +0 -694
- data/doc/rdoc/classes/PhusionPassenger/VersionNotFound.html +0 -140
- data/doc/rdoc/classes/PhusionPassenger/WSGI.html +0 -89
- data/doc/rdoc/classes/PhusionPassenger/WSGI/ApplicationSpawner.html +0 -188
- data/doc/rdoc/classes/PlatformInfo.html +0 -831
- data/doc/rdoc/classes/RakeExtensions.html +0 -197
- data/doc/rdoc/classes/Signal.html +0 -134
- data/doc/rdoc/created.rid +0 -1
- data/doc/rdoc/files/DEVELOPERS_TXT.html +0 -240
- data/doc/rdoc/files/README.html +0 -157
- data/doc/rdoc/files/ext/phusion_passenger/native_support_c.html +0 -92
- data/doc/rdoc/files/lib/phusion_passenger/abstract_installer_rb.html +0 -129
- data/doc/rdoc/files/lib/phusion_passenger/abstract_request_handler_rb.html +0 -131
- data/doc/rdoc/files/lib/phusion_passenger/abstract_server_collection_rb.html +0 -126
- data/doc/rdoc/files/lib/phusion_passenger/abstract_server_rb.html +0 -130
- data/doc/rdoc/files/lib/phusion_passenger/admin_tools/control_process_rb.html +0 -129
- data/doc/rdoc/files/lib/phusion_passenger/admin_tools_rb.html +0 -122
- data/doc/rdoc/files/lib/phusion_passenger/application_rb.html +0 -127
- data/doc/rdoc/files/lib/phusion_passenger/console_text_template_rb.html +0 -126
- data/doc/rdoc/files/lib/phusion_passenger/constants_rb.html +0 -122
- data/doc/rdoc/files/lib/phusion_passenger/dependencies_rb.html +0 -134
- data/doc/rdoc/files/lib/phusion_passenger/events_rb.html +0 -122
- data/doc/rdoc/files/lib/phusion_passenger/exceptions_rb.html +0 -122
- data/doc/rdoc/files/lib/phusion_passenger/html_template_rb.html +0 -126
- data/doc/rdoc/files/lib/phusion_passenger/message_channel_rb.html +0 -122
- data/doc/rdoc/files/lib/phusion_passenger/packaging_rb.html +0 -122
- data/doc/rdoc/files/lib/phusion_passenger/platform_info_rb.html +0 -127
- data/doc/rdoc/files/lib/phusion_passenger/rack/application_spawner_rb.html +0 -133
- data/doc/rdoc/files/lib/phusion_passenger/rack/request_handler_rb.html +0 -126
- data/doc/rdoc/files/lib/phusion_passenger/railz/application_spawner_rb.html +0 -143
- data/doc/rdoc/files/lib/phusion_passenger/railz/cgi_fixed_rb.html +0 -126
- data/doc/rdoc/files/lib/phusion_passenger/railz/framework_spawner_rb.html +0 -145
- data/doc/rdoc/files/lib/phusion_passenger/railz/request_handler_rb.html +0 -127
- data/doc/rdoc/files/lib/phusion_passenger/simple_benchmarking_rb.html +0 -122
- data/doc/rdoc/files/lib/phusion_passenger/spawn_manager_rb.html +0 -161
- data/doc/rdoc/files/lib/phusion_passenger/utils_rb.html +0 -175
- data/doc/rdoc/files/lib/phusion_passenger/wsgi/application_spawner_rb.html +0 -129
- data/doc/rdoc/files/misc/rake/extensions_rb.html +0 -130
- data/doc/rdoc/fr_class_index.html +0 -90
- data/doc/rdoc/fr_file_index.html +0 -76
- data/doc/rdoc/fr_method_index.html +0 -195
- data/doc/rdoc/index.html +0 -26
- data/doc/rdoc/rdoc-style.css +0 -187
- data/vendor/rack-0.9.1/AUTHORS +0 -8
- data/vendor/rack-0.9.1/ChangeLog +0 -1423
- data/vendor/rack-0.9.1/Rakefile +0 -188
- data/vendor/rack-0.9.1/SPEC +0 -129
- data/vendor/rack-0.9.1/lib/rack/auth/abstract/handler.rb +0 -28
- data/vendor/rack-0.9.1/lib/rack/auth/openid.rb +0 -438
- data/vendor/rack-0.9.1/lib/rack/deflater.rb +0 -87
- data/vendor/rack-0.9.1/lib/rack/reloader.rb +0 -64
- data/vendor/rack-0.9.1/lib/rack/session/abstract/id.rb +0 -153
- data/vendor/rack-0.9.1/lib/rack/session/memcache.rb +0 -97
- data/vendor/rack-0.9.1/lib/rack/session/pool.rb +0 -73
@@ -1,350 +0,0 @@
|
|
1
|
-
<?xml version="1.0" encoding="iso-8859-1"?>
|
2
|
-
<!DOCTYPE html
|
3
|
-
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
4
|
-
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
5
|
-
<html>
|
6
|
-
<head>
|
7
|
-
<title>Module: PhusionPassenger::NativeSupport</title>
|
8
|
-
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
9
|
-
<link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
|
10
|
-
|
11
|
-
<script language="JavaScript" type="text/javascript">
|
12
|
-
// <![CDATA[
|
13
|
-
|
14
|
-
function toggleSource( id )
|
15
|
-
{
|
16
|
-
var elem
|
17
|
-
var link
|
18
|
-
|
19
|
-
if( document.getElementById )
|
20
|
-
{
|
21
|
-
elem = document.getElementById( id )
|
22
|
-
link = document.getElementById( "l_" + id )
|
23
|
-
}
|
24
|
-
else if ( document.all )
|
25
|
-
{
|
26
|
-
elem = eval( "document.all." + id )
|
27
|
-
link = eval( "document.all.l_" + id )
|
28
|
-
}
|
29
|
-
else
|
30
|
-
return false;
|
31
|
-
|
32
|
-
if( elem.style.display == "block" )
|
33
|
-
{
|
34
|
-
elem.style.display = "none"
|
35
|
-
link.innerHTML = "show source"
|
36
|
-
}
|
37
|
-
else
|
38
|
-
{
|
39
|
-
elem.style.display = "block"
|
40
|
-
link.innerHTML = "hide source"
|
41
|
-
}
|
42
|
-
}
|
43
|
-
|
44
|
-
function openCode( url )
|
45
|
-
{
|
46
|
-
window.open( url, "SOURCE_CODE", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=480,width=750" ).focus();
|
47
|
-
}
|
48
|
-
// ]]>
|
49
|
-
</script>
|
50
|
-
</head>
|
51
|
-
|
52
|
-
<body>
|
53
|
-
<table width="100%" border='0' cellpadding='0' cellspacing='0' class='banner'><tr>
|
54
|
-
<td class="file-title"><span class="file-title-prefix">Module</span><br />PhusionPassenger::NativeSupport</td>
|
55
|
-
<td align="right">
|
56
|
-
<table cellspacing="0" cellpadding="2">
|
57
|
-
<tr valign="top">
|
58
|
-
<td>In:</td>
|
59
|
-
<td>
|
60
|
-
<a href="../../files/ext/phusion_passenger/native_support_c.html">ext/phusion_passenger/native_support.c</a>
|
61
|
-
</td>
|
62
|
-
</tr>
|
63
|
-
</table>
|
64
|
-
</td>
|
65
|
-
</tr>
|
66
|
-
</table>
|
67
|
-
<!-- banner header -->
|
68
|
-
|
69
|
-
<div id="bodyContent">
|
70
|
-
<div id="content">
|
71
|
-
|
72
|
-
<div class="description"><p>
|
73
|
-
Utility functions for accessing system functionality.
|
74
|
-
</p>
|
75
|
-
</div>
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
<div class="sectiontitle">Methods</div>
|
80
|
-
<ul>
|
81
|
-
<li><a href="#M000061">accept</a></li>
|
82
|
-
<li><a href="#M000062">close_all_file_descriptors</a></li>
|
83
|
-
<li><a href="#M000060">create_unix_socket</a></li>
|
84
|
-
<li><a href="#M000063">disable_stdio_buffering</a></li>
|
85
|
-
<li><a href="#M000059">recv_fd</a></li>
|
86
|
-
<li><a href="#M000058">send_fd</a></li>
|
87
|
-
</ul>
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
<div class="sectiontitle">Constants</div>
|
93
|
-
<table border='0' cellpadding='5'>
|
94
|
-
<tr valign='top'>
|
95
|
-
<td class="attr-name">UNIX_PATH_MAX</td>
|
96
|
-
<td>=</td>
|
97
|
-
<td class="attr-value">INT2NUM(sizeof(addr.sun_path))</td>
|
98
|
-
</tr>
|
99
|
-
<tr valign='top'>
|
100
|
-
<td> </td>
|
101
|
-
<td colspan="2" class="attr-desc">
|
102
|
-
The maximum length of a Unix socket path, including terminating null.
|
103
|
-
|
104
|
-
</td>
|
105
|
-
</tr>
|
106
|
-
</table>
|
107
|
-
|
108
|
-
|
109
|
-
<div class="sectiontitle">Public Class methods</div>
|
110
|
-
<div class="method">
|
111
|
-
<div class="title">
|
112
|
-
<a name="M000061"></a><b> accept(fileno)<br />
|
113
|
-
</b>
|
114
|
-
</div>
|
115
|
-
<div class="description">
|
116
|
-
<p>
|
117
|
-
Accept a new client from the given socket.
|
118
|
-
</p>
|
119
|
-
<ul>
|
120
|
-
<li><tt>fileno</tt> (integer): The file descriptor of the server socket.
|
121
|
-
|
122
|
-
</li>
|
123
|
-
<li>Returns: The accepted client‘s file descriptor.
|
124
|
-
|
125
|
-
</li>
|
126
|
-
<li>Raises <tt>SystemCallError</tt> if something went wrong.
|
127
|
-
|
128
|
-
</li>
|
129
|
-
</ul>
|
130
|
-
</div>
|
131
|
-
<div class="sourcecode">
|
132
|
-
<p class="source-link">[ <a href="javascript:toggleSource('M000061_source')" id="l_M000061_source">show source</a> ]</p>
|
133
|
-
<div id="M000061_source" class="dyn-source">
|
134
|
-
<pre>
|
135
|
-
/*
|
136
|
-
* call-seq: accept(fileno)
|
137
|
-
*
|
138
|
-
* Accept a new client from the given socket.
|
139
|
-
*
|
140
|
-
* - +fileno+ (integer): The file descriptor of the server socket.
|
141
|
-
* - Returns: The accepted client's file descriptor.
|
142
|
-
* - Raises +SystemCallError+ if something went wrong.
|
143
|
-
*/
|
144
|
-
static VALUE
|
145
|
-
f_accept(VALUE self, VALUE fileno) {
|
146
|
-
|
147
|
-
</pre>
|
148
|
-
</div>
|
149
|
-
</div>
|
150
|
-
</div>
|
151
|
-
<div class="method">
|
152
|
-
<div class="title">
|
153
|
-
<a name="M000062"></a><b> close_all_file_descriptors(exceptions)<br />
|
154
|
-
</b>
|
155
|
-
</div>
|
156
|
-
<div class="description">
|
157
|
-
<p>
|
158
|
-
Close all file descriptors, except those given in the <tt>exceptions</tt>
|
159
|
-
array. For example, the following would close all file descriptors except
|
160
|
-
standard input (0) and standard output (1).
|
161
|
-
</p>
|
162
|
-
<pre>
|
163
|
-
close_all_file_descriptors([0, 1])
|
164
|
-
</pre>
|
165
|
-
</div>
|
166
|
-
<div class="sourcecode">
|
167
|
-
<p class="source-link">[ <a href="javascript:toggleSource('M000062_source')" id="l_M000062_source">show source</a> ]</p>
|
168
|
-
<div id="M000062_source" class="dyn-source">
|
169
|
-
<pre>
|
170
|
-
/*
|
171
|
-
* call-seq: close_all_file_descriptors(exceptions)
|
172
|
-
*
|
173
|
-
* Close all file descriptors, except those given in the +exceptions+ array.
|
174
|
-
* For example, the following would close all file descriptors except standard
|
175
|
-
* input (0) and standard output (1).
|
176
|
-
*
|
177
|
-
* close_all_file_descriptors([0, 1])
|
178
|
-
*/
|
179
|
-
static VALUE
|
180
|
-
close_all_file_descriptors(VALUE self, VALUE exceptions) {
|
181
|
-
|
182
|
-
</pre>
|
183
|
-
</div>
|
184
|
-
</div>
|
185
|
-
</div>
|
186
|
-
<div class="method">
|
187
|
-
<div class="title">
|
188
|
-
<a name="M000060"></a><b> create_unix_socket(filename, backlog)<br />
|
189
|
-
</b>
|
190
|
-
</div>
|
191
|
-
<div class="description">
|
192
|
-
<p>
|
193
|
-
Create a SOCK_STREAM server Unix socket. Unlike Ruby‘s UNIXServer
|
194
|
-
class, this function is also able to create Unix sockets on the abstract
|
195
|
-
namespace by prepending the filename with a null byte.
|
196
|
-
</p>
|
197
|
-
<ul>
|
198
|
-
<li><tt>filename</tt> (string): The filename of the Unix socket to create.
|
199
|
-
|
200
|
-
</li>
|
201
|
-
<li><tt>backlog</tt> (integer): The backlog to use for listening on the socket.
|
202
|
-
|
203
|
-
</li>
|
204
|
-
<li>Returns: The file descriptor of the created Unix socket, as an integer.
|
205
|
-
|
206
|
-
</li>
|
207
|
-
<li>Raises <tt>SystemCallError</tt> if something went wrong.
|
208
|
-
|
209
|
-
</li>
|
210
|
-
</ul>
|
211
|
-
</div>
|
212
|
-
<div class="sourcecode">
|
213
|
-
<p class="source-link">[ <a href="javascript:toggleSource('M000060_source')" id="l_M000060_source">show source</a> ]</p>
|
214
|
-
<div id="M000060_source" class="dyn-source">
|
215
|
-
<pre>
|
216
|
-
/*
|
217
|
-
* call-seq: create_unix_socket(filename, backlog)
|
218
|
-
*
|
219
|
-
* Create a SOCK_STREAM server Unix socket. Unlike Ruby's UNIXServer class,
|
220
|
-
* this function is also able to create Unix sockets on the abstract namespace
|
221
|
-
* by prepending the filename with a null byte.
|
222
|
-
*
|
223
|
-
* - +filename+ (string): The filename of the Unix socket to create.
|
224
|
-
* - +backlog+ (integer): The backlog to use for listening on the socket.
|
225
|
-
* - Returns: The file descriptor of the created Unix socket, as an integer.
|
226
|
-
* - Raises +SystemCallError+ if something went wrong.
|
227
|
-
*/
|
228
|
-
static VALUE
|
229
|
-
create_unix_socket(VALUE self, VALUE filename, VALUE backlog) {
|
230
|
-
|
231
|
-
</pre>
|
232
|
-
</div>
|
233
|
-
</div>
|
234
|
-
</div>
|
235
|
-
<div class="method">
|
236
|
-
<div class="title">
|
237
|
-
<a name="M000063"></a><b> disable_stdio_buffering<br />
|
238
|
-
</b>
|
239
|
-
</div>
|
240
|
-
<div class="description">
|
241
|
-
<p>
|
242
|
-
Disables any kind of buffering on the C <tt>stdout</tt> and <tt>stderr</tt>
|
243
|
-
variables, so that +fprintf()+ on <tt>stdout</tt> and <tt>stderr</tt> have
|
244
|
-
immediate effect.
|
245
|
-
</p>
|
246
|
-
</div>
|
247
|
-
<div class="sourcecode">
|
248
|
-
<p class="source-link">[ <a href="javascript:toggleSource('M000063_source')" id="l_M000063_source">show source</a> ]</p>
|
249
|
-
<div id="M000063_source" class="dyn-source">
|
250
|
-
<pre>
|
251
|
-
/*
|
252
|
-
* call-seq: disable_stdio_buffering
|
253
|
-
*
|
254
|
-
* Disables any kind of buffering on the C +stdout+ and +stderr+ variables,
|
255
|
-
* so that +fprintf()+ on +stdout+ and +stderr+ have immediate effect.
|
256
|
-
*/
|
257
|
-
static VALUE
|
258
|
-
disable_stdio_buffering() {
|
259
|
-
|
260
|
-
</pre>
|
261
|
-
</div>
|
262
|
-
</div>
|
263
|
-
</div>
|
264
|
-
<div class="method">
|
265
|
-
<div class="title">
|
266
|
-
<a name="M000059"></a><b> recv_fd(socket_fd)<br />
|
267
|
-
</b>
|
268
|
-
</div>
|
269
|
-
<div class="description">
|
270
|
-
<p>
|
271
|
-
Receive a file descriptor from the given Unix socket. Returns the received
|
272
|
-
file descriptor as an integer. Raises <tt>SystemCallError</tt> if something
|
273
|
-
went wrong.
|
274
|
-
</p>
|
275
|
-
<p>
|
276
|
-
You do not have call this method directly. A convenience wrapper is
|
277
|
-
provided by <a href="../IO.html#M000006">IO#recv_io</a>.
|
278
|
-
</p>
|
279
|
-
</div>
|
280
|
-
<div class="sourcecode">
|
281
|
-
<p class="source-link">[ <a href="javascript:toggleSource('M000059_source')" id="l_M000059_source">show source</a> ]</p>
|
282
|
-
<div id="M000059_source" class="dyn-source">
|
283
|
-
<pre>
|
284
|
-
/*
|
285
|
-
* call-seq: recv_fd(socket_fd)
|
286
|
-
*
|
287
|
-
* Receive a file descriptor from the given Unix socket. Returns the received
|
288
|
-
* file descriptor as an integer. Raises +SystemCallError+ if something went
|
289
|
-
* wrong.
|
290
|
-
*
|
291
|
-
* You do not have call this method directly. A convenience wrapper is
|
292
|
-
* provided by IO#recv_io.
|
293
|
-
*/
|
294
|
-
static VALUE
|
295
|
-
recv_fd(VALUE self, VALUE socket_fd) {
|
296
|
-
|
297
|
-
</pre>
|
298
|
-
</div>
|
299
|
-
</div>
|
300
|
-
</div>
|
301
|
-
<div class="method">
|
302
|
-
<div class="title">
|
303
|
-
<a name="M000058"></a><b> send_fd(socket_fd, fd_to_send)<br />
|
304
|
-
</b>
|
305
|
-
</div>
|
306
|
-
<div class="description">
|
307
|
-
<p>
|
308
|
-
Send a file descriptor over the given Unix socket. You do not have to call
|
309
|
-
this function directly. A convenience wrapper is provided by <a
|
310
|
-
href="../IO.html#M000005">IO#send_io</a>.
|
311
|
-
</p>
|
312
|
-
<ul>
|
313
|
-
<li><tt>socket_fd</tt> (integer): The file descriptor of the socket.
|
314
|
-
|
315
|
-
</li>
|
316
|
-
<li><tt>fd_to_send</tt> (integer): The file descriptor to send.
|
317
|
-
|
318
|
-
</li>
|
319
|
-
<li>Raises <tt>SystemCallError</tt> if something went wrong.
|
320
|
-
|
321
|
-
</li>
|
322
|
-
</ul>
|
323
|
-
</div>
|
324
|
-
<div class="sourcecode">
|
325
|
-
<p class="source-link">[ <a href="javascript:toggleSource('M000058_source')" id="l_M000058_source">show source</a> ]</p>
|
326
|
-
<div id="M000058_source" class="dyn-source">
|
327
|
-
<pre>
|
328
|
-
/*
|
329
|
-
* call-seq: send_fd(socket_fd, fd_to_send)
|
330
|
-
*
|
331
|
-
* Send a file descriptor over the given Unix socket. You do not have to call
|
332
|
-
* this function directly. A convenience wrapper is provided by IO#send_io.
|
333
|
-
*
|
334
|
-
* - +socket_fd+ (integer): The file descriptor of the socket.
|
335
|
-
* - +fd_to_send+ (integer): The file descriptor to send.
|
336
|
-
* - Raises +SystemCallError+ if something went wrong.
|
337
|
-
*/
|
338
|
-
static VALUE
|
339
|
-
send_fd(VALUE self, VALUE socket_fd, VALUE fd_to_send) {
|
340
|
-
|
341
|
-
</pre>
|
342
|
-
</div>
|
343
|
-
</div>
|
344
|
-
</div>
|
345
|
-
</div>
|
346
|
-
|
347
|
-
</div>
|
348
|
-
|
349
|
-
</body>
|
350
|
-
</html>
|
@@ -1,91 +0,0 @@
|
|
1
|
-
<?xml version="1.0" encoding="iso-8859-1"?>
|
2
|
-
<!DOCTYPE html
|
3
|
-
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
4
|
-
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
5
|
-
<html>
|
6
|
-
<head>
|
7
|
-
<title>Module: PhusionPassenger::Rack</title>
|
8
|
-
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
9
|
-
<link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
|
10
|
-
|
11
|
-
<script language="JavaScript" type="text/javascript">
|
12
|
-
// <![CDATA[
|
13
|
-
|
14
|
-
function toggleSource( id )
|
15
|
-
{
|
16
|
-
var elem
|
17
|
-
var link
|
18
|
-
|
19
|
-
if( document.getElementById )
|
20
|
-
{
|
21
|
-
elem = document.getElementById( id )
|
22
|
-
link = document.getElementById( "l_" + id )
|
23
|
-
}
|
24
|
-
else if ( document.all )
|
25
|
-
{
|
26
|
-
elem = eval( "document.all." + id )
|
27
|
-
link = eval( "document.all.l_" + id )
|
28
|
-
}
|
29
|
-
else
|
30
|
-
return false;
|
31
|
-
|
32
|
-
if( elem.style.display == "block" )
|
33
|
-
{
|
34
|
-
elem.style.display = "none"
|
35
|
-
link.innerHTML = "show source"
|
36
|
-
}
|
37
|
-
else
|
38
|
-
{
|
39
|
-
elem.style.display = "block"
|
40
|
-
link.innerHTML = "hide source"
|
41
|
-
}
|
42
|
-
}
|
43
|
-
|
44
|
-
function openCode( url )
|
45
|
-
{
|
46
|
-
window.open( url, "SOURCE_CODE", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=480,width=750" ).focus();
|
47
|
-
}
|
48
|
-
// ]]>
|
49
|
-
</script>
|
50
|
-
</head>
|
51
|
-
|
52
|
-
<body>
|
53
|
-
<table width="100%" border='0' cellpadding='0' cellspacing='0' class='banner'><tr>
|
54
|
-
<td class="file-title"><span class="file-title-prefix">Module</span><br />PhusionPassenger::Rack</td>
|
55
|
-
<td align="right">
|
56
|
-
<table cellspacing="0" cellpadding="2">
|
57
|
-
<tr valign="top">
|
58
|
-
<td>In:</td>
|
59
|
-
<td>
|
60
|
-
<a href="../../files/lib/phusion_passenger/rack/application_spawner_rb.html">lib/phusion_passenger/rack/application_spawner.rb</a>
|
61
|
-
<a href="../../files/lib/phusion_passenger/rack/request_handler_rb.html">lib/phusion_passenger/rack/request_handler.rb</a>
|
62
|
-
</td>
|
63
|
-
</tr>
|
64
|
-
</table>
|
65
|
-
</td>
|
66
|
-
</tr>
|
67
|
-
</table>
|
68
|
-
<!-- banner header -->
|
69
|
-
|
70
|
-
<div id="bodyContent">
|
71
|
-
<div id="content">
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
<div class="sectiontitle">Classes and Modules</div>
|
80
|
-
Class <a href="Rack/ApplicationSpawner.html" class="link">PhusionPassenger::Rack::ApplicationSpawner</a><br />
|
81
|
-
Class <a href="Rack/RequestHandler.html" class="link">PhusionPassenger::Rack::RequestHandler</a><br />
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
</div>
|
87
|
-
|
88
|
-
</div>
|
89
|
-
|
90
|
-
</body>
|
91
|
-
</html>
|
@@ -1,185 +0,0 @@
|
|
1
|
-
<?xml version="1.0" encoding="iso-8859-1"?>
|
2
|
-
<!DOCTYPE html
|
3
|
-
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
4
|
-
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
5
|
-
<html>
|
6
|
-
<head>
|
7
|
-
<title>Class: PhusionPassenger::Rack::ApplicationSpawner</title>
|
8
|
-
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
9
|
-
<link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
|
10
|
-
|
11
|
-
<script language="JavaScript" type="text/javascript">
|
12
|
-
// <![CDATA[
|
13
|
-
|
14
|
-
function toggleSource( id )
|
15
|
-
{
|
16
|
-
var elem
|
17
|
-
var link
|
18
|
-
|
19
|
-
if( document.getElementById )
|
20
|
-
{
|
21
|
-
elem = document.getElementById( id )
|
22
|
-
link = document.getElementById( "l_" + id )
|
23
|
-
}
|
24
|
-
else if ( document.all )
|
25
|
-
{
|
26
|
-
elem = eval( "document.all." + id )
|
27
|
-
link = eval( "document.all.l_" + id )
|
28
|
-
}
|
29
|
-
else
|
30
|
-
return false;
|
31
|
-
|
32
|
-
if( elem.style.display == "block" )
|
33
|
-
{
|
34
|
-
elem.style.display = "none"
|
35
|
-
link.innerHTML = "show source"
|
36
|
-
}
|
37
|
-
else
|
38
|
-
{
|
39
|
-
elem.style.display = "block"
|
40
|
-
link.innerHTML = "hide source"
|
41
|
-
}
|
42
|
-
}
|
43
|
-
|
44
|
-
function openCode( url )
|
45
|
-
{
|
46
|
-
window.open( url, "SOURCE_CODE", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=480,width=750" ).focus();
|
47
|
-
}
|
48
|
-
// ]]>
|
49
|
-
</script>
|
50
|
-
</head>
|
51
|
-
|
52
|
-
<body>
|
53
|
-
<table width="100%" border='0' cellpadding='0' cellspacing='0' class='banner'><tr>
|
54
|
-
<td class="file-title"><span class="file-title-prefix">Class</span><br />PhusionPassenger::Rack::ApplicationSpawner</td>
|
55
|
-
<td align="right">
|
56
|
-
<table cellspacing="0" cellpadding="2">
|
57
|
-
<tr valign="top">
|
58
|
-
<td>In:</td>
|
59
|
-
<td>
|
60
|
-
<a href="../../../files/lib/phusion_passenger/rack/application_spawner_rb.html">lib/phusion_passenger/rack/application_spawner.rb</a>
|
61
|
-
</td>
|
62
|
-
</tr>
|
63
|
-
<tr>
|
64
|
-
<td>Parent:</td>
|
65
|
-
<td>
|
66
|
-
Object
|
67
|
-
</td>
|
68
|
-
</tr>
|
69
|
-
</table>
|
70
|
-
</td>
|
71
|
-
</tr>
|
72
|
-
</table>
|
73
|
-
<!-- banner header -->
|
74
|
-
|
75
|
-
<div id="bodyContent">
|
76
|
-
<div id="content">
|
77
|
-
|
78
|
-
<div class="description"><p>
|
79
|
-
Class for spawning <a href="../Rack.html">Rack</a> applications.
|
80
|
-
</p>
|
81
|
-
</div>
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
<div class="sectiontitle">Methods</div>
|
86
|
-
<ul>
|
87
|
-
<li><a href="#M000054">spawn_application</a></li>
|
88
|
-
<li><a href="#M000055">spawn_application</a></li>
|
89
|
-
</ul>
|
90
|
-
|
91
|
-
<div class="sectiontitle">Included Modules</div>
|
92
|
-
<ul>
|
93
|
-
<li><a href="../Utils.html">Utils</a></li>
|
94
|
-
</ul>
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
<div class="sectiontitle">Public Class methods</div>
|
101
|
-
<div class="method">
|
102
|
-
<div class="title">
|
103
|
-
<a name="M000054"></a><b>spawn_application</b>(*args)
|
104
|
-
</div>
|
105
|
-
<div class="sourcecode">
|
106
|
-
<p class="source-link">[ <a href="javascript:toggleSource('M000054_source')" id="l_M000054_source">show source</a> ]</p>
|
107
|
-
<div id="M000054_source" class="dyn-source">
|
108
|
-
<pre>
|
109
|
-
<span class="ruby-comment cmt"># File lib/phusion_passenger/rack/application_spawner.rb, line 42</span>
|
110
|
-
42: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">spawn_application</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
|
111
|
-
43: <span class="ruby-ivar">@@instance</span> <span class="ruby-operator">||=</span> <span class="ruby-constant">ApplicationSpawner</span>.<span class="ruby-identifier">new</span>
|
112
|
-
44: <span class="ruby-ivar">@@instance</span>.<span class="ruby-identifier">spawn_application</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
|
113
|
-
45: <span class="ruby-keyword kw">end</span>
|
114
|
-
</pre>
|
115
|
-
</div>
|
116
|
-
</div>
|
117
|
-
</div>
|
118
|
-
<div class="sectiontitle">Public Instance methods</div>
|
119
|
-
<div class="method">
|
120
|
-
<div class="title">
|
121
|
-
<a name="M000055"></a><b>spawn_application</b>(app_root, options = {})
|
122
|
-
</div>
|
123
|
-
<div class="description">
|
124
|
-
<p>
|
125
|
-
Spawn an instance of the given <a href="../Rack.html">Rack</a> application.
|
126
|
-
When successful, an <a href="../Application.html">Application</a> object
|
127
|
-
will be returned, which represents the spawned application.
|
128
|
-
</p>
|
129
|
-
<p>
|
130
|
-
Raises:
|
131
|
-
</p>
|
132
|
-
<ul>
|
133
|
-
<li><a href="../AppInitError.html">AppInitError</a>: The <a
|
134
|
-
href="../Rack.html">Rack</a> application raised an exception or called
|
135
|
-
exit() during startup.
|
136
|
-
|
137
|
-
</li>
|
138
|
-
<li>SystemCallError, IOError, SocketError: Something went wrong.
|
139
|
-
|
140
|
-
</li>
|
141
|
-
</ul>
|
142
|
-
</div>
|
143
|
-
<div class="sourcecode">
|
144
|
-
<p class="source-link">[ <a href="javascript:toggleSource('M000055_source')" id="l_M000055_source">show source</a> ]</p>
|
145
|
-
<div id="M000055_source" class="dyn-source">
|
146
|
-
<pre>
|
147
|
-
<span class="ruby-comment cmt"># File lib/phusion_passenger/rack/application_spawner.rb, line 55</span>
|
148
|
-
55: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">spawn_application</span>(<span class="ruby-identifier">app_root</span>, <span class="ruby-identifier">options</span> = {})
|
149
|
-
56: <span class="ruby-identifier">options</span> = <span class="ruby-identifier">sanitize_spawn_options</span>(<span class="ruby-identifier">options</span>)
|
150
|
-
57:
|
151
|
-
58: <span class="ruby-identifier">a</span>, <span class="ruby-identifier">b</span> = <span class="ruby-constant">UNIXSocket</span>.<span class="ruby-identifier">pair</span>
|
152
|
-
59: <span class="ruby-identifier">pid</span> = <span class="ruby-identifier">safe_fork</span>(<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">to_s</span>, <span class="ruby-keyword kw">true</span>) <span class="ruby-keyword kw">do</span>
|
153
|
-
60: <span class="ruby-identifier">a</span>.<span class="ruby-identifier">close</span>
|
154
|
-
61:
|
155
|
-
62: <span class="ruby-identifier">file_descriptors_to_leave_open</span> = [<span class="ruby-value">0</span>, <span class="ruby-value">1</span>, <span class="ruby-value">2</span>, <span class="ruby-identifier">b</span>.<span class="ruby-identifier">fileno</span>]
|
156
|
-
63: <span class="ruby-constant">NativeSupport</span>.<span class="ruby-identifier">close_all_file_descriptors</span>(<span class="ruby-identifier">file_descriptors_to_leave_open</span>)
|
157
|
-
64: <span class="ruby-identifier">close_all_io_objects_for_fds</span>(<span class="ruby-identifier">file_descriptors_to_leave_open</span>)
|
158
|
-
65:
|
159
|
-
66: <span class="ruby-identifier">run</span>(<span class="ruby-constant">MessageChannel</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">b</span>), <span class="ruby-identifier">app_root</span>, <span class="ruby-identifier">options</span>)
|
160
|
-
67: <span class="ruby-keyword kw">end</span>
|
161
|
-
68: <span class="ruby-identifier">b</span>.<span class="ruby-identifier">close</span>
|
162
|
-
69: <span class="ruby-constant">Process</span>.<span class="ruby-identifier">waitpid</span>(<span class="ruby-identifier">pid</span>) <span class="ruby-keyword kw">rescue</span> <span class="ruby-keyword kw">nil</span>
|
163
|
-
70:
|
164
|
-
71: <span class="ruby-identifier">channel</span> = <span class="ruby-constant">MessageChannel</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">a</span>)
|
165
|
-
72: <span class="ruby-identifier">unmarshal_and_raise_errors</span>(<span class="ruby-identifier">channel</span>, <span class="ruby-value str">"rack"</span>)
|
166
|
-
73:
|
167
|
-
74: <span class="ruby-comment cmt"># No exception was raised, so spawning succeeded.</span>
|
168
|
-
75: <span class="ruby-identifier">pid</span>, <span class="ruby-identifier">socket_name</span>, <span class="ruby-identifier">socket_type</span> = <span class="ruby-identifier">channel</span>.<span class="ruby-identifier">read</span>
|
169
|
-
76: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">pid</span>.<span class="ruby-identifier">nil?</span>
|
170
|
-
77: <span class="ruby-identifier">raise</span> <span class="ruby-constant">IOError</span>, <span class="ruby-value str">"Connection closed"</span>
|
171
|
-
78: <span class="ruby-keyword kw">end</span>
|
172
|
-
79: <span class="ruby-identifier">owner_pipe</span> = <span class="ruby-identifier">channel</span>.<span class="ruby-identifier">recv_io</span>
|
173
|
-
80: <span class="ruby-keyword kw">return</span> <span class="ruby-constant">Application</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@app_root</span>, <span class="ruby-identifier">pid</span>, <span class="ruby-identifier">socket_name</span>,
|
174
|
-
81: <span class="ruby-identifier">socket_type</span>, <span class="ruby-identifier">owner_pipe</span>)
|
175
|
-
82: <span class="ruby-keyword kw">end</span>
|
176
|
-
</pre>
|
177
|
-
</div>
|
178
|
-
</div>
|
179
|
-
</div>
|
180
|
-
</div>
|
181
|
-
|
182
|
-
</div>
|
183
|
-
|
184
|
-
</body>
|
185
|
-
</html>
|