passenger 3.0.2 → 3.0.3

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.

Files changed (220) hide show
  1. data/NEWS +29 -0
  2. data/build/agents.rb +1 -0
  3. data/build/apache2.rb +2 -1
  4. data/build/cxx_tests.rb +7 -0
  5. data/build/rpm.rb +17 -22
  6. data/doc/cxxapi/Constants_8h_source.html +1 -1
  7. data/doc/cxxapi/Exceptions_8h_source.html +18 -4
  8. data/doc/cxxapi/Logging_8h_source.html +332 -262
  9. data/doc/cxxapi/annotated.html +1 -0
  10. data/doc/cxxapi/classes.html +4 -4
  11. data/doc/cxxapi/group__Exceptions.html +2 -0
  12. data/doc/cxxapi/hierarchy.html +1 -0
  13. data/doc/cxxapi/inherit__graph__35.map +1 -3
  14. data/doc/cxxapi/inherit__graph__35.md5 +1 -1
  15. data/doc/cxxapi/inherit__graph__35.png +0 -0
  16. data/doc/cxxapi/inherit__graph__36.map +3 -1
  17. data/doc/cxxapi/inherit__graph__36.md5 +1 -1
  18. data/doc/cxxapi/inherit__graph__36.png +0 -0
  19. data/doc/cxxapi/inherit__graph__37.map +1 -1
  20. data/doc/cxxapi/inherit__graph__37.md5 +1 -1
  21. data/doc/cxxapi/inherit__graph__37.png +0 -0
  22. data/doc/cxxapi/inherit__graph__38.map +1 -1
  23. data/doc/cxxapi/inherit__graph__38.md5 +1 -1
  24. data/doc/cxxapi/inherit__graph__38.png +0 -0
  25. data/doc/cxxapi/inherit__graph__39.map +1 -1
  26. data/doc/cxxapi/inherit__graph__39.md5 +1 -1
  27. data/doc/cxxapi/inherit__graph__39.png +0 -0
  28. data/doc/cxxapi/inherit__graph__40.map +1 -1
  29. data/doc/cxxapi/inherit__graph__40.md5 +1 -1
  30. data/doc/cxxapi/inherit__graph__40.png +0 -0
  31. data/doc/cxxapi/inherits.html +9 -6
  32. data/doc/cxxapi/namespacePassenger.html +2 -0
  33. data/doc/cxxapi/tree.html +2 -0
  34. data/doc/rdoc/classes/ConditionVariable.html +215 -0
  35. data/doc/rdoc/classes/Exception.html +120 -0
  36. data/doc/rdoc/classes/GC.html +113 -0
  37. data/doc/rdoc/classes/IO.html +221 -0
  38. data/doc/rdoc/classes/PhusionPassenger.html +397 -0
  39. data/doc/rdoc/classes/PhusionPassenger/AbstractInstaller.html +180 -0
  40. data/doc/rdoc/classes/PhusionPassenger/AbstractRequestHandler.html +647 -0
  41. data/doc/rdoc/classes/PhusionPassenger/AbstractServer.html +654 -0
  42. data/doc/rdoc/classes/PhusionPassenger/AbstractServer/InvalidPassword.html +92 -0
  43. data/doc/rdoc/classes/PhusionPassenger/AbstractServer/ServerAlreadyStarted.html +97 -0
  44. data/doc/rdoc/classes/PhusionPassenger/AbstractServer/ServerError.html +96 -0
  45. data/doc/rdoc/classes/PhusionPassenger/AbstractServer/ServerNotStarted.html +97 -0
  46. data/doc/rdoc/classes/PhusionPassenger/AbstractServer/UnknownMessage.html +96 -0
  47. data/doc/rdoc/classes/PhusionPassenger/AbstractServerCollection.html +619 -0
  48. data/doc/rdoc/classes/PhusionPassenger/AdminTools.html +142 -0
  49. data/doc/rdoc/classes/PhusionPassenger/AdminTools/MemoryStats.html +368 -0
  50. data/doc/rdoc/classes/PhusionPassenger/AdminTools/MemoryStats/Process.html +231 -0
  51. data/doc/rdoc/classes/PhusionPassenger/AdminTools/ServerInstance.html +588 -0
  52. data/doc/rdoc/classes/PhusionPassenger/AdminTools/ServerInstance/CorruptedDirectoryError.html +92 -0
  53. data/doc/rdoc/classes/PhusionPassenger/AdminTools/ServerInstance/GenerationsAbsentError.html +92 -0
  54. data/doc/rdoc/classes/PhusionPassenger/AdminTools/ServerInstance/Group.html +147 -0
  55. data/doc/rdoc/classes/PhusionPassenger/AdminTools/ServerInstance/Process.html +279 -0
  56. data/doc/rdoc/classes/PhusionPassenger/AdminTools/ServerInstance/RoleDeniedError.html +92 -0
  57. data/doc/rdoc/classes/PhusionPassenger/AdminTools/ServerInstance/StaleDirectoryError.html +92 -0
  58. data/doc/rdoc/classes/PhusionPassenger/AdminTools/ServerInstance/Stats.html +123 -0
  59. data/doc/rdoc/classes/PhusionPassenger/AdminTools/ServerInstance/UnsupportedGenerationStructureVersionError.html +92 -0
  60. data/doc/rdoc/classes/PhusionPassenger/AnalyticsLogger.html +368 -0
  61. data/doc/rdoc/classes/PhusionPassenger/AnalyticsLogger/Log.html +299 -0
  62. data/doc/rdoc/classes/PhusionPassenger/AnalyticsLogger/SharedData.html +206 -0
  63. data/doc/rdoc/classes/PhusionPassenger/AppInitError.html +155 -0
  64. data/doc/rdoc/classes/PhusionPassenger/AppProcess.html +367 -0
  65. data/doc/rdoc/classes/PhusionPassenger/ClassicRails.html +95 -0
  66. data/doc/rdoc/classes/PhusionPassenger/ClassicRails/ApplicationSpawner.html +351 -0
  67. data/doc/rdoc/classes/PhusionPassenger/ClassicRails/ApplicationSpawner/Error.html +98 -0
  68. data/doc/rdoc/classes/PhusionPassenger/ClassicRails/CGIFixed.html +200 -0
  69. data/doc/rdoc/classes/PhusionPassenger/ClassicRails/FrameworkSpawner.html +410 -0
  70. data/doc/rdoc/classes/PhusionPassenger/ClassicRails/FrameworkSpawner/Error.html +98 -0
  71. data/doc/rdoc/classes/PhusionPassenger/ClassicRails/RequestHandler.html +156 -0
  72. data/doc/rdoc/classes/PhusionPassenger/ClassicRailsExtensions.html +115 -0
  73. data/doc/rdoc/classes/PhusionPassenger/ClassicRailsExtensions/AnalyticsLogging.html +202 -0
  74. data/doc/rdoc/classes/PhusionPassenger/ConsoleTextTemplate.html +172 -0
  75. data/doc/rdoc/classes/PhusionPassenger/DebugLogging.html +273 -0
  76. data/doc/rdoc/classes/PhusionPassenger/FrameworkInitError.html +145 -0
  77. data/doc/rdoc/classes/PhusionPassenger/HTMLTemplate.html +162 -0
  78. data/doc/rdoc/classes/PhusionPassenger/InitializationError.html +141 -0
  79. data/doc/rdoc/classes/PhusionPassenger/InvalidPath.html +92 -0
  80. data/doc/rdoc/classes/PhusionPassenger/MessageChannel.html +673 -0
  81. data/doc/rdoc/classes/PhusionPassenger/MessageChannel/InvalidHashError.html +92 -0
  82. data/doc/rdoc/classes/PhusionPassenger/MessageClient.html +415 -0
  83. data/doc/rdoc/classes/PhusionPassenger/NativeSupportLoader.html +134 -0
  84. data/doc/rdoc/classes/PhusionPassenger/Packaging.html +129 -0
  85. data/doc/rdoc/classes/PhusionPassenger/PlatformInfo.html +1972 -0
  86. data/doc/rdoc/classes/PhusionPassenger/Plugin.html +237 -0
  87. data/doc/rdoc/classes/PhusionPassenger/Rack.html +91 -0
  88. data/doc/rdoc/classes/PhusionPassenger/Rack/ApplicationSpawner.html +312 -0
  89. data/doc/rdoc/classes/PhusionPassenger/Rack/ApplicationSpawner/Error.html +98 -0
  90. data/doc/rdoc/classes/PhusionPassenger/Rack/RequestHandler.html +218 -0
  91. data/doc/rdoc/classes/PhusionPassenger/Rails3Extensions.html +114 -0
  92. data/doc/rdoc/classes/PhusionPassenger/Rails3Extensions/AnalyticsLogging.html +259 -0
  93. data/doc/rdoc/classes/PhusionPassenger/Rails3Extensions/AnalyticsLogging/ACExtension.html +139 -0
  94. data/doc/rdoc/classes/PhusionPassenger/Rails3Extensions/AnalyticsLogging/ASBenchmarkableExtension.html +118 -0
  95. data/doc/rdoc/classes/PhusionPassenger/Rails3Extensions/AnalyticsLogging/ExceptionLogger.html +135 -0
  96. data/doc/rdoc/classes/PhusionPassenger/SpawnManager.html +378 -0
  97. data/doc/rdoc/classes/PhusionPassenger/Standalone.html +111 -0
  98. data/doc/rdoc/classes/PhusionPassenger/Standalone/AppFinder.html +252 -0
  99. data/doc/rdoc/classes/PhusionPassenger/Standalone/Command.html +161 -0
  100. data/doc/rdoc/classes/PhusionPassenger/Standalone/ConfigFile.html +368 -0
  101. data/doc/rdoc/classes/PhusionPassenger/Standalone/ConfigFile/DisallowedContextError.html +132 -0
  102. data/doc/rdoc/classes/PhusionPassenger/Standalone/HelpCommand.html +151 -0
  103. data/doc/rdoc/classes/PhusionPassenger/Standalone/Main.html +189 -0
  104. data/doc/rdoc/classes/PhusionPassenger/Standalone/PackageRuntimeCommand.html +177 -0
  105. data/doc/rdoc/classes/PhusionPassenger/Standalone/RuntimeInstaller.html +341 -0
  106. data/doc/rdoc/classes/PhusionPassenger/Standalone/StartCommand.html +203 -0
  107. data/doc/rdoc/classes/PhusionPassenger/Standalone/StatusCommand.html +156 -0
  108. data/doc/rdoc/classes/PhusionPassenger/Standalone/StopCommand.html +168 -0
  109. data/doc/rdoc/classes/PhusionPassenger/Standalone/Utils.html +86 -0
  110. data/doc/rdoc/classes/PhusionPassenger/Standalone/VersionCommand.html +135 -0
  111. data/doc/rdoc/classes/PhusionPassenger/UnknownError.html +125 -0
  112. data/doc/rdoc/classes/PhusionPassenger/Utils.html +1543 -0
  113. data/doc/rdoc/classes/PhusionPassenger/Utils/FileSystemWatcher.html +204 -0
  114. data/doc/rdoc/classes/PhusionPassenger/Utils/FileSystemWatcher/DirInfo.html +171 -0
  115. data/doc/rdoc/classes/PhusionPassenger/Utils/FileSystemWatcher/FileInfo.html +140 -0
  116. data/doc/rdoc/classes/PhusionPassenger/Utils/HostsFileParser.html +260 -0
  117. data/doc/rdoc/classes/PhusionPassenger/Utils/PseudoIO.html +194 -0
  118. data/doc/rdoc/classes/PhusionPassenger/Utils/RewindableInput.html +265 -0
  119. data/doc/rdoc/classes/PhusionPassenger/Utils/RewindableInput/Tempfile.html +120 -0
  120. data/doc/rdoc/classes/PhusionPassenger/Utils/UnseekableSocket.html +561 -0
  121. data/doc/rdoc/classes/PhusionPassenger/VersionNotFound.html +140 -0
  122. data/doc/rdoc/classes/PhusionPassenger/WSGI.html +89 -0
  123. data/doc/rdoc/classes/PhusionPassenger/WSGI/ApplicationSpawner.html +182 -0
  124. data/doc/rdoc/classes/Process.html +115 -0
  125. data/doc/rdoc/classes/Signal.html +139 -0
  126. data/doc/rdoc/created.rid +1 -0
  127. data/doc/rdoc/files/DEVELOPERS_TXT.html +280 -0
  128. data/doc/rdoc/files/README.html +157 -0
  129. data/doc/rdoc/files/lib/phusion_passenger/abstract_installer_rb.html +130 -0
  130. data/doc/rdoc/files/lib/phusion_passenger/abstract_request_handler_rb.html +135 -0
  131. data/doc/rdoc/files/lib/phusion_passenger/abstract_server_collection_rb.html +126 -0
  132. data/doc/rdoc/files/lib/phusion_passenger/abstract_server_rb.html +128 -0
  133. data/doc/rdoc/files/lib/phusion_passenger/admin_tools/memory_stats_rb.html +126 -0
  134. data/doc/rdoc/files/lib/phusion_passenger/admin_tools/server_instance_rb.html +132 -0
  135. data/doc/rdoc/files/lib/phusion_passenger/admin_tools_rb.html +122 -0
  136. data/doc/rdoc/files/lib/phusion_passenger/analytics_logger_rb.html +129 -0
  137. data/doc/rdoc/files/lib/phusion_passenger/app_process_rb.html +127 -0
  138. data/doc/rdoc/files/lib/phusion_passenger/classic_rails/application_spawner_rb.html +141 -0
  139. data/doc/rdoc/files/lib/phusion_passenger/classic_rails/cgi_fixed_rb.html +126 -0
  140. data/doc/rdoc/files/lib/phusion_passenger/classic_rails/framework_spawner_rb.html +146 -0
  141. data/doc/rdoc/files/lib/phusion_passenger/classic_rails/request_handler_rb.html +125 -0
  142. data/doc/rdoc/files/lib/phusion_passenger/classic_rails_extensions/init_rb.html +132 -0
  143. data/doc/rdoc/files/lib/phusion_passenger/console_text_template_rb.html +126 -0
  144. data/doc/rdoc/files/lib/phusion_passenger/constants_rb.html +122 -0
  145. data/doc/rdoc/files/lib/phusion_passenger/debug_logging_rb.html +122 -0
  146. data/doc/rdoc/files/lib/phusion_passenger/dependencies_rb.html +147 -0
  147. data/doc/rdoc/files/lib/phusion_passenger/exceptions_rb.html +122 -0
  148. data/doc/rdoc/files/lib/phusion_passenger/html_template_rb.html +127 -0
  149. data/doc/rdoc/files/lib/phusion_passenger/message_channel_rb.html +120 -0
  150. data/doc/rdoc/files/lib/phusion_passenger/message_client_rb.html +127 -0
  151. data/doc/rdoc/files/lib/phusion_passenger/native_support_rb.html +132 -0
  152. data/doc/rdoc/files/lib/phusion_passenger/packaging_rb.html +122 -0
  153. data/doc/rdoc/files/lib/phusion_passenger/platform_info/apache_rb.html +127 -0
  154. data/doc/rdoc/files/lib/phusion_passenger/platform_info/binary_compatibility_rb.html +129 -0
  155. data/doc/rdoc/files/lib/phusion_passenger/platform_info/compiler_rb.html +127 -0
  156. data/doc/rdoc/files/lib/phusion_passenger/platform_info/curl_rb.html +126 -0
  157. data/doc/rdoc/files/lib/phusion_passenger/platform_info/documentation_tools_rb.html +126 -0
  158. data/doc/rdoc/files/lib/phusion_passenger/platform_info/linux_rb.html +126 -0
  159. data/doc/rdoc/files/lib/phusion_passenger/platform_info/operating_system_rb.html +127 -0
  160. data/doc/rdoc/files/lib/phusion_passenger/platform_info/ruby_rb.html +128 -0
  161. data/doc/rdoc/files/lib/phusion_passenger/platform_info/zlib_rb.html +126 -0
  162. data/doc/rdoc/files/lib/phusion_passenger/platform_info_rb.html +122 -0
  163. data/doc/rdoc/files/lib/phusion_passenger/plugin_rb.html +127 -0
  164. data/doc/rdoc/files/lib/phusion_passenger/public_api_rb.html +127 -0
  165. data/doc/rdoc/files/lib/phusion_passenger/rack/application_spawner_rb.html +137 -0
  166. data/doc/rdoc/files/lib/phusion_passenger/rack/request_handler_rb.html +125 -0
  167. data/doc/rdoc/files/lib/phusion_passenger/rails3_extensions/init_rb.html +127 -0
  168. data/doc/rdoc/files/lib/phusion_passenger/simple_benchmarking_rb.html +122 -0
  169. data/doc/rdoc/files/lib/phusion_passenger/spawn_manager_rb.html +160 -0
  170. data/doc/rdoc/files/lib/phusion_passenger/standalone/app_finder_rb.html +127 -0
  171. data/doc/rdoc/files/lib/phusion_passenger/standalone/command_rb.html +136 -0
  172. data/doc/rdoc/files/lib/phusion_passenger/standalone/config_file_rb.html +126 -0
  173. data/doc/rdoc/files/lib/phusion_passenger/standalone/help_command_rb.html +126 -0
  174. data/doc/rdoc/files/lib/phusion_passenger/standalone/main_rb.html +126 -0
  175. data/doc/rdoc/files/lib/phusion_passenger/standalone/package_runtime_command_rb.html +127 -0
  176. data/doc/rdoc/files/lib/phusion_passenger/standalone/runtime_installer_rb.html +133 -0
  177. data/doc/rdoc/files/lib/phusion_passenger/standalone/start_command_rb.html +136 -0
  178. data/doc/rdoc/files/lib/phusion_passenger/standalone/status_command_rb.html +126 -0
  179. data/doc/rdoc/files/lib/phusion_passenger/standalone/stop_command_rb.html +126 -0
  180. data/doc/rdoc/files/lib/phusion_passenger/standalone/utils_rb.html +126 -0
  181. data/doc/rdoc/files/lib/phusion_passenger/standalone/version_command_rb.html +127 -0
  182. data/doc/rdoc/files/lib/phusion_passenger/utils/file_system_watcher_rb.html +126 -0
  183. data/doc/rdoc/files/lib/phusion_passenger/utils/hosts_file_parser_rb.html +120 -0
  184. data/doc/rdoc/files/lib/phusion_passenger/utils/rewindable_input_rb.html +100 -0
  185. data/doc/rdoc/files/lib/phusion_passenger/utils/tmpdir_rb.html +122 -0
  186. data/doc/rdoc/files/lib/phusion_passenger/utils/unseekable_socket_rb.html +126 -0
  187. data/doc/rdoc/files/lib/phusion_passenger/utils_rb.html +179 -0
  188. data/doc/rdoc/files/lib/phusion_passenger/wsgi/application_spawner_rb.html +132 -0
  189. data/doc/rdoc/fr_class_index.html +139 -0
  190. data/doc/rdoc/fr_file_index.html +108 -0
  191. data/doc/rdoc/fr_method_index.html +439 -0
  192. data/doc/rdoc/index.html +26 -0
  193. data/doc/rdoc/rdoc-style.css +187 -0
  194. data/ext/apache2/Configuration.cpp +41 -0
  195. data/ext/apache2/Configuration.hpp +19 -0
  196. data/ext/apache2/Hooks.cpp +67 -5
  197. data/ext/common/Constants.h +1 -1
  198. data/ext/common/Exceptions.h +14 -0
  199. data/ext/common/Logging.h +76 -6
  200. data/ext/common/LoggingAgent/FilterSupport.h +1317 -0
  201. data/ext/common/LoggingAgent/LoggingServer.h +93 -4
  202. data/ext/common/LoggingAgent/RemoteSender.h +5 -5
  203. data/ext/common/Utils/StrIntUtils.cpp +12 -1
  204. data/ext/common/Utils/StrIntUtils.h +2 -1
  205. data/ext/common/Utils/StringMap.h +100 -0
  206. data/ext/nginx/Configuration.c +0 -1
  207. data/ext/nginx/ContentHandler.c +33 -7
  208. data/lib/phusion_passenger.rb +2 -2
  209. data/lib/phusion_passenger/abstract_request_handler.rb +5 -0
  210. data/lib/phusion_passenger/analytics_logger.rb +77 -11
  211. data/lib/phusion_passenger/dependencies.rb +11 -1
  212. data/lib/phusion_passenger/platform_info.rb +1 -1
  213. data/lib/phusion_passenger/utils.rb +9 -1
  214. data/test/cxx/FilterSupportTest.cpp +276 -0
  215. data/test/cxx/LoggingTest.cpp +28 -0
  216. data/test/cxx/StringMapTest.cpp +70 -0
  217. data/test/integration_tests/cgi_environment_spec.rb +10 -0
  218. metadata +170 -8
  219. data/ext/common/libboost_oxt/aggregate.cpp +0 -10
  220. data/ext/common/libpassenger_common/aggregate.cpp +0 -15
