colouringcode-passenger 0.1 → 0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/NEWS +129 -0
- data/Rakefile +2 -2
- data/bin/passenger-install-apache2-module +1 -0
- data/bin/passenger-install-nginx-module +4 -2
- data/ext/apache2/Hooks.cpp +4 -2
- data/ext/common/ApplicationPoolServer.h +1 -1
- data/ext/common/ApplicationPoolServerExecutable.cpp +1 -1
- data/ext/common/MessageChannel.h +48 -4
- data/ext/common/StandardApplicationPool.h +4 -2
- data/ext/common/Version.h +1 -1
- data/ext/nginx/Configuration.c +1 -1
- data/ext/nginx/HttpStatusExtractor.h +1 -0
- data/ext/nginx/ScgiRequestParser.h +1 -0
- data/ext/oxt/system_calls.cpp +11 -0
- data/ext/oxt/system_calls.hpp +2 -1
- data/ext/oxt/thread.hpp +97 -1
- data/ext/phusion_passenger/native_support.c +30 -1
- data/lib/phusion_passenger/constants.rb +1 -1
- data/lib/phusion_passenger/dependencies.rb +32 -0
- data/lib/phusion_passenger/message_channel.rb +45 -3
- data/lib/phusion_passenger/platform_info.rb +1 -1
- data/lib/phusion_passenger/rack/application_spawner.rb +10 -4
- data/lib/phusion_passenger/rack/request_handler.rb +2 -5
- data/lib/phusion_passenger/railz/application_spawner.rb +59 -7
- data/lib/phusion_passenger/utils.rb +70 -16
- data/{vendor/rack-1.0.0-git/lib/rack → lib/phusion_passenger/utils}/rewindable_input.rb +34 -9
- data/test/ApplicationPoolTest.cpp +1 -1
- data/test/MessageChannelTest.cpp +9 -1
- data/test/stub/message_channel.rb +1 -1
- data/test/stub/message_channel_2.rb +1 -1
- data/test/stub/message_channel_3.rb +2 -2
- metadata +43 -155
- data/doc/Architectural overview.html +0 -1
- 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 -517
- data/doc/rdoc/classes/PhusionPassenger/AbstractServer.html +0 -719
- 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 -317
- 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 -181
- 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 -188
- data/doc/rdoc/classes/PhusionPassenger/Rack/RequestHandler.html +0 -199
- data/doc/rdoc/classes/PhusionPassenger/Railz.html +0 -95
- data/doc/rdoc/classes/PhusionPassenger/Railz/ApplicationSpawner.html +0 -438
- 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 -436
- data/doc/rdoc/classes/PhusionPassenger/Railz/FrameworkSpawner/Error.html +0 -98
- data/doc/rdoc/classes/PhusionPassenger/Railz/RequestHandler.html +0 -155
- 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 -803
- data/doc/rdoc/classes/PhusionPassenger/Utils/PseudoIO.html +0 -169
- 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 -866
- data/doc/rdoc/classes/RakeExtensions.html +0 -197
- data/doc/rdoc/classes/Signal.html +0 -131
- data/doc/rdoc/created.rid +0 -1
- data/doc/rdoc/files/DEVELOPERS_TXT.html +0 -255
- data/doc/rdoc/files/README.html +0 -175
- 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 -129
- 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 -128
- data/doc/rdoc/files/lib/phusion_passenger/admin_tools/control_process_rb.html +0 -130
- 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 -120
- 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 -125
- data/doc/rdoc/files/lib/phusion_passenger/railz/application_spawner_rb.html +0 -140
- 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 -125
- 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 -159
- data/doc/rdoc/files/lib/phusion_passenger/utils_rb.html +0 -174
- 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 -91
- data/doc/rdoc/fr_file_index.html +0 -76
- data/doc/rdoc/fr_method_index.html +0 -205
- data/doc/rdoc/index.html +0 -26
- data/doc/rdoc/rdoc-style.css +0 -187
- data/vendor/README +0 -13
- data/vendor/README_FOR_PACKAGERS +0 -1
- data/vendor/rack-1.0.0-git/COPYING +0 -18
- data/vendor/rack-1.0.0-git/KNOWN-ISSUES +0 -18
- data/vendor/rack-1.0.0-git/README +0 -353
- data/vendor/rack-1.0.0-git/Rakefile +0 -164
- data/vendor/rack-1.0.0-git/lib/rack.rb +0 -90
- data/vendor/rack-1.0.0-git/lib/rack/adapter/camping.rb +0 -22
- data/vendor/rack-1.0.0-git/lib/rack/auth/abstract/handler.rb +0 -37
- data/vendor/rack-1.0.0-git/lib/rack/auth/abstract/request.rb +0 -37
- data/vendor/rack-1.0.0-git/lib/rack/auth/basic.rb +0 -58
- data/vendor/rack-1.0.0-git/lib/rack/auth/digest/md5.rb +0 -124
- data/vendor/rack-1.0.0-git/lib/rack/auth/digest/nonce.rb +0 -51
- data/vendor/rack-1.0.0-git/lib/rack/auth/digest/params.rb +0 -55
- data/vendor/rack-1.0.0-git/lib/rack/auth/digest/request.rb +0 -40
- data/vendor/rack-1.0.0-git/lib/rack/auth/openid.rb +0 -487
- data/vendor/rack-1.0.0-git/lib/rack/builder.rb +0 -63
- data/vendor/rack-1.0.0-git/lib/rack/cascade.rb +0 -41
- data/vendor/rack-1.0.0-git/lib/rack/chunked.rb +0 -49
- data/vendor/rack-1.0.0-git/lib/rack/commonlogger.rb +0 -52
- data/vendor/rack-1.0.0-git/lib/rack/conditionalget.rb +0 -47
- data/vendor/rack-1.0.0-git/lib/rack/content_length.rb +0 -29
- data/vendor/rack-1.0.0-git/lib/rack/content_type.rb +0 -23
- data/vendor/rack-1.0.0-git/lib/rack/deflater.rb +0 -96
- data/vendor/rack-1.0.0-git/lib/rack/directory.rb +0 -153
- data/vendor/rack-1.0.0-git/lib/rack/file.rb +0 -88
- data/vendor/rack-1.0.0-git/lib/rack/handler.rb +0 -69
- data/vendor/rack-1.0.0-git/lib/rack/handler/cgi.rb +0 -61
- data/vendor/rack-1.0.0-git/lib/rack/handler/evented_mongrel.rb +0 -8
- data/vendor/rack-1.0.0-git/lib/rack/handler/fastcgi.rb +0 -88
- data/vendor/rack-1.0.0-git/lib/rack/handler/lsws.rb +0 -55
- data/vendor/rack-1.0.0-git/lib/rack/handler/mongrel.rb +0 -84
- data/vendor/rack-1.0.0-git/lib/rack/handler/scgi.rb +0 -59
- data/vendor/rack-1.0.0-git/lib/rack/handler/swiftiplied_mongrel.rb +0 -8
- data/vendor/rack-1.0.0-git/lib/rack/handler/thin.rb +0 -18
- data/vendor/rack-1.0.0-git/lib/rack/handler/webrick.rb +0 -67
- data/vendor/rack-1.0.0-git/lib/rack/head.rb +0 -19
- data/vendor/rack-1.0.0-git/lib/rack/lint.rb +0 -537
- data/vendor/rack-1.0.0-git/lib/rack/lobster.rb +0 -65
- data/vendor/rack-1.0.0-git/lib/rack/lock.rb +0 -16
- data/vendor/rack-1.0.0-git/lib/rack/methodoverride.rb +0 -27
- data/vendor/rack-1.0.0-git/lib/rack/mime.rb +0 -204
- data/vendor/rack-1.0.0-git/lib/rack/mock.rb +0 -184
- data/vendor/rack-1.0.0-git/lib/rack/recursive.rb +0 -57
- data/vendor/rack-1.0.0-git/lib/rack/reloader.rb +0 -106
- data/vendor/rack-1.0.0-git/lib/rack/request.rb +0 -248
- data/vendor/rack-1.0.0-git/lib/rack/response.rb +0 -183
- data/vendor/rack-1.0.0-git/lib/rack/session/abstract/id.rb +0 -142
- data/vendor/rack-1.0.0-git/lib/rack/session/cookie.rb +0 -91
- data/vendor/rack-1.0.0-git/lib/rack/session/memcache.rb +0 -109
- data/vendor/rack-1.0.0-git/lib/rack/session/pool.rb +0 -100
- data/vendor/rack-1.0.0-git/lib/rack/showexceptions.rb +0 -349
- data/vendor/rack-1.0.0-git/lib/rack/showstatus.rb +0 -106
- data/vendor/rack-1.0.0-git/lib/rack/static.rb +0 -38
- data/vendor/rack-1.0.0-git/lib/rack/urlmap.rb +0 -55
- data/vendor/rack-1.0.0-git/lib/rack/utils.rb +0 -522
|
@@ -1,6 +1,10 @@
|
|
|
1
|
+
# Modified version of Rack::RewindableInput with Ruby 1.9 fix.
|
|
2
|
+
|
|
1
3
|
require 'tempfile'
|
|
2
4
|
|
|
3
|
-
module
|
|
5
|
+
module PhusionPassenger
|
|
6
|
+
module Utils
|
|
7
|
+
|
|
4
8
|
# Class which can make any IO object rewindable, including non-rewindable ones. It does
|
|
5
9
|
# this by buffering the data into a tempfile, which is rewindable.
|
|
6
10
|
#
|
|
@@ -37,6 +41,11 @@ module Rack
|
|
|
37
41
|
@rewindable_io.rewind
|
|
38
42
|
end
|
|
39
43
|
|
|
44
|
+
def size
|
|
45
|
+
make_rewindable unless @rewindable_io
|
|
46
|
+
@rewindable_io.size
|
|
47
|
+
end
|
|
48
|
+
|
|
40
49
|
# Closes this RewindableInput object without closing the originally
|
|
41
50
|
# wrapped IO oject. Cleans up any temporary resources that this RewindableInput
|
|
42
51
|
# has created.
|
|
@@ -55,12 +64,16 @@ module Rack
|
|
|
55
64
|
|
|
56
65
|
private
|
|
57
66
|
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
67
|
+
if RUBY_VERSION < '1.9.0'
|
|
68
|
+
# Many Ruby 1.8's tempfile libraries have a bug that can cause
|
|
69
|
+
# the #close method to raise an exception. Subclass it and fix
|
|
70
|
+
# it.
|
|
71
|
+
class Tempfile < ::Tempfile
|
|
72
|
+
def _close
|
|
73
|
+
@tmpfile.close if @tmpfile
|
|
74
|
+
@data[1] = nil if @data
|
|
75
|
+
@tmpfile = nil
|
|
76
|
+
end
|
|
64
77
|
end
|
|
65
78
|
end
|
|
66
79
|
|
|
@@ -74,7 +87,7 @@ module Rack
|
|
|
74
87
|
@rewindable_io.chmod(0000)
|
|
75
88
|
@rewindable_io.set_encoding(Encoding::BINARY) if @rewindable_io.respond_to?(:set_encoding)
|
|
76
89
|
@rewindable_io.binmode
|
|
77
|
-
if filesystem_has_posix_semantics?
|
|
90
|
+
if filesystem_has_posix_semantics? && !tempfile_unlink_contains_bug?
|
|
78
91
|
@rewindable_io.unlink
|
|
79
92
|
@unlinked = true
|
|
80
93
|
end
|
|
@@ -96,5 +109,17 @@ module Rack
|
|
|
96
109
|
def filesystem_has_posix_semantics?
|
|
97
110
|
RUBY_PLATFORM !~ /(mswin|mingw|cygwin|java)/
|
|
98
111
|
end
|
|
112
|
+
|
|
113
|
+
def tempfile_unlink_contains_bug?
|
|
114
|
+
# The tempfile library as included in Ruby 1.9.1-p152 and later
|
|
115
|
+
# contains a bug: unlinking an open Tempfile object also closes
|
|
116
|
+
# it, which breaks our expected POSIX semantics. This problem
|
|
117
|
+
# has been fixed in Ruby 1.9.2, but the Ruby team chose not to
|
|
118
|
+
# include the bug fix in later versions of the 1.9.1 series.
|
|
119
|
+
ruby_engine = defined?(RUBY_ENGINE) ? RUBY_ENGINE : "ruby"
|
|
120
|
+
ruby_engine == "ruby" && RUBY_VERSION == "1.9.1" && RUBY_PATCHLEVEL >= 152
|
|
121
|
+
end
|
|
99
122
|
end
|
|
100
|
-
|
|
123
|
+
|
|
124
|
+
end # module Utils
|
|
125
|
+
end # module PhusionPassenger
|
|
@@ -182,7 +182,7 @@
|
|
|
182
182
|
Application::SessionPtr session3;
|
|
183
183
|
bool done;
|
|
184
184
|
|
|
185
|
-
shared_ptr<thread> thr = ptr(new thread(PoolWaitTestThread(pool2, session3, done)));
|
|
185
|
+
shared_ptr<boost::thread> thr = ptr(new boost::thread(PoolWaitTestThread(pool2, session3, done)));
|
|
186
186
|
usleep(500000);
|
|
187
187
|
ensure("ApplicationPool is still waiting", !done);
|
|
188
188
|
ensure_equals(pool->getActive(), 2u);
|
data/test/MessageChannelTest.cpp
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
#include "tut.h"
|
|
2
2
|
#include "MessageChannel.h"
|
|
3
3
|
|
|
4
|
+
#include <boost/bind.hpp>
|
|
5
|
+
#include <boost/thread.hpp>
|
|
4
6
|
#include <cstring>
|
|
5
7
|
#include <cstdio>
|
|
6
8
|
|
|
@@ -144,8 +146,14 @@ namespace tut {
|
|
|
144
146
|
MessageChannel channel2(s[1]);
|
|
145
147
|
|
|
146
148
|
pipe(my_pipe);
|
|
147
|
-
|
|
149
|
+
boost::thread thr(boost::bind(
|
|
150
|
+
&MessageChannel::writeFileDescriptor,
|
|
151
|
+
&channel1,
|
|
152
|
+
my_pipe[1],
|
|
153
|
+
true
|
|
154
|
+
));
|
|
148
155
|
fd = channel2.readFileDescriptor();
|
|
156
|
+
thr.join();
|
|
149
157
|
|
|
150
158
|
char buf[5];
|
|
151
159
|
write(fd, "hello", 5);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env ruby
|
|
2
|
-
$LOAD_PATH
|
|
3
|
-
$LOAD_PATH
|
|
2
|
+
$LOAD_PATH.unshift("#{File.dirname(__FILE__)}/../../lib")
|
|
3
|
+
$LOAD_PATH.unshift("#{File.dirname(__FILE__)}/../../ext")
|
|
4
4
|
require 'phusion_passenger/message_channel'
|
|
5
5
|
require 'phusion_passenger/utils'
|
|
6
6
|
|
metadata
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: colouringcode-passenger
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
|
|
4
|
+
prerelease: false
|
|
5
|
+
segments:
|
|
6
|
+
- 0
|
|
7
|
+
- 2
|
|
8
|
+
version: "0.2"
|
|
5
9
|
platform: ruby
|
|
6
10
|
authors:
|
|
7
11
|
- Colouring Code - http://www.colouringcode.com/
|
|
@@ -9,29 +13,49 @@ autorequire:
|
|
|
9
13
|
bindir: bin
|
|
10
14
|
cert_chain: []
|
|
11
15
|
|
|
12
|
-
date:
|
|
16
|
+
date: 2010-04-26 00:00:00 +01:00
|
|
13
17
|
default_executable:
|
|
14
18
|
dependencies:
|
|
15
19
|
- !ruby/object:Gem::Dependency
|
|
16
20
|
name: rake
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
21
|
+
prerelease: false
|
|
22
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
|
20
23
|
requirements:
|
|
21
24
|
- - ">="
|
|
22
25
|
- !ruby/object:Gem::Version
|
|
26
|
+
segments:
|
|
27
|
+
- 0
|
|
28
|
+
- 8
|
|
29
|
+
- 1
|
|
23
30
|
version: 0.8.1
|
|
24
|
-
|
|
31
|
+
type: :runtime
|
|
32
|
+
version_requirements: *id001
|
|
25
33
|
- !ruby/object:Gem::Dependency
|
|
26
34
|
name: fastthread
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
35
|
+
prerelease: false
|
|
36
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
|
30
37
|
requirements:
|
|
31
38
|
- - ">="
|
|
32
39
|
- !ruby/object:Gem::Version
|
|
40
|
+
segments:
|
|
41
|
+
- 1
|
|
42
|
+
- 0
|
|
43
|
+
- 1
|
|
33
44
|
version: 1.0.1
|
|
34
|
-
|
|
45
|
+
type: :runtime
|
|
46
|
+
version_requirements: *id002
|
|
47
|
+
- !ruby/object:Gem::Dependency
|
|
48
|
+
name: rack
|
|
49
|
+
prerelease: false
|
|
50
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
|
51
|
+
requirements:
|
|
52
|
+
- - ">="
|
|
53
|
+
- !ruby/object:Gem::Version
|
|
54
|
+
segments:
|
|
55
|
+
- 0
|
|
56
|
+
version: "0"
|
|
57
|
+
type: :runtime
|
|
58
|
+
version_requirements: *id003
|
|
35
59
|
description: Passenger is an Apache module for Ruby on Rails support, custom error template support
|
|
36
60
|
email: techystuff@colouringcode.com
|
|
37
61
|
executables:
|
|
@@ -78,6 +102,7 @@ files:
|
|
|
78
102
|
- lib/phusion_passenger/railz/request_handler.rb
|
|
79
103
|
- lib/phusion_passenger/simple_benchmarking.rb
|
|
80
104
|
- lib/phusion_passenger/spawn_manager.rb
|
|
105
|
+
- lib/phusion_passenger/utils/rewindable_input.rb
|
|
81
106
|
- lib/phusion_passenger/utils.rb
|
|
82
107
|
- lib/phusion_passenger/wsgi/application_spawner.rb
|
|
83
108
|
- lib/phusion_passenger/wsgi/request_handler.py
|
|
@@ -120,16 +145,15 @@ files:
|
|
|
120
145
|
- bin/passenger-status
|
|
121
146
|
- bin/passenger-stress-test
|
|
122
147
|
- doc/ApplicationPool algorithm.txt
|
|
123
|
-
- doc/Architectural overview.html
|
|
124
148
|
- doc/Architectural overview.txt
|
|
125
149
|
- doc/definitions.h
|
|
126
150
|
- doc/Doxyfile
|
|
127
|
-
- doc/Security of user switching support.html
|
|
128
151
|
- doc/Security of user switching support.txt
|
|
129
|
-
- doc/Users guide Apache.html
|
|
130
152
|
- doc/Users guide Apache.txt
|
|
131
|
-
- doc/Users guide Nginx.html
|
|
132
153
|
- doc/Users guide Nginx.txt
|
|
154
|
+
- doc/Users guide Apache.html
|
|
155
|
+
- doc/Users guide Nginx.html
|
|
156
|
+
- doc/Security of user switching support.html
|
|
133
157
|
- doc/images/by_sa.png
|
|
134
158
|
- doc/images/conservative_spawning.png
|
|
135
159
|
- doc/images/conservative_spawning.svg
|
|
@@ -142,12 +166,6 @@ files:
|
|
|
142
166
|
- doc/images/spawn_server_architecture.svg
|
|
143
167
|
- doc/images/typical_isolated_web_application.png
|
|
144
168
|
- doc/images/typical_isolated_web_application.svg
|
|
145
|
-
- doc/rdoc/created.rid
|
|
146
|
-
- doc/rdoc/fr_class_index.html
|
|
147
|
-
- doc/rdoc/fr_file_index.html
|
|
148
|
-
- doc/rdoc/fr_method_index.html
|
|
149
|
-
- doc/rdoc/index.html
|
|
150
|
-
- doc/rdoc/rdoc-style.css
|
|
151
169
|
- doc/template/horo.rb
|
|
152
170
|
- doc/users_guide_snippets/analysis_and_system_maintenance_tools.txt
|
|
153
171
|
- doc/users_guide_snippets/appendix_a_about.txt
|
|
@@ -168,16 +186,6 @@ files:
|
|
|
168
186
|
- doc/images/icons/tip.png
|
|
169
187
|
- doc/images/icons/up.png
|
|
170
188
|
- doc/images/icons/warning.png
|
|
171
|
-
- doc/rdoc/classes/ConditionVariable.html
|
|
172
|
-
- doc/rdoc/classes/Exception.html
|
|
173
|
-
- doc/rdoc/classes/GC.html
|
|
174
|
-
- doc/rdoc/classes/IO.html
|
|
175
|
-
- doc/rdoc/classes/PhusionPassenger.html
|
|
176
|
-
- doc/rdoc/classes/PlatformInfo.html
|
|
177
|
-
- doc/rdoc/classes/RakeExtensions.html
|
|
178
|
-
- doc/rdoc/classes/Signal.html
|
|
179
|
-
- doc/rdoc/files/DEVELOPERS_TXT.html
|
|
180
|
-
- doc/rdoc/files/README.html
|
|
181
189
|
- doc/images/icons/callouts/1.png
|
|
182
190
|
- doc/images/icons/callouts/10.png
|
|
183
191
|
- doc/images/icons/callouts/11.png
|
|
@@ -193,71 +201,6 @@ files:
|
|
|
193
201
|
- doc/images/icons/callouts/7.png
|
|
194
202
|
- doc/images/icons/callouts/8.png
|
|
195
203
|
- doc/images/icons/callouts/9.png
|
|
196
|
-
- doc/rdoc/classes/PhusionPassenger/AbstractInstaller.html
|
|
197
|
-
- doc/rdoc/classes/PhusionPassenger/AbstractRequestHandler.html
|
|
198
|
-
- doc/rdoc/classes/PhusionPassenger/AbstractServer.html
|
|
199
|
-
- doc/rdoc/classes/PhusionPassenger/AbstractServerCollection.html
|
|
200
|
-
- doc/rdoc/classes/PhusionPassenger/AdminTools.html
|
|
201
|
-
- doc/rdoc/classes/PhusionPassenger/AppInitError.html
|
|
202
|
-
- doc/rdoc/classes/PhusionPassenger/Application.html
|
|
203
|
-
- doc/rdoc/classes/PhusionPassenger/ConsoleTextTemplate.html
|
|
204
|
-
- doc/rdoc/classes/PhusionPassenger/FrameworkInitError.html
|
|
205
|
-
- doc/rdoc/classes/PhusionPassenger/HTMLTemplate.html
|
|
206
|
-
- doc/rdoc/classes/PhusionPassenger/InitializationError.html
|
|
207
|
-
- doc/rdoc/classes/PhusionPassenger/InvalidPath.html
|
|
208
|
-
- doc/rdoc/classes/PhusionPassenger/MessageChannel.html
|
|
209
|
-
- doc/rdoc/classes/PhusionPassenger/NativeSupport.html
|
|
210
|
-
- doc/rdoc/classes/PhusionPassenger/Rack.html
|
|
211
|
-
- doc/rdoc/classes/PhusionPassenger/Railz.html
|
|
212
|
-
- doc/rdoc/classes/PhusionPassenger/SpawnManager.html
|
|
213
|
-
- doc/rdoc/classes/PhusionPassenger/UnknownError.html
|
|
214
|
-
- doc/rdoc/classes/PhusionPassenger/Utils.html
|
|
215
|
-
- doc/rdoc/classes/PhusionPassenger/VersionNotFound.html
|
|
216
|
-
- doc/rdoc/classes/PhusionPassenger/WSGI.html
|
|
217
|
-
- doc/rdoc/classes/PhusionPassenger/AbstractServer/ServerAlreadyStarted.html
|
|
218
|
-
- doc/rdoc/classes/PhusionPassenger/AbstractServer/ServerError.html
|
|
219
|
-
- doc/rdoc/classes/PhusionPassenger/AbstractServer/ServerNotStarted.html
|
|
220
|
-
- doc/rdoc/classes/PhusionPassenger/AbstractServer/UnknownMessage.html
|
|
221
|
-
- doc/rdoc/classes/PhusionPassenger/AdminTools/ControlProcess.html
|
|
222
|
-
- doc/rdoc/classes/PhusionPassenger/Rack/ApplicationSpawner.html
|
|
223
|
-
- doc/rdoc/classes/PhusionPassenger/Rack/RequestHandler.html
|
|
224
|
-
- doc/rdoc/classes/PhusionPassenger/Railz/ApplicationSpawner.html
|
|
225
|
-
- doc/rdoc/classes/PhusionPassenger/Railz/CGIFixed.html
|
|
226
|
-
- doc/rdoc/classes/PhusionPassenger/Railz/FrameworkSpawner.html
|
|
227
|
-
- doc/rdoc/classes/PhusionPassenger/Railz/RequestHandler.html
|
|
228
|
-
- doc/rdoc/classes/PhusionPassenger/Utils/PseudoIO.html
|
|
229
|
-
- doc/rdoc/classes/PhusionPassenger/WSGI/ApplicationSpawner.html
|
|
230
|
-
- doc/rdoc/files/ext/phusion_passenger/native_support_c.html
|
|
231
|
-
- doc/rdoc/files/lib/phusion_passenger/abstract_installer_rb.html
|
|
232
|
-
- doc/rdoc/files/lib/phusion_passenger/abstract_request_handler_rb.html
|
|
233
|
-
- doc/rdoc/files/lib/phusion_passenger/abstract_server_collection_rb.html
|
|
234
|
-
- doc/rdoc/files/lib/phusion_passenger/abstract_server_rb.html
|
|
235
|
-
- doc/rdoc/files/lib/phusion_passenger/admin_tools_rb.html
|
|
236
|
-
- doc/rdoc/files/lib/phusion_passenger/application_rb.html
|
|
237
|
-
- doc/rdoc/files/lib/phusion_passenger/console_text_template_rb.html
|
|
238
|
-
- doc/rdoc/files/lib/phusion_passenger/constants_rb.html
|
|
239
|
-
- doc/rdoc/files/lib/phusion_passenger/dependencies_rb.html
|
|
240
|
-
- doc/rdoc/files/lib/phusion_passenger/events_rb.html
|
|
241
|
-
- doc/rdoc/files/lib/phusion_passenger/exceptions_rb.html
|
|
242
|
-
- doc/rdoc/files/lib/phusion_passenger/html_template_rb.html
|
|
243
|
-
- doc/rdoc/files/lib/phusion_passenger/message_channel_rb.html
|
|
244
|
-
- doc/rdoc/files/lib/phusion_passenger/packaging_rb.html
|
|
245
|
-
- doc/rdoc/files/lib/phusion_passenger/platform_info_rb.html
|
|
246
|
-
- doc/rdoc/files/lib/phusion_passenger/simple_benchmarking_rb.html
|
|
247
|
-
- doc/rdoc/files/lib/phusion_passenger/spawn_manager_rb.html
|
|
248
|
-
- doc/rdoc/files/lib/phusion_passenger/utils_rb.html
|
|
249
|
-
- doc/rdoc/files/misc/rake/extensions_rb.html
|
|
250
|
-
- doc/rdoc/classes/PhusionPassenger/AdminTools/ControlProcess/Instance.html
|
|
251
|
-
- doc/rdoc/classes/PhusionPassenger/Railz/ApplicationSpawner/Error.html
|
|
252
|
-
- doc/rdoc/classes/PhusionPassenger/Railz/FrameworkSpawner/Error.html
|
|
253
|
-
- doc/rdoc/files/lib/phusion_passenger/admin_tools/control_process_rb.html
|
|
254
|
-
- doc/rdoc/files/lib/phusion_passenger/rack/application_spawner_rb.html
|
|
255
|
-
- doc/rdoc/files/lib/phusion_passenger/rack/request_handler_rb.html
|
|
256
|
-
- doc/rdoc/files/lib/phusion_passenger/railz/application_spawner_rb.html
|
|
257
|
-
- doc/rdoc/files/lib/phusion_passenger/railz/cgi_fixed_rb.html
|
|
258
|
-
- doc/rdoc/files/lib/phusion_passenger/railz/framework_spawner_rb.html
|
|
259
|
-
- doc/rdoc/files/lib/phusion_passenger/railz/request_handler_rb.html
|
|
260
|
-
- doc/rdoc/files/lib/phusion_passenger/wsgi/application_spawner_rb.html
|
|
261
204
|
- man/passenger-config.1
|
|
262
205
|
- man/passenger-make-enterprisey.8
|
|
263
206
|
- man/passenger-memory-stats.8
|
|
@@ -908,63 +851,6 @@ files:
|
|
|
908
851
|
- misc/rake/gempackagetask.rb
|
|
909
852
|
- misc/rake/packagetask.rb
|
|
910
853
|
- misc/rake/rdoctask.rb
|
|
911
|
-
- vendor/rack-1.0.0-git/COPYING
|
|
912
|
-
- vendor/rack-1.0.0-git/KNOWN-ISSUES
|
|
913
|
-
- vendor/rack-1.0.0-git/lib/rack/adapter/camping.rb
|
|
914
|
-
- vendor/rack-1.0.0-git/lib/rack/auth/abstract/handler.rb
|
|
915
|
-
- vendor/rack-1.0.0-git/lib/rack/auth/abstract/request.rb
|
|
916
|
-
- vendor/rack-1.0.0-git/lib/rack/auth/basic.rb
|
|
917
|
-
- vendor/rack-1.0.0-git/lib/rack/auth/digest/md5.rb
|
|
918
|
-
- vendor/rack-1.0.0-git/lib/rack/auth/digest/nonce.rb
|
|
919
|
-
- vendor/rack-1.0.0-git/lib/rack/auth/digest/params.rb
|
|
920
|
-
- vendor/rack-1.0.0-git/lib/rack/auth/digest/request.rb
|
|
921
|
-
- vendor/rack-1.0.0-git/lib/rack/auth/openid.rb
|
|
922
|
-
- vendor/rack-1.0.0-git/lib/rack/builder.rb
|
|
923
|
-
- vendor/rack-1.0.0-git/lib/rack/cascade.rb
|
|
924
|
-
- vendor/rack-1.0.0-git/lib/rack/chunked.rb
|
|
925
|
-
- vendor/rack-1.0.0-git/lib/rack/commonlogger.rb
|
|
926
|
-
- vendor/rack-1.0.0-git/lib/rack/conditionalget.rb
|
|
927
|
-
- vendor/rack-1.0.0-git/lib/rack/content_length.rb
|
|
928
|
-
- vendor/rack-1.0.0-git/lib/rack/content_type.rb
|
|
929
|
-
- vendor/rack-1.0.0-git/lib/rack/deflater.rb
|
|
930
|
-
- vendor/rack-1.0.0-git/lib/rack/directory.rb
|
|
931
|
-
- vendor/rack-1.0.0-git/lib/rack/file.rb
|
|
932
|
-
- vendor/rack-1.0.0-git/lib/rack/handler/cgi.rb
|
|
933
|
-
- vendor/rack-1.0.0-git/lib/rack/handler/evented_mongrel.rb
|
|
934
|
-
- vendor/rack-1.0.0-git/lib/rack/handler/fastcgi.rb
|
|
935
|
-
- vendor/rack-1.0.0-git/lib/rack/handler/lsws.rb
|
|
936
|
-
- vendor/rack-1.0.0-git/lib/rack/handler/mongrel.rb
|
|
937
|
-
- vendor/rack-1.0.0-git/lib/rack/handler/scgi.rb
|
|
938
|
-
- vendor/rack-1.0.0-git/lib/rack/handler/swiftiplied_mongrel.rb
|
|
939
|
-
- vendor/rack-1.0.0-git/lib/rack/handler/thin.rb
|
|
940
|
-
- vendor/rack-1.0.0-git/lib/rack/handler/webrick.rb
|
|
941
|
-
- vendor/rack-1.0.0-git/lib/rack/handler.rb
|
|
942
|
-
- vendor/rack-1.0.0-git/lib/rack/head.rb
|
|
943
|
-
- vendor/rack-1.0.0-git/lib/rack/lint.rb
|
|
944
|
-
- vendor/rack-1.0.0-git/lib/rack/lobster.rb
|
|
945
|
-
- vendor/rack-1.0.0-git/lib/rack/lock.rb
|
|
946
|
-
- vendor/rack-1.0.0-git/lib/rack/methodoverride.rb
|
|
947
|
-
- vendor/rack-1.0.0-git/lib/rack/mime.rb
|
|
948
|
-
- vendor/rack-1.0.0-git/lib/rack/mock.rb
|
|
949
|
-
- vendor/rack-1.0.0-git/lib/rack/recursive.rb
|
|
950
|
-
- vendor/rack-1.0.0-git/lib/rack/reloader.rb
|
|
951
|
-
- vendor/rack-1.0.0-git/lib/rack/request.rb
|
|
952
|
-
- vendor/rack-1.0.0-git/lib/rack/response.rb
|
|
953
|
-
- vendor/rack-1.0.0-git/lib/rack/rewindable_input.rb
|
|
954
|
-
- vendor/rack-1.0.0-git/lib/rack/session/abstract/id.rb
|
|
955
|
-
- vendor/rack-1.0.0-git/lib/rack/session/cookie.rb
|
|
956
|
-
- vendor/rack-1.0.0-git/lib/rack/session/memcache.rb
|
|
957
|
-
- vendor/rack-1.0.0-git/lib/rack/session/pool.rb
|
|
958
|
-
- vendor/rack-1.0.0-git/lib/rack/showexceptions.rb
|
|
959
|
-
- vendor/rack-1.0.0-git/lib/rack/showstatus.rb
|
|
960
|
-
- vendor/rack-1.0.0-git/lib/rack/static.rb
|
|
961
|
-
- vendor/rack-1.0.0-git/lib/rack/urlmap.rb
|
|
962
|
-
- vendor/rack-1.0.0-git/lib/rack/utils.rb
|
|
963
|
-
- vendor/rack-1.0.0-git/lib/rack.rb
|
|
964
|
-
- vendor/rack-1.0.0-git/Rakefile
|
|
965
|
-
- vendor/rack-1.0.0-git/README
|
|
966
|
-
- vendor/README
|
|
967
|
-
- vendor/README_FOR_PACKAGERS
|
|
968
854
|
- test/ApplicationPoolServer_ApplicationPoolTest.cpp
|
|
969
855
|
- test/ApplicationPoolServerTest.cpp
|
|
970
856
|
- test/ApplicationPoolTest.cpp
|
|
@@ -1132,19 +1018,21 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
1132
1018
|
requirements:
|
|
1133
1019
|
- - ">="
|
|
1134
1020
|
- !ruby/object:Gem::Version
|
|
1021
|
+
segments:
|
|
1022
|
+
- 0
|
|
1135
1023
|
version: "0"
|
|
1136
|
-
version:
|
|
1137
1024
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
1138
1025
|
requirements:
|
|
1139
1026
|
- - ">="
|
|
1140
1027
|
- !ruby/object:Gem::Version
|
|
1028
|
+
segments:
|
|
1029
|
+
- 0
|
|
1141
1030
|
version: "0"
|
|
1142
|
-
version:
|
|
1143
1031
|
requirements:
|
|
1144
1032
|
- fastthread
|
|
1145
1033
|
- Apache 2 with development headers
|
|
1146
1034
|
rubyforge_project: colouringcode-passenger
|
|
1147
|
-
rubygems_version: 1.3.
|
|
1035
|
+
rubygems_version: 1.3.6
|
|
1148
1036
|
signing_key:
|
|
1149
1037
|
specification_version: 3
|
|
1150
1038
|
summary: Apache module for Ruby on Rails support, custom template support
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
asciidoc required to build docs
|
|
@@ -1,194 +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: ConditionVariable</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 />ConditionVariable</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/utils_rb.html">lib/phusion_passenger/utils.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
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
<div class="sectiontitle">Methods</div>
|
|
82
|
-
<ul>
|
|
83
|
-
<li><a href="#M000003">timed_wait</a></li>
|
|
84
|
-
<li><a href="#M000004">timed_wait!</a></li>
|
|
85
|
-
</ul>
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
<div class="sectiontitle">Public Instance methods</div>
|
|
93
|
-
<div class="method">
|
|
94
|
-
<div class="title">
|
|
95
|
-
<a name="M000003"></a><b>timed_wait</b>(mutex, secs)
|
|
96
|
-
</div>
|
|
97
|
-
<div class="description">
|
|
98
|
-
<p>
|
|
99
|
-
This is like ConditionVariable.wait(), but allows one to wait a maximum
|
|
100
|
-
amount of time. Returns true if this condition was signaled, false if a
|
|
101
|
-
timeout occurred.
|
|
102
|
-
</p>
|
|
103
|
-
</div>
|
|
104
|
-
<div class="sourcecode">
|
|
105
|
-
<p class="source-link">[ <a href="javascript:toggleSource('M000003_source')" id="l_M000003_source">show source</a> ]</p>
|
|
106
|
-
<div id="M000003_source" class="dyn-source">
|
|
107
|
-
<pre>
|
|
108
|
-
<span class="ruby-comment cmt"># File lib/phusion_passenger/utils.rb, line 465</span>
|
|
109
|
-
465: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">timed_wait</span>(<span class="ruby-identifier">mutex</span>, <span class="ruby-identifier">secs</span>)
|
|
110
|
-
466: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">secs</span> <span class="ruby-operator">></span> <span class="ruby-value">100000000</span>
|
|
111
|
-
467: <span class="ruby-comment cmt"># NOTE: If one calls timeout() on FreeBSD 5 with an</span>
|
|
112
|
-
468: <span class="ruby-comment cmt"># argument of more than 100000000, then MRI will become</span>
|
|
113
|
-
469: <span class="ruby-comment cmt"># stuck in an infite loop, blocking all threads. It seems</span>
|
|
114
|
-
470: <span class="ruby-comment cmt"># that MRI uses select() to implement sleeping.</span>
|
|
115
|
-
471: <span class="ruby-comment cmt"># I think that a value of more than 100000000 overflows</span>
|
|
116
|
-
472: <span class="ruby-comment cmt"># select()'s data structures, causing it to behave incorrectly.</span>
|
|
117
|
-
473: <span class="ruby-comment cmt"># So we just make sure we can't sleep more than 100000000</span>
|
|
118
|
-
474: <span class="ruby-comment cmt"># seconds.</span>
|
|
119
|
-
475: <span class="ruby-identifier">secs</span> = <span class="ruby-value">100000000</span>
|
|
120
|
-
476: <span class="ruby-keyword kw">end</span>
|
|
121
|
-
477: <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">defined?</span>(<span class="ruby-constant">RUBY_ENGINE</span>) <span class="ruby-operator">&&</span> <span class="ruby-constant">RUBY_ENGINE</span> <span class="ruby-operator">==</span> <span class="ruby-value str">"jruby"</span>
|
|
122
|
-
478: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">secs</span> <span class="ruby-operator">></span> <span class="ruby-value">0</span>
|
|
123
|
-
479: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">wait</span>(<span class="ruby-identifier">mutex</span>, <span class="ruby-identifier">secs</span>)
|
|
124
|
-
480: <span class="ruby-keyword kw">else</span>
|
|
125
|
-
481: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">wait</span>(<span class="ruby-identifier">mutex</span>)
|
|
126
|
-
482: <span class="ruby-keyword kw">end</span>
|
|
127
|
-
483: <span class="ruby-keyword kw">else</span>
|
|
128
|
-
484: <span class="ruby-identifier">require</span> <span class="ruby-value str">'timeout'</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-keyword kw">defined?</span>(<span class="ruby-constant">Timeout</span>)
|
|
129
|
-
485: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">secs</span> <span class="ruby-operator">></span> <span class="ruby-value">0</span>
|
|
130
|
-
486: <span class="ruby-constant">Timeout</span>.<span class="ruby-identifier">timeout</span>(<span class="ruby-identifier">secs</span>) <span class="ruby-keyword kw">do</span>
|
|
131
|
-
487: <span class="ruby-identifier">wait</span>(<span class="ruby-identifier">mutex</span>)
|
|
132
|
-
488: <span class="ruby-keyword kw">end</span>
|
|
133
|
-
489: <span class="ruby-keyword kw">else</span>
|
|
134
|
-
490: <span class="ruby-identifier">wait</span>(<span class="ruby-identifier">mutex</span>)
|
|
135
|
-
491: <span class="ruby-keyword kw">end</span>
|
|
136
|
-
492: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">true</span>
|
|
137
|
-
493: <span class="ruby-keyword kw">end</span>
|
|
138
|
-
494: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">Timeout</span><span class="ruby-operator">::</span><span class="ruby-constant">Error</span>
|
|
139
|
-
495: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
|
|
140
|
-
496: <span class="ruby-keyword kw">end</span>
|
|
141
|
-
</pre>
|
|
142
|
-
</div>
|
|
143
|
-
</div>
|
|
144
|
-
</div>
|
|
145
|
-
<div class="method">
|
|
146
|
-
<div class="title">
|
|
147
|
-
<a name="M000004"></a><b>timed_wait!</b>(mutex, secs)
|
|
148
|
-
</div>
|
|
149
|
-
<div class="description">
|
|
150
|
-
<p>
|
|
151
|
-
This is like ConditionVariable.wait(), but allows one to wait a maximum
|
|
152
|
-
amount of time. Raises Timeout::Error if the timeout has elapsed.
|
|
153
|
-
</p>
|
|
154
|
-
</div>
|
|
155
|
-
<div class="sourcecode">
|
|
156
|
-
<p class="source-link">[ <a href="javascript:toggleSource('M000004_source')" id="l_M000004_source">show source</a> ]</p>
|
|
157
|
-
<div id="M000004_source" class="dyn-source">
|
|
158
|
-
<pre>
|
|
159
|
-
<span class="ruby-comment cmt"># File lib/phusion_passenger/utils.rb, line 500</span>
|
|
160
|
-
500: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">timed_wait!</span>(<span class="ruby-identifier">mutex</span>, <span class="ruby-identifier">secs</span>)
|
|
161
|
-
501: <span class="ruby-identifier">require</span> <span class="ruby-value str">'timeout'</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-keyword kw">defined?</span>(<span class="ruby-constant">Timeout</span>)
|
|
162
|
-
502: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">secs</span> <span class="ruby-operator">></span> <span class="ruby-value">100000000</span>
|
|
163
|
-
503: <span class="ruby-comment cmt"># See the corresponding note for timed_wait().</span>
|
|
164
|
-
504: <span class="ruby-identifier">secs</span> = <span class="ruby-value">100000000</span>
|
|
165
|
-
505: <span class="ruby-keyword kw">end</span>
|
|
166
|
-
506: <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">defined?</span>(<span class="ruby-constant">RUBY_ENGINE</span>) <span class="ruby-operator">&&</span> <span class="ruby-constant">RUBY_ENGINE</span> <span class="ruby-operator">==</span> <span class="ruby-value str">"jruby"</span>
|
|
167
|
-
507: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">secs</span> <span class="ruby-operator">></span> <span class="ruby-value">0</span>
|
|
168
|
-
508: <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-identifier">wait</span>(<span class="ruby-identifier">mutex</span>, <span class="ruby-identifier">secs</span>)
|
|
169
|
-
509: <span class="ruby-identifier">raise</span> <span class="ruby-constant">Timeout</span><span class="ruby-operator">::</span><span class="ruby-constant">Error</span>, <span class="ruby-value str">"Timeout"</span>
|
|
170
|
-
510: <span class="ruby-keyword kw">end</span>
|
|
171
|
-
511: <span class="ruby-keyword kw">else</span>
|
|
172
|
-
512: <span class="ruby-identifier">wait</span>(<span class="ruby-identifier">mutex</span>)
|
|
173
|
-
513: <span class="ruby-keyword kw">end</span>
|
|
174
|
-
514: <span class="ruby-keyword kw">else</span>
|
|
175
|
-
515: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">secs</span> <span class="ruby-operator">></span> <span class="ruby-value">0</span>
|
|
176
|
-
516: <span class="ruby-constant">Timeout</span>.<span class="ruby-identifier">timeout</span>(<span class="ruby-identifier">secs</span>) <span class="ruby-keyword kw">do</span>
|
|
177
|
-
517: <span class="ruby-identifier">wait</span>(<span class="ruby-identifier">mutex</span>)
|
|
178
|
-
518: <span class="ruby-keyword kw">end</span>
|
|
179
|
-
519: <span class="ruby-keyword kw">else</span>
|
|
180
|
-
520: <span class="ruby-identifier">wait</span>(<span class="ruby-identifier">mutex</span>)
|
|
181
|
-
521: <span class="ruby-keyword kw">end</span>
|
|
182
|
-
522: <span class="ruby-keyword kw">end</span>
|
|
183
|
-
523: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span>
|
|
184
|
-
524: <span class="ruby-keyword kw">end</span>
|
|
185
|
-
</pre>
|
|
186
|
-
</div>
|
|
187
|
-
</div>
|
|
188
|
-
</div>
|
|
189
|
-
</div>
|
|
190
|
-
|
|
191
|
-
</div>
|
|
192
|
-
|
|
193
|
-
</body>
|
|
194
|
-
</html>
|