@@ -72,6 +72,7 @@
72
72
  <tr><td class="indexkey"><a class="el" href="classPassenger_1_1SpawnManager.html">Passenger::SpawnManager</a></td><td class="indexvalue">An <a class="el" href="classPassenger_1_1AbstractSpawnManager.html" title="Spawning of application processes.">AbstractSpawnManager</a> implementation </td></tr>
73
73
  <tr><td class="indexkey"><a class="el" href="classPassenger_1_1StandardSession.html">Passenger::StandardSession</a></td><td class="indexvalue">A "standard" implementation of <a class="el" href="classPassenger_1_1Session.html" title="Represents a single request/response pair of an application process.">Session</a> </td></tr>
74
74
  <tr><td class="indexkey"><a class="el" href="classPassenger_1_1StaticString.html">Passenger::StaticString</a></td><td class="indexvalue">An immutable, static byte buffer </td></tr>
75
+ <tr><td class="indexkey"><a class="el" href="classPassenger_1_1SyntaxError.html">Passenger::SyntaxError</a></td><td class="indexvalue">A parser detected a syntax error </td></tr>
75
76
  <tr><td class="indexkey"><a class="el" href="classPassenger_1_1SystemException.html">Passenger::SystemException</a></td><td class="indexvalue">Represents an error returned by a system call or a standard library call </td></tr>
76
77
  <tr><td class="indexkey"><a class="el" href="classPassenger_1_1TimeoutException.html">Passenger::TimeoutException</a></td><td class="indexvalue">An exception indicating that some timeout expired </td></tr>
77
78
  <tr><td class="indexkey"><a class="el" href="classPassenger_1_1TimeRetrievalException.html">Passenger::TimeRetrievalException</a></td><td class="indexvalue">Unable to retrieve the system time using <code>time()</code> </td></tr>
@@ -31,10 +31,10 @@
31
31
  <table align="center" width="95%" border="0" cellspacing="0" cellpadding="0">
32
32
  <tr><td><a name="letter_A"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;A&nbsp;&nbsp;</div></td></tr></table>
33
33
  </td><td><a name="letter_D"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;D&nbsp;&nbsp;</div></td></tr></table>
34
- </td><td><a class="el" href="classPassenger_1_1FileSystemException.html">FileSystemException</a> (<a class="el" href="namespacePassenger.html">Passenger</a>)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classPassenger_1_1Process.html">Process</a> (<a class="el" href="namespacePassenger.html">Passenger</a>)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classPassenger_1_1Session.html">Session</a> (<a class="el" href="namespacePassenger.html">Passenger</a>)&nbsp;&nbsp;&nbsp;</td></tr><tr><td><a class="el" href="classPassenger_1_1AbstractSpawnManager.html">AbstractSpawnManager</a> (<a class="el" href="namespacePassenger.html">Passenger</a>)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classPassenger_1_1DirectoryMapper.html">DirectoryMapper</a> (<a class="el" href="namespacePassenger.html">Passenger</a>)&nbsp;&nbsp;&nbsp;</td><td><a name="letter_H"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;H&nbsp;&nbsp;</div></td></tr></table>
34
+ </td><td><a class="el" href="classPassenger_1_1FileSystemException.html">FileSystemException</a> (<a class="el" href="namespacePassenger.html">Passenger</a>)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classPassenger_1_1Process.html">Process</a> (<a class="el" href="namespacePassenger.html">Passenger</a>)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classPassenger_1_1SpawnException.html">SpawnException</a> (<a class="el" href="namespacePassenger.html">Passenger</a>)&nbsp;&nbsp;&nbsp;</td></tr><tr><td><a class="el" href="classPassenger_1_1AbstractSpawnManager.html">AbstractSpawnManager</a> (<a class="el" href="namespacePassenger.html">Passenger</a>)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classPassenger_1_1DirectoryMapper.html">DirectoryMapper</a> (<a class="el" href="namespacePassenger.html">Passenger</a>)&nbsp;&nbsp;&nbsp;</td><td><a name="letter_H"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;H&nbsp;&nbsp;</div></td></tr></table>
35
35
  </td><td><a name="letter_R"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;R&nbsp;&nbsp;</div></td></tr></table>
36
- </td><td><a class="el" href="classPassenger_1_1SpawnException.html">SpawnException</a> (<a class="el" href="namespacePassenger.html">Passenger</a>)&nbsp;&nbsp;&nbsp;</td></tr><tr><td><a class="el" href="classAgentWatcher.html">AgentWatcher</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="structPassenger_1_1MessageServer_1_1DisconnectEventBroadcastGuard.html">MessageServer::DisconnectEventBroadcastGuard</a> (<a class="el" href="namespacePassenger.html">Passenger</a>)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classPassenger_1_1MessageServer_1_1Handler.html">MessageServer::Handler</a> (<a class="el" href="namespacePassenger.html">Passenger</a>)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classPassenger_1_1RandomGenerator.html">RandomGenerator</a> (<a class="el" href="namespacePassenger.html">Passenger</a>)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classPassenger_1_1SpawnManager.html">SpawnManager</a> (<a class="el" href="namespacePassenger.html">Passenger</a>)&nbsp;&nbsp;&nbsp;</td></tr><tr><td><a class="el" href="classPassenger_1_1ArgumentException.html">ArgumentException</a> (<a class="el" href="namespacePassenger.html">Passenger</a>)&nbsp;&nbsp;&nbsp;</td><td><a name="letter_E"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;E&nbsp;&nbsp;</div></td></tr></table>
37
- </td><td><a class="el" href="structPassenger_1_1StaticString_1_1Hash.html">StaticString::Hash</a> (<a class="el" href="namespacePassenger.html">Passenger</a>)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classPassenger_1_1ResourceLocator.html">ResourceLocator</a> (<a class="el" href="namespacePassenger.html">Passenger</a>)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classPassenger_1_1StandardSession.html">StandardSession</a> (<a class="el" href="namespacePassenger.html">Passenger</a>)&nbsp;&nbsp;&nbsp;</td></tr><tr><td><a class="el" href="classPassenger_1_1ArrayMessage.html">ArrayMessage</a> (<a class="el" href="namespacePassenger.html">Passenger</a>)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classPassenger_1_1EOFException.html">EOFException</a> (<a class="el" href="namespacePassenger.html">Passenger</a>)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classHooks.html">Hooks</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classPassenger_1_1RuntimeException.html">RuntimeException</a> (<a class="el" href="namespacePassenger.html">Passenger</a>)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classPassenger_1_1StaticString.html">StaticString</a> (<a class="el" href="namespacePassenger.html">Passenger</a>)&nbsp;&nbsp;&nbsp;</td></tr><tr><td><a name="letter_B"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;B&nbsp;&nbsp;</div></td></tr></table>
36
+ </td><td><a class="el" href="classPassenger_1_1SpawnManager.html">SpawnManager</a> (<a class="el" href="namespacePassenger.html">Passenger</a>)&nbsp;&nbsp;&nbsp;</td></tr><tr><td><a class="el" href="classAgentWatcher.html">AgentWatcher</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="structPassenger_1_1MessageServer_1_1DisconnectEventBroadcastGuard.html">MessageServer::DisconnectEventBroadcastGuard</a> (<a class="el" href="namespacePassenger.html">Passenger</a>)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classPassenger_1_1MessageServer_1_1Handler.html">MessageServer::Handler</a> (<a class="el" href="namespacePassenger.html">Passenger</a>)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classPassenger_1_1RandomGenerator.html">RandomGenerator</a> (<a class="el" href="namespacePassenger.html">Passenger</a>)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classPassenger_1_1StandardSession.html">StandardSession</a> (<a class="el" href="namespacePassenger.html">Passenger</a>)&nbsp;&nbsp;&nbsp;</td></tr><tr><td><a class="el" href="classPassenger_1_1ArgumentException.html">ArgumentException</a> (<a class="el" href="namespacePassenger.html">Passenger</a>)&nbsp;&nbsp;&nbsp;</td><td><a name="letter_E"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;E&nbsp;&nbsp;</div></td></tr></table>
37
+ </td><td><a class="el" href="structPassenger_1_1StaticString_1_1Hash.html">StaticString::Hash</a> (<a class="el" href="namespacePassenger.html">Passenger</a>)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classPassenger_1_1ResourceLocator.html">ResourceLocator</a> (<a class="el" href="namespacePassenger.html">Passenger</a>)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classPassenger_1_1StaticString.html">StaticString</a> (<a class="el" href="namespacePassenger.html">Passenger</a>)&nbsp;&nbsp;&nbsp;</td></tr><tr><td><a class="el" href="classPassenger_1_1ArrayMessage.html">ArrayMessage</a> (<a class="el" href="namespacePassenger.html">Passenger</a>)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classPassenger_1_1EOFException.html">EOFException</a> (<a class="el" href="namespacePassenger.html">Passenger</a>)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classHooks.html">Hooks</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classPassenger_1_1RuntimeException.html">RuntimeException</a> (<a class="el" href="namespacePassenger.html">Passenger</a>)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classPassenger_1_1SyntaxError.html">SyntaxError</a> (<a class="el" href="namespacePassenger.html">Passenger</a>)&nbsp;&nbsp;&nbsp;</td></tr><tr><td><a name="letter_B"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;B&nbsp;&nbsp;</div></td></tr></table>
38
38
  </td><td><a class="el" href="classPassenger_1_1EventedClient.html">EventedClient</a> (<a class="el" href="namespacePassenger.html">Passenger</a>)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classPassenger_1_1HttpStatusExtractor.html">HttpStatusExtractor</a> (<a class="el" href="namespacePassenger.html">Passenger</a>)&nbsp;&nbsp;&nbsp;</td><td><a name="letter_S"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;S&nbsp;&nbsp;</div></td></tr></table>
39
39
  </td><td><a class="el" href="classPassenger_1_1SystemException.html">SystemException</a> (<a class="el" href="namespacePassenger.html">Passenger</a>)&nbsp;&nbsp;&nbsp;</td></tr><tr><td><a class="el" href="classPassenger_1_1BufferedUpload.html">BufferedUpload</a> (<a class="el" href="namespacePassenger.html">Passenger</a>)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classPassenger_1_1EventedMessageServer.html">EventedMessageServer</a> (<a class="el" href="namespacePassenger.html">Passenger</a>)&nbsp;&nbsp;&nbsp;</td><td><a name="letter_I"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;I&nbsp;&nbsp;</div></td></tr></table>
40
40
  </td><td><a class="el" href="classPassenger_1_1SafeLibev.html">SafeLibev</a> (<a class="el" href="namespacePassenger.html">Passenger</a>)&nbsp;&nbsp;&nbsp;</td><td><a name="letter_T"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;T&nbsp;&nbsp;</div></td></tr></table>
@@ -43,7 +43,7 @@
43
43
  </td><td><a class="el" href="classPassenger_1_1ScgiRequestParser.html">ScgiRequestParser</a> (<a class="el" href="namespacePassenger.html">Passenger</a>)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classPassenger_1_1TimeRetrievalException.html">TimeRetrievalException</a> (<a class="el" href="namespacePassenger.html">Passenger</a>)&nbsp;&nbsp;&nbsp;</td></tr><tr><td><a class="el" href="classClient.html">Client</a>&nbsp;&nbsp;&nbsp;</td><td><a name="letter_F"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;F&nbsp;&nbsp;</div></td></tr></table>
44
44
  </td><td><a class="el" href="classPassenger_1_1MessageChannel.html">MessageChannel</a> (<a class="el" href="namespacePassenger.html">Passenger</a>)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classPassenger_1_1SecurityException.html">SecurityException</a> (<a class="el" href="namespacePassenger.html">Passenger</a>)&nbsp;&nbsp;&nbsp;</td><td><a name="letter_U"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;U&nbsp;&nbsp;</div></td></tr></table>
45
45
  </td></tr><tr><td><a class="el" href="classPassenger_1_1MessageServer_1_1ClientContext.html">MessageServer::ClientContext</a> (<a class="el" href="namespacePassenger.html">Passenger</a>)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classPassenger_1_1FileDescriptor.html">FileDescriptor</a> (<a class="el" href="namespacePassenger.html">Passenger</a>)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classPassenger_1_1MessageServer.html">MessageServer</a> (<a class="el" href="namespacePassenger.html">Passenger</a>)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classServer.html">Server</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classPassenger_1_1Uint16Message.html">Uint16Message</a> (<a class="el" href="namespacePassenger.html">Passenger</a>)&nbsp;&nbsp;&nbsp;</td></tr><tr><td><a class="el" href="classPassenger_1_1MessageServer_1_1CommonClientContext.html">MessageServer::CommonClientContext</a> (<a class="el" href="namespacePassenger.html">Passenger</a>)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classPassenger_1_1FileDescriptorPair.html">FileDescriptorPair</a> (<a class="el" href="namespacePassenger.html">Passenger</a>)&nbsp;&nbsp;&nbsp;</td><td><a name="letter_P"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;P&nbsp;&nbsp;</div></td></tr></table>
46
- </td><td><a class="el" href="classServerInstanceDirToucher.html">ServerInstanceDirToucher</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classPassenger_1_1Uint32Message.html">Uint32Message</a> (<a class="el" href="namespacePassenger.html">Passenger</a>)&nbsp;&nbsp;&nbsp;</td></tr><tr><td><a class="el" href="classPassenger_1_1ConfigurationException.html">ConfigurationException</a> (<a class="el" href="namespacePassenger.html">Passenger</a>)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classPassenger_1_1FileNotFoundException.html">FileNotFoundException</a> (<a class="el" href="namespacePassenger.html">Passenger</a>)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="structPassenger_1_1PoolOptions.html">PoolOptions</a> (<a class="el" href="namespacePassenger.html">Passenger</a>)&nbsp;&nbsp;&nbsp;</td></tr></table><div class="qindex"><a class="qindex" href="#letter_A">A</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_B">B</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_C">C</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_D">D</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_E">E</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_F">F</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_H">H</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_I">I</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_M">M</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_P">P</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_R">R</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_S">S</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_T">T</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_U">U</a></div>
46
+ </td><td><a class="el" href="classServerInstanceDirToucher.html">ServerInstanceDirToucher</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classPassenger_1_1Uint32Message.html">Uint32Message</a> (<a class="el" href="namespacePassenger.html">Passenger</a>)&nbsp;&nbsp;&nbsp;</td></tr><tr><td><a class="el" href="classPassenger_1_1ConfigurationException.html">ConfigurationException</a> (<a class="el" href="namespacePassenger.html">Passenger</a>)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classPassenger_1_1FileNotFoundException.html">FileNotFoundException</a> (<a class="el" href="namespacePassenger.html">Passenger</a>)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="structPassenger_1_1PoolOptions.html">PoolOptions</a> (<a class="el" href="namespacePassenger.html">Passenger</a>)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classPassenger_1_1Session.html">Session</a> (<a class="el" href="namespacePassenger.html">Passenger</a>)&nbsp;&nbsp;&nbsp;</td></tr></table><div class="qindex"><a class="qindex" href="#letter_A">A</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_B">B</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_C">C</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_D">D</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_E">E</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_F">F</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_H">H</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_I">I</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_M">M</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_P">P</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_R">R</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_S">S</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_T">T</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_U">U</a></div>
47
47
  </div>
48
48
  <hr size="1"/><address style="text-align: right;"><small>Generated by&nbsp;
49
49
  <a href="http://www.doxygen.org/index.html">
@@ -42,6 +42,8 @@
42
42
  <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Represents some kind of security error. <a href="classPassenger_1_1SecurityException.html#_details">More...</a><br/></td></tr>
43
43
  <tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1BusyException.html">Passenger::BusyException</a></td></tr>
44
44
  <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The application pool is too busy and cannot fulfill a get() request. <a href="classPassenger_1_1BusyException.html#_details">More...</a><br/></td></tr>
45
+ <tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1SyntaxError.html">Passenger::SyntaxError</a></td></tr>
46
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A parser detected a syntax error. <a href="classPassenger_1_1SyntaxError.html#_details">More...</a><br/></td></tr>
45
47
  </table>
46
48
  </div>
47
49
  <hr size="1"/><address style="text-align: right;"><small>Generated by&nbsp;
@@ -83,6 +83,7 @@ This inheritance list is sorted roughly, but not completely, alphabetically:<ul>
83
83
  </li>
84
84
  <li><a class="el" href="classPassenger_1_1SpawnException.html">Passenger::SpawnException</a></li>
85
85
  <li><a class="el" href="classPassenger_1_1StaticString.html">Passenger::StaticString</a></li>
86
+ <li><a class="el" href="classPassenger_1_1SyntaxError.html">Passenger::SyntaxError</a></li>
86
87
  <li><a class="el" href="classPassenger_1_1SystemException.html">Passenger::SystemException</a><ul>
87
88
  <li><a class="el" href="classPassenger_1_1FileSystemException.html">Passenger::FileSystemException</a></li>
88
89
  <li><a class="el" href="classPassenger_1_1TimeRetrievalException.html">Passenger::TimeRetrievalException</a></li>
@@ -1,5 +1,3 @@
1
1
  <map id="G" name="G">
2
- <area shape="rect" id="node1" href="$classPassenger_1_1SystemException.html" title="Represents an error returned by a system call or a standard library call." alt="" coords="5,32,213,61"/>
3
- <area shape="rect" id="node3" href="$classPassenger_1_1FileSystemException.html" title="A filesystem error, as returned by the operating system." alt="" coords="271,5,497,35"/>
4
- <area shape="rect" id="node5" href="$classPassenger_1_1TimeRetrievalException.html" title="Unable to retrieve the system time using time()." alt="" coords="263,59,505,88"/>
2
+ <area shape="rect" id="node1" href="$classPassenger_1_1SyntaxError.html" title="A parser detected a syntax error." alt="" coords="7,5,177,35"/>
5
3
  </map>
@@ -1 +1 @@
1
- 42770577cc354ad419416644abc40e70
1
+ cd52bc92280d11094ac24f7e4eedc075
@@ -1,3 +1,5 @@
1
1
  <map id="G" name="G">
2
- <area shape="rect" id="node1" href="$classPassenger_1_1TimeoutException.html" title="An exception indicating that some timeout expired." alt="" coords="5,5,216,35"/>
2
+ <area shape="rect" id="node1" href="$classPassenger_1_1SystemException.html" title="Represents an error returned by a system call or a standard library call." alt="" coords="5,32,213,61"/>
3
+ <area shape="rect" id="node3" href="$classPassenger_1_1FileSystemException.html" title="A filesystem error, as returned by the operating system." alt="" coords="271,5,497,35"/>
4
+ <area shape="rect" id="node5" href="$classPassenger_1_1TimeRetrievalException.html" title="Unable to retrieve the system time using time()." alt="" coords="263,59,505,88"/>
3
5
  </map>
@@ -1 +1 @@
1
- e011e6aaa3322750aa4eb2b9038df83b
1
+ 42770577cc354ad419416644abc40e70
@@ -1,3 +1,3 @@
1
1
  <map id="G" name="G">
2
- <area shape="rect" id="node1" href="$classPassenger_1_1Uint16Message.html" title="For 16&#45;bit big&#45;endian integers." alt="" coords="7,5,201,35"/>
2
+ <area shape="rect" id="node1" href="$classPassenger_1_1TimeoutException.html" title="An exception indicating that some timeout expired." alt="" coords="5,5,216,35"/>
3
3
  </map>
@@ -1 +1 @@
1
- f4e847cb129a1a1896a506f463bb7b63
1
+ e011e6aaa3322750aa4eb2b9038df83b
@@ -1,3 +1,3 @@
1
1
  <map id="G" name="G">
2
- <area shape="rect" id="node1" href="$classPassenger_1_1Uint32Message.html" title="For 32&#45;bit big&#45;endian integers." alt="" coords="7,5,201,35"/>
2
+ <area shape="rect" id="node1" href="$classPassenger_1_1Uint16Message.html" title="For 16&#45;bit big&#45;endian integers." alt="" coords="7,5,201,35"/>
3
3
  </map>
@@ -1 +1 @@
1
- c443ee7bdc3e4ed0dd4bb3e420a207e8
1
+ f4e847cb129a1a1896a506f463bb7b63
@@ -1,3 +1,3 @@
1
1
  <map id="G" name="G">
2
- <area shape="rect" id="node1" href="$classServer.html" title="A representation of the Server responsible for handling Client instances." alt="" coords="5,5,69,35"/>
2
+ <area shape="rect" id="node1" href="$classPassenger_1_1Uint32Message.html" title="For 32&#45;bit big&#45;endian integers." alt="" coords="7,5,201,35"/>
3
3
  </map>
@@ -1 +1 @@
1
- 49c26619ea57b6fab68bb69492ab64b3
1
+ c443ee7bdc3e4ed0dd4bb3e420a207e8
@@ -1,3 +1,3 @@
1
1
  <map id="G" name="G">
2
- <area shape="rect" id="node1" href="$classServerInstanceDirToucher.html" title="Touch all files in the server instance dir every 6 hours in order to prevent /tmp..." alt="" coords="7,5,191,35"/>
2
+ <area shape="rect" id="node1" href="$classServer.html" title="A representation of the Server responsible for handling Client instances." alt="" coords="5,5,69,35"/>
3
3
  </map>
@@ -1 +1 @@
1
- 895fbb1cabd5da8622d5341648d91bb3
1
+ 49c26619ea57b6fab68bb69492ab64b3
@@ -135,22 +135,25 @@
135
135
  <tr><td><img src="inherit__graph__34.png" border="0" alt="" usemap="#Passenger_1_1StaticString_1_1Hash_map"/>
136
136
  <map name="Passenger_1_1StaticString_1_1Hash_map" id="Passenger_1_1StaticString_1_1Hash">
137
137
  <area shape="rect" id="node1" href="structPassenger_1_1StaticString_1_1Hash.html" title="A hash function object for StaticString." alt="" coords="7,5,217,35"/></map></td></tr>
138
- <tr><td><img src="inherit__graph__35.png" border="0" alt="" usemap="#Passenger_1_1SystemException_map"/>
138
+ <tr><td><img src="inherit__graph__35.png" border="0" alt="" usemap="#Passenger_1_1SyntaxError_map"/>
139
+ <map name="Passenger_1_1SyntaxError_map" id="Passenger_1_1SyntaxError">
140
+ <area shape="rect" id="node1" href="classPassenger_1_1SyntaxError.html" title="A parser detected a syntax error." alt="" coords="7,5,177,35"/></map></td></tr>
141
+ <tr><td><img src="inherit__graph__36.png" border="0" alt="" usemap="#Passenger_1_1SystemException_map"/>
139
142
  <map name="Passenger_1_1SystemException_map" id="Passenger_1_1SystemException">
140
143
  <area shape="rect" id="node1" href="classPassenger_1_1SystemException.html" title="Represents an error returned by a system call or a standard library call." alt="" coords="5,32,213,61"/><area shape="rect" id="node3" href="classPassenger_1_1FileSystemException.html" title="A filesystem error, as returned by the operating system." alt="" coords="271,5,497,35"/><area shape="rect" id="node5" href="classPassenger_1_1TimeRetrievalException.html" title="Unable to retrieve the system time using time()." alt="" coords="263,59,505,88"/></map></td></tr>
141
- <tr><td><img src="inherit__graph__36.png" border="0" alt="" usemap="#Passenger_1_1TimeoutException_map"/>
144
+ <tr><td><img src="inherit__graph__37.png" border="0" alt="" usemap="#Passenger_1_1TimeoutException_map"/>
142
145
  <map name="Passenger_1_1TimeoutException_map" id="Passenger_1_1TimeoutException">
143
146
  <area shape="rect" id="node1" href="classPassenger_1_1TimeoutException.html" title="An exception indicating that some timeout expired." alt="" coords="5,5,216,35"/></map></td></tr>
144
- <tr><td><img src="inherit__graph__37.png" border="0" alt="" usemap="#Passenger_1_1Uint16Message_map"/>
147
+ <tr><td><img src="inherit__graph__38.png" border="0" alt="" usemap="#Passenger_1_1Uint16Message_map"/>
145
148
  <map name="Passenger_1_1Uint16Message_map" id="Passenger_1_1Uint16Message">
146
149
  <area shape="rect" id="node1" href="classPassenger_1_1Uint16Message.html" title="For 16&#45;bit big&#45;endian integers." alt="" coords="7,5,201,35"/></map></td></tr>
147
- <tr><td><img src="inherit__graph__38.png" border="0" alt="" usemap="#Passenger_1_1Uint32Message_map"/>
150
+ <tr><td><img src="inherit__graph__39.png" border="0" alt="" usemap="#Passenger_1_1Uint32Message_map"/>
148
151
  <map name="Passenger_1_1Uint32Message_map" id="Passenger_1_1Uint32Message">
149
152
  <area shape="rect" id="node1" href="classPassenger_1_1Uint32Message.html" title="For 32&#45;bit big&#45;endian integers." alt="" coords="7,5,201,35"/></map></td></tr>
150
- <tr><td><img src="inherit__graph__39.png" border="0" alt="" usemap="#Server_map"/>
153
+ <tr><td><img src="inherit__graph__40.png" border="0" alt="" usemap="#Server_map"/>
151
154
  <map name="Server_map" id="Server">
152
155
  <area shape="rect" id="node1" href="classServer.html" title="A representation of the Server responsible for handling Client instances." alt="" coords="5,5,69,35"/></map></td></tr>
153
- <tr><td><img src="inherit__graph__40.png" border="0" alt="" usemap="#ServerInstanceDirToucher_map"/>
156
+ <tr><td><img src="inherit__graph__41.png" border="0" alt="" usemap="#ServerInstanceDirToucher_map"/>
154
157
  <map name="ServerInstanceDirToucher_map" id="ServerInstanceDirToucher">
155
158
  <area shape="rect" id="node1" href="classServerInstanceDirToucher.html" title="Touch all files in the server instance dir every 6 hours in order to prevent /tmp..." alt="" coords="7,5,191,35"/></map></td></tr>
156
159
  </table>
@@ -67,6 +67,8 @@
67
67
  <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Represents some kind of security error. <a href="classPassenger_1_1SecurityException.html#_details">More...</a><br/></td></tr>
68
68
  <tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1BusyException.html">BusyException</a></td></tr>
69
69
  <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The application pool is too busy and cannot fulfill a get() request. <a href="classPassenger_1_1BusyException.html#_details">More...</a><br/></td></tr>
70
+ <tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1SyntaxError.html">SyntaxError</a></td></tr>
71
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A parser detected a syntax error. <a href="classPassenger_1_1SyntaxError.html#_details">More...</a><br/></td></tr>
70
72
  <tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1FileDescriptor.html">FileDescriptor</a></td></tr>
71
73
  <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Wrapper class around a file descriptor integer, for RAII behavior. <a href="classPassenger_1_1FileDescriptor.html#_details">More...</a><br/></td></tr>
72
74
  <tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1FileDescriptorPair.html">FileDescriptorPair</a></td></tr>
@@ -119,6 +119,7 @@
119
119
  <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="classPassenger_1_1SpawnManager.html" target="basefrm">Passenger::SpawnManager</a></p>
120
120
  <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="classPassenger_1_1StandardSession.html" target="basefrm">Passenger::StandardSession</a></p>
121
121
  <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="classPassenger_1_1StaticString.html" target="basefrm">Passenger::StaticString</a></p>
122
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="classPassenger_1_1SyntaxError.html" target="basefrm">Passenger::SyntaxError</a></p>
122
123
  <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="classPassenger_1_1SystemException.html" target="basefrm">Passenger::SystemException</a></p>
123
124
  <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="classPassenger_1_1TimeoutException.html" target="basefrm">Passenger::TimeoutException</a></p>
124
125
  <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="classPassenger_1_1TimeRetrievalException.html" target="basefrm">Passenger::TimeRetrievalException</a></p>
@@ -180,6 +181,7 @@
180
181
  </div>
181
182
  <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="classPassenger_1_1SpawnException.html" target="basefrm">Passenger::SpawnException</a></p>
182
183
  <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="classPassenger_1_1StaticString.html" target="basefrm">Passenger::StaticString</a></p>
184
+ <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="classPassenger_1_1SyntaxError.html" target="basefrm">Passenger::SyntaxError</a></p>
183
185
  <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2pnode.png" alt="o" width="16" height="22" onclick="toggleFolder('folder10', this)"/><img src="ftv2folderclosed.png" alt="+" width="24" height="22" onclick="toggleFolder('folder10', this)"/><a class="el" href="classPassenger_1_1SystemException.html" target="basefrm">Passenger::SystemException</a></p>
184
186
  <div id="folder10">
185
187
  <p><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="classPassenger_1_1FileSystemException.html" target="basefrm">Passenger::FileSystemException</a></p>
@@ -0,0 +1,215 @@
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 882</span>
109
+ 882: <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
+ 883: <span class="ruby-identifier">ruby_engine</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">&quot;ruby&quot;</span>
111
+ 884: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">secs</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">100000000</span>
112
+ 885: <span class="ruby-comment cmt"># NOTE: If one calls timeout() on FreeBSD 5 with an</span>
113
+ 886: <span class="ruby-comment cmt"># argument of more than 100000000, then MRI will become</span>
114
+ 887: <span class="ruby-comment cmt"># stuck in an infite loop, blocking all threads. It seems</span>
115
+ 888: <span class="ruby-comment cmt"># that MRI uses select() to implement sleeping.</span>
116
+ 889: <span class="ruby-comment cmt"># I think that a value of more than 100000000 overflows</span>
117
+ 890: <span class="ruby-comment cmt"># select()'s data structures, causing it to behave incorrectly.</span>
118
+ 891: <span class="ruby-comment cmt"># So we just make sure we can't sleep more than 100000000</span>
119
+ 892: <span class="ruby-comment cmt"># seconds.</span>
120
+ 893: <span class="ruby-identifier">secs</span> = <span class="ruby-value">100000000</span>
121
+ 894: <span class="ruby-keyword kw">end</span>
122
+ 895: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">ruby_engine</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;jruby&quot;</span>
123
+ 896: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">secs</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span>
124
+ 897: <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>)
125
+ 898: <span class="ruby-keyword kw">else</span>
126
+ 899: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">wait</span>(<span class="ruby-identifier">mutex</span>)
127
+ 900: <span class="ruby-keyword kw">end</span>
128
+ 901: <span class="ruby-keyword kw">elsif</span> <span class="ruby-constant">RUBY_VERSION</span> <span class="ruby-operator">&gt;=</span> <span class="ruby-value str">'1.9.2'</span>
129
+ 902: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">secs</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span>
130
+ 903: <span class="ruby-identifier">t1</span> = <span class="ruby-constant">Time</span>.<span class="ruby-identifier">now</span>
131
+ 904: <span class="ruby-identifier">wait</span>(<span class="ruby-identifier">mutex</span>, <span class="ruby-identifier">secs</span>)
132
+ 905: <span class="ruby-identifier">t2</span> = <span class="ruby-constant">Time</span>.<span class="ruby-identifier">now</span>
133
+ 906: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">t2</span>.<span class="ruby-identifier">to_f</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">t1</span>.<span class="ruby-identifier">to_f</span> <span class="ruby-operator">&lt;</span> <span class="ruby-identifier">secs</span>
134
+ 907: <span class="ruby-keyword kw">else</span>
135
+ 908: <span class="ruby-identifier">wait</span>(<span class="ruby-identifier">mutex</span>)
136
+ 909: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">true</span>
137
+ 910: <span class="ruby-keyword kw">end</span>
138
+ 911: <span class="ruby-keyword kw">else</span>
139
+ 912: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">secs</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span>
140
+ 913: <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>
141
+ 914: <span class="ruby-identifier">wait</span>(<span class="ruby-identifier">mutex</span>)
142
+ 915: <span class="ruby-keyword kw">end</span>
143
+ 916: <span class="ruby-keyword kw">else</span>
144
+ 917: <span class="ruby-identifier">wait</span>(<span class="ruby-identifier">mutex</span>)
145
+ 918: <span class="ruby-keyword kw">end</span>
146
+ 919: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">true</span>
147
+ 920: <span class="ruby-keyword kw">end</span>
148
+ 921: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">Timeout</span><span class="ruby-operator">::</span><span class="ruby-constant">Error</span>
149
+ 922: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
150
+ 923: <span class="ruby-keyword kw">end</span>
151
+ </pre>
152
+ </div>
153
+ </div>
154
+ </div>
155
+ <div class="method">
156
+ <div class="title">
157
+ <a name="M000004"></a><b>timed_wait!</b>(mutex, secs)
158
+ </div>
159
+ <div class="description">
160
+ <p>
161
+ This is like ConditionVariable.wait(), but allows one to wait a maximum
162
+ amount of time. Raises Timeout::Error if the timeout has elapsed.
163
+ </p>
164
+ </div>
165
+ <div class="sourcecode">
166
+ <p class="source-link">[ <a href="javascript:toggleSource('M000004_source')" id="l_M000004_source">show source</a> ]</p>
167
+ <div id="M000004_source" class="dyn-source">
168
+ <pre>
169
+ <span class="ruby-comment cmt"># File lib/phusion_passenger/utils.rb, line 927</span>
170
+ 927: <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>)
171
+ 928: <span class="ruby-identifier">ruby_engine</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">&quot;ruby&quot;</span>
172
+ 929: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">secs</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">100000000</span>
173
+ 930: <span class="ruby-comment cmt"># See the corresponding note for timed_wait().</span>
174
+ 931: <span class="ruby-identifier">secs</span> = <span class="ruby-value">100000000</span>
175
+ 932: <span class="ruby-keyword kw">end</span>
176
+ 933: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">ruby_engine</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;jruby&quot;</span>
177
+ 934: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">secs</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span>
178
+ 935: <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>)
179
+ 936: <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">&quot;Timeout&quot;</span>
180
+ 937: <span class="ruby-keyword kw">end</span>
181
+ 938: <span class="ruby-keyword kw">else</span>
182
+ 939: <span class="ruby-identifier">wait</span>(<span class="ruby-identifier">mutex</span>)
183
+ 940: <span class="ruby-keyword kw">end</span>
184
+ 941: <span class="ruby-keyword kw">elsif</span> <span class="ruby-constant">RUBY_VERSION</span> <span class="ruby-operator">&gt;=</span> <span class="ruby-value str">'1.9.2'</span>
185
+ 942: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">secs</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span>
186
+ 943: <span class="ruby-identifier">t1</span> = <span class="ruby-constant">Time</span>.<span class="ruby-identifier">now</span>
187
+ 944: <span class="ruby-identifier">wait</span>(<span class="ruby-identifier">mutex</span>, <span class="ruby-identifier">secs</span>)
188
+ 945: <span class="ruby-identifier">t2</span> = <span class="ruby-constant">Time</span>.<span class="ruby-identifier">now</span>
189
+ 946: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">t2</span>.<span class="ruby-identifier">to_f</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">t1</span>.<span class="ruby-identifier">to_f</span> <span class="ruby-operator">&gt;=</span> <span class="ruby-identifier">secs</span>
190
+ 947: <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">&quot;Timeout&quot;</span>
191
+ 948: <span class="ruby-keyword kw">end</span>
192
+ 949: <span class="ruby-keyword kw">else</span>
193
+ 950: <span class="ruby-identifier">wait</span>(<span class="ruby-identifier">mutex</span>)
194
+ 951: <span class="ruby-keyword kw">end</span>
195
+ 952: <span class="ruby-keyword kw">else</span>
196
+ 953: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">secs</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span>
197
+ 954: <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>
198
+ 955: <span class="ruby-identifier">wait</span>(<span class="ruby-identifier">mutex</span>)
199
+ 956: <span class="ruby-keyword kw">end</span>
200
+ 957: <span class="ruby-keyword kw">else</span>
201
+ 958: <span class="ruby-identifier">wait</span>(<span class="ruby-identifier">mutex</span>)
202
+ 959: <span class="ruby-keyword kw">end</span>
203
+ 960: <span class="ruby-keyword kw">end</span>
204
+ 961: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span>
205
+ 962: <span class="ruby-keyword kw">end</span>
206
+ </pre>
207
+ </div>
208
+ </div>
209
+ </div>
210
+ </div>
211
+
212
+ </div>
213
+
214
+ </body>
215
+ </html>
@@ -0,0 +1,120 @@
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: Exception</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 />Exception</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="#M000010">backtrace_string</a></li>
84
+ </ul>
85
+
86
+
87
+
88
+
89
+
90
+
91
+ <div class="sectiontitle">Public Instance methods</div>
92
+ <div class="method">
93
+ <div class="title">
94
+ <a name="M000010"></a><b>backtrace_string</b>(current_location = nil)
95
+ </div>
96
+ <div class="sourcecode">
97
+ <p class="source-link">[ <a href="javascript:toggleSource('M000010_source')" id="l_M000010_source">show source</a> ]</p>
98
+ <div id="M000010_source" class="dyn-source">
99
+ <pre>
100
+ <span class="ruby-comment cmt"># File lib/phusion_passenger/utils.rb, line 866</span>
101
+ 866: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">backtrace_string</span>(<span class="ruby-identifier">current_location</span> = <span class="ruby-keyword kw">nil</span>)
102
+ 867: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">current_location</span>.<span class="ruby-identifier">nil?</span>
103
+ 868: <span class="ruby-identifier">location</span> = <span class="ruby-keyword kw">nil</span>
104
+ 869: <span class="ruby-keyword kw">else</span>
105
+ 870: <span class="ruby-identifier">location</span> = <span class="ruby-node">&quot;in #{current_location} &quot;</span>
106
+ 871: <span class="ruby-keyword kw">end</span>
107
+ 872: <span class="ruby-keyword kw">return</span> <span class="ruby-node">&quot;*** Exception #{self.class} #{location}&quot;</span> <span class="ruby-operator">&lt;&lt;</span>
108
+ 873: <span class="ruby-node">&quot;(#{self}) (process #{$$}, thread #{Thread.current}):\n&quot;</span> <span class="ruby-operator">&lt;&lt;</span>
109
+ 874: <span class="ruby-value str">&quot;\tfrom &quot;</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">backtrace</span>.<span class="ruby-identifier">join</span>(<span class="ruby-value str">&quot;\n\tfrom &quot;</span>)
110
+ 875: <span class="ruby-keyword kw">end</span>
111
+ </pre>
112
+ </div>
113
+ </div>
114
+ </div>
115
+ </div>
116
+
117
+ </div>
118
+
119
+ </body>
120
+ </html>