passenger 2.2.15 → 3.0.0.pre1
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of passenger might be problematic. Click here for more details.
- data/DEVELOPERS.TXT +21 -12
- data/LICENSE +1 -1
- data/NEWS +8 -1
- data/PACKAGING.TXT +25 -0
- data/Rakefile +28 -891
- data/bin/passenger +32 -0
- data/bin/passenger-config +5 -5
- data/bin/passenger-install-apache2-module +37 -24
- data/bin/passenger-install-nginx-module +48 -46
- data/bin/passenger-make-enterprisey +8 -9
- data/bin/passenger-memory-stats +20 -150
- data/bin/passenger-status +130 -44
- data/bin/passenger-stress-test +5 -4
- data/build/agents.rb +73 -0
- data/build/apache2.rb +165 -0
- data/build/basics.rb +81 -0
- data/build/common_library.rb +198 -0
- data/build/config.rb +35 -0
- data/{misc/rake/cplusplus.rb → build/cplusplus_support.rb} +1 -1
- data/build/cxx_tests.rb +205 -0
- data/build/documentation.rb +77 -0
- data/{misc/rake → build}/gempackagetask.rb +1 -1
- data/build/integration_tests.rb +57 -0
- data/build/misc.rb +146 -0
- data/build/nginx.rb +64 -0
- data/build/oxt_tests.rb +52 -0
- data/{misc/rake → build}/packagetask.rb +0 -0
- data/build/packaging.rb +189 -0
- data/{misc/rake/extensions.rb → build/rake_extensions.rb} +1 -1
- data/{misc/rake → build}/rdoctask.rb +0 -0
- data/build/ruby_extension.rb +46 -0
- data/build/ruby_tests.rb +42 -0
- data/build/test_basics.rb +31 -0
- data/doc/ApplicationPool algorithm.txt +447 -234
- data/doc/Architectural overview.html +47 -56
- data/doc/Doxyfile +1 -1
- data/doc/Security of user switching support.html +46 -57
- data/doc/Users guide Apache.html +1033 -306
- data/doc/Users guide Apache.txt +419 -99
- data/doc/Users guide Nginx.html +1252 -253
- data/doc/Users guide Nginx.txt +711 -87
- data/doc/Users guide Standalone.html +603 -0
- data/doc/Users guide Standalone.txt +40 -0
- data/doc/cxxapi/AbstractSpawnManager_8h_source.html +141 -0
- data/doc/cxxapi/Account_8h_source.html +206 -0
- data/doc/cxxapi/AccountsDatabase_8h_source.html +161 -0
- data/doc/cxxapi/AgentBase_8h_source.html +70 -0
- data/doc/cxxapi/AgentsStarter_8h_source.html +112 -0
- data/doc/cxxapi/BCrypt_8h_source.html +104 -0
- data/doc/cxxapi/Blowfish_8h_source.html +134 -0
- data/doc/cxxapi/Bucket_8h_source.html +4 -3
- data/doc/cxxapi/Constants_8h_source.html +79 -0
- data/doc/cxxapi/ContentHandler_8h_source.html +95 -0
- data/doc/cxxapi/DirectoryMapper_8h_source.html +9 -8
- data/doc/cxxapi/EventedClient_8h_source.html +629 -0
- data/doc/cxxapi/EventedMessageServer_8h_source.html +358 -0
- data/doc/cxxapi/EventedServer_8h_source.html +326 -0
- data/doc/cxxapi/Exceptions_8h_source.html +366 -0
- data/doc/cxxapi/FileDescriptor_8h_source.html +260 -0
- data/doc/cxxapi/Hooks_8h_source.html +2 -1
- data/doc/cxxapi/HttpStatusExtractor_8h_source.html +382 -0
- data/doc/cxxapi/Logging_8h_source.html +726 -0
- data/doc/cxxapi/MessageChannel_8h_source.html +852 -0
- data/doc/cxxapi/MessageClient_8h_source.html +328 -0
- data/doc/cxxapi/MessageReadersWriters_8h_source.html +539 -0
- data/doc/cxxapi/MessageServer_8h_source.html +606 -0
- data/doc/cxxapi/PoolOptions_8h_source.html +548 -0
- data/doc/cxxapi/Process_8h_source.html +286 -0
- data/doc/cxxapi/RandomGenerator_8h_source.html +191 -0
- data/doc/cxxapi/ResourceLocator_8h_source.html +115 -0
- data/doc/cxxapi/ScgiRequestParser_8h_source.html +406 -0
- data/doc/cxxapi/ServerInstanceDir_8h_source.html +374 -0
- data/doc/cxxapi/Session_8h_source.html +501 -0
- data/doc/cxxapi/SpawnManager_8h_source.html +647 -0
- data/doc/cxxapi/StaticContentHandler_8h_source.html +68 -0
- data/doc/cxxapi/StaticString_8h_source.html +254 -0
- data/doc/cxxapi/StringListCreator_8h_source.html +114 -0
- data/doc/cxxapi/Utils_8h_source.html +442 -0
- data/doc/cxxapi/annotated.html +46 -0
- data/doc/cxxapi/apache2_2Configuration_8h_source.html +82 -0
- data/doc/cxxapi/classAgentWatcher-members.html +30 -26
- data/doc/cxxapi/classAgentWatcher.html +168 -194
- data/doc/cxxapi/classClient-members.html +14 -11
- data/doc/cxxapi/classClient.html +35 -35
- data/doc/cxxapi/classHooks-members.html +2 -0
- data/doc/cxxapi/classHooks.html +2 -0
- data/doc/cxxapi/classPassenger_1_1AbstractSpawnManager-members.html +16 -13
- data/doc/cxxapi/classPassenger_1_1AbstractSpawnManager.html +78 -82
- data/doc/cxxapi/classPassenger_1_1ArgumentException-members.html +12 -9
- data/doc/cxxapi/classPassenger_1_1ArgumentException.html +26 -22
- data/doc/cxxapi/classPassenger_1_1ArrayMessage-members.html +37 -0
- data/doc/cxxapi/classPassenger_1_1ArrayMessage.html +113 -0
- data/doc/cxxapi/classPassenger_1_1BufferedUpload-members.html +14 -11
- data/doc/cxxapi/classPassenger_1_1BufferedUpload.html +41 -42
- data/doc/cxxapi/classPassenger_1_1BusyException-members.html +12 -9
- data/doc/cxxapi/classPassenger_1_1BusyException.html +24 -20
- data/doc/cxxapi/classPassenger_1_1ConfigurationException-members.html +12 -9
- data/doc/cxxapi/classPassenger_1_1ConfigurationException.html +23 -19
- data/doc/cxxapi/classPassenger_1_1DirectoryMapper-members.html +2 -0
- data/doc/cxxapi/classPassenger_1_1DirectoryMapper.html +8 -6
- data/doc/cxxapi/classPassenger_1_1EOFException-members.html +12 -9
- data/doc/cxxapi/classPassenger_1_1EOFException.html +27 -23
- data/doc/cxxapi/classPassenger_1_1EventFd-members.html +12 -9
- data/doc/cxxapi/classPassenger_1_1EventFd.html +24 -21
- data/doc/cxxapi/classPassenger_1_1EventedClient-members.html +54 -0
- data/doc/cxxapi/classPassenger_1_1EventedClient.html +436 -0
- data/doc/cxxapi/classPassenger_1_1EventedMessageServer-members.html +37 -0
- data/doc/cxxapi/classPassenger_1_1EventedMessageServer.html +59 -0
- data/doc/cxxapi/classPassenger_1_1EventedMessageServer__inherit__graph.map +3 -0
- data/doc/cxxapi/classPassenger_1_1EventedMessageServer__inherit__graph.md5 +1 -0
- data/doc/cxxapi/classPassenger_1_1EventedMessageServer__inherit__graph.png +0 -0
- data/doc/cxxapi/classPassenger_1_1EventedServer-members.html +37 -0
- data/doc/cxxapi/classPassenger_1_1EventedServer.html +93 -0
- data/doc/cxxapi/classPassenger_1_1EventedServer__inherit__graph.map +3 -0
- data/doc/cxxapi/classPassenger_1_1EventedServer__inherit__graph.md5 +1 -0
- data/doc/cxxapi/classPassenger_1_1EventedServer__inherit__graph.png +0 -0
- data/doc/cxxapi/classPassenger_1_1FileDescriptor-members.html +16 -13
- data/doc/cxxapi/classPassenger_1_1FileDescriptor.html +63 -70
- data/doc/cxxapi/classPassenger_1_1FileNotFoundException-members.html +12 -9
- data/doc/cxxapi/classPassenger_1_1FileNotFoundException.html +26 -22
- data/doc/cxxapi/classPassenger_1_1FileSystemException-members.html +17 -14
- data/doc/cxxapi/classPassenger_1_1FileSystemException.html +32 -30
- data/doc/cxxapi/classPassenger_1_1HttpStatusExtractor-members.html +15 -12
- data/doc/cxxapi/classPassenger_1_1HttpStatusExtractor.html +59 -59
- data/doc/cxxapi/classPassenger_1_1IOException-members.html +12 -9
- data/doc/cxxapi/classPassenger_1_1IOException.html +27 -23
- data/doc/cxxapi/classPassenger_1_1MessageChannel-members.html +36 -33
- data/doc/cxxapi/classPassenger_1_1MessageChannel.html +326 -344
- data/doc/cxxapi/classPassenger_1_1MessageServer-members.html +25 -22
- data/doc/cxxapi/classPassenger_1_1MessageServer.html +160 -191
- data/doc/cxxapi/classPassenger_1_1MessageServer_1_1ClientContext-members.html +12 -9
- data/doc/cxxapi/classPassenger_1_1MessageServer_1_1ClientContext.html +29 -27
- data/doc/cxxapi/classPassenger_1_1MessageServer_1_1ClientContext__inherit__graph.map +3 -1
- data/doc/cxxapi/classPassenger_1_1MessageServer_1_1ClientContext__inherit__graph.md5 +1 -1
- data/doc/cxxapi/classPassenger_1_1MessageServer_1_1ClientContext__inherit__graph.png +0 -0
- data/doc/cxxapi/classPassenger_1_1MessageServer_1_1CommonClientContext-members.html +17 -14
- data/doc/cxxapi/classPassenger_1_1MessageServer_1_1CommonClientContext.html +69 -79
- data/doc/cxxapi/classPassenger_1_1MessageServer_1_1CommonClientContext__inherit__graph.map +3 -1
- data/doc/cxxapi/classPassenger_1_1MessageServer_1_1CommonClientContext__inherit__graph.md5 +1 -1
- data/doc/cxxapi/classPassenger_1_1MessageServer_1_1CommonClientContext__inherit__graph.png +0 -0
- data/doc/cxxapi/classPassenger_1_1MessageServer_1_1Handler-members.html +15 -12
- data/doc/cxxapi/classPassenger_1_1MessageServer_1_1Handler.html +60 -63
- data/doc/cxxapi/classPassenger_1_1Process-members.html +20 -17
- data/doc/cxxapi/classPassenger_1_1Process.html +88 -95
- data/doc/cxxapi/classPassenger_1_1RandomGenerator-members.html +13 -10
- data/doc/cxxapi/classPassenger_1_1RandomGenerator.html +36 -35
- data/doc/cxxapi/classPassenger_1_1RuntimeException-members.html +12 -9
- data/doc/cxxapi/classPassenger_1_1RuntimeException.html +24 -20
- data/doc/cxxapi/classPassenger_1_1ScalarMessage-members.html +37 -0
- data/doc/cxxapi/classPassenger_1_1ScalarMessage.html +76 -0
- data/doc/cxxapi/classPassenger_1_1ScgiRequestParser-members.html +26 -23
- data/doc/cxxapi/classPassenger_1_1ScgiRequestParser.html +121 -138
- data/doc/cxxapi/classPassenger_1_1SecurityException-members.html +12 -9
- data/doc/cxxapi/classPassenger_1_1SecurityException.html +26 -22
- data/doc/cxxapi/classPassenger_1_1Session-members.html +29 -26
- data/doc/cxxapi/classPassenger_1_1Session.html +219 -240
- data/doc/cxxapi/classPassenger_1_1SpawnException-members.html +14 -11
- data/doc/cxxapi/classPassenger_1_1SpawnException.html +36 -37
- data/doc/cxxapi/classPassenger_1_1SpawnManager-members.html +18 -15
- data/doc/cxxapi/classPassenger_1_1SpawnManager.html +115 -110
- data/doc/cxxapi/classPassenger_1_1StandardSession-members.html +30 -27
- data/doc/cxxapi/classPassenger_1_1StandardSession.html +163 -184
- data/doc/cxxapi/classPassenger_1_1StaticString-members.html +12 -9
- data/doc/cxxapi/classPassenger_1_1StaticString.html +27 -25
- data/doc/cxxapi/classPassenger_1_1SystemException-members.html +16 -13
- data/doc/cxxapi/classPassenger_1_1SystemException.html +65 -67
- data/doc/cxxapi/classPassenger_1_1TimeRetrievalException-members.html +16 -13
- data/doc/cxxapi/classPassenger_1_1TimeRetrievalException.html +27 -23
- data/doc/cxxapi/classPassenger_1_1TimeoutException-members.html +12 -9
- data/doc/cxxapi/classPassenger_1_1TimeoutException.html +24 -20
- data/doc/cxxapi/classPassenger_1_1Uint16Message-members.html +36 -0
- data/doc/cxxapi/classPassenger_1_1Uint16Message.html +51 -0
- data/doc/cxxapi/classPassenger_1_1Uint32Message-members.html +36 -0
- data/doc/cxxapi/classPassenger_1_1Uint32Message.html +51 -0
- data/doc/cxxapi/classServer-members.html +12 -9
- data/doc/cxxapi/classServer.html +23 -20
- data/doc/cxxapi/classServerInstanceDirToucher-members.html +12 -9
- data/doc/cxxapi/classServerInstanceDirToucher.html +21 -17
- data/doc/cxxapi/classes.html +18 -4
- data/doc/cxxapi/definitions_8h_source.html +1 -0
- data/doc/cxxapi/files.html +36 -1
- data/doc/cxxapi/functions.html +53 -21
- data/doc/cxxapi/functions_0x62.html +82 -0
- data/doc/cxxapi/functions_0x63.html +99 -0
- data/doc/cxxapi/functions_0x64.html +95 -0
- data/doc/cxxapi/functions_0x65.html +88 -0
- data/doc/cxxapi/functions_0x66.html +100 -0
- data/doc/cxxapi/functions_0x67.html +170 -0
- data/doc/cxxapi/functions_0x68.html +88 -0
- data/doc/cxxapi/functions_0x69.html +93 -0
- data/doc/cxxapi/functions_0x6b.html +80 -0
- data/doc/cxxapi/functions_0x6c.html +88 -0
- data/doc/cxxapi/functions_0x6d.html +88 -0
- data/doc/cxxapi/functions_0x6e.html +86 -0
- data/doc/cxxapi/functions_0x6f.html +94 -0
- data/doc/cxxapi/functions_0x70.html +94 -0
- data/doc/cxxapi/functions_0x72.html +110 -0
- data/doc/cxxapi/functions_0x73.html +171 -0
- data/doc/cxxapi/functions_0x74.html +85 -0
- data/doc/cxxapi/functions_0x75.html +85 -0
- data/doc/cxxapi/functions_0x77.html +92 -0
- data/doc/cxxapi/functions_0x7e.html +79 -0
- data/doc/cxxapi/functions_enum.html +14 -12
- data/doc/cxxapi/functions_eval.html +22 -16
- data/doc/cxxapi/functions_func.html +460 -1
- data/doc/cxxapi/functions_vars.html +163 -63
- data/doc/cxxapi/graph_legend.html +1 -0
- data/doc/cxxapi/graph_legend.png +0 -0
- data/doc/cxxapi/group__Core.html +2 -2
- data/doc/cxxapi/group__Core.map +1 -2
- data/doc/cxxapi/group__Core.png +0 -0
- data/doc/cxxapi/group__Exceptions.html +32 -40
- data/doc/cxxapi/group__Hooks.html +2 -1
- data/doc/cxxapi/group__Hooks.map +1 -1
- data/doc/cxxapi/group__Hooks.png +0 -0
- data/doc/cxxapi/group__Support.html +509 -0
- data/doc/cxxapi/hierarchy.html +66 -62
- data/doc/cxxapi/inherit__graph__10.map +3 -1
- data/doc/cxxapi/inherit__graph__10.md5 +1 -1
- data/doc/cxxapi/inherit__graph__10.png +0 -0
- data/doc/cxxapi/inherit__graph__11.map +4 -1
- data/doc/cxxapi/inherit__graph__11.md5 +1 -1
- data/doc/cxxapi/inherit__graph__11.png +0 -0
- data/doc/cxxapi/inherit__graph__12.map +3 -1
- data/doc/cxxapi/inherit__graph__12.md5 +1 -1
- data/doc/cxxapi/inherit__graph__12.png +0 -0
- data/doc/cxxapi/inherit__graph__13.map +3 -1
- data/doc/cxxapi/inherit__graph__13.md5 +1 -1
- data/doc/cxxapi/inherit__graph__13.png +0 -0
- data/doc/cxxapi/inherit__graph__14.map +3 -1
- data/doc/cxxapi/inherit__graph__14.md5 +1 -1
- data/doc/cxxapi/inherit__graph__14.png +0 -0
- data/doc/cxxapi/inherit__graph__15.map +5 -1
- data/doc/cxxapi/inherit__graph__15.md5 +1 -1
- data/doc/cxxapi/inherit__graph__15.png +0 -0
- data/doc/cxxapi/inherit__graph__16.map +3 -3
- data/doc/cxxapi/inherit__graph__16.md5 +1 -1
- data/doc/cxxapi/inherit__graph__16.png +0 -0
- data/doc/cxxapi/inherit__graph__17.map +3 -1
- data/doc/cxxapi/inherit__graph__17.md5 +1 -1
- data/doc/cxxapi/inherit__graph__17.png +0 -0
- data/doc/cxxapi/inherit__graph__18.map +4 -1
- data/doc/cxxapi/inherit__graph__18.md5 +1 -1
- data/doc/cxxapi/inherit__graph__18.png +0 -0
- data/doc/cxxapi/inherit__graph__19.map +3 -1
- data/doc/cxxapi/inherit__graph__19.md5 +1 -1
- data/doc/cxxapi/inherit__graph__19.png +0 -0
- data/doc/cxxapi/inherit__graph__20.map +3 -2
- data/doc/cxxapi/inherit__graph__20.md5 +1 -1
- data/doc/cxxapi/inherit__graph__20.png +0 -0
- data/doc/cxxapi/inherit__graph__21.map +3 -1
- data/doc/cxxapi/inherit__graph__21.md5 +1 -1
- data/doc/cxxapi/inherit__graph__21.png +0 -0
- data/doc/cxxapi/inherit__graph__22.map +3 -1
- data/doc/cxxapi/inherit__graph__22.md5 +1 -1
- data/doc/cxxapi/inherit__graph__22.png +0 -0
- data/doc/cxxapi/inherit__graph__23.map +3 -1
- data/doc/cxxapi/inherit__graph__23.md5 +1 -1
- data/doc/cxxapi/inherit__graph__23.png +0 -0
- data/doc/cxxapi/inherit__graph__24.map +3 -1
- data/doc/cxxapi/inherit__graph__24.md5 +1 -1
- data/doc/cxxapi/inherit__graph__24.png +0 -0
- data/doc/cxxapi/inherit__graph__25.map +3 -1
- data/doc/cxxapi/inherit__graph__25.md5 +1 -1
- data/doc/cxxapi/inherit__graph__25.png +0 -0
- data/doc/cxxapi/inherit__graph__26.map +3 -1
- data/doc/cxxapi/inherit__graph__26.md5 +1 -1
- data/doc/cxxapi/inherit__graph__26.png +0 -0
- data/doc/cxxapi/inherit__graph__27.map +3 -1
- data/doc/cxxapi/inherit__graph__27.md5 +1 -1
- data/doc/cxxapi/inherit__graph__27.png +0 -0
- data/doc/cxxapi/inherit__graph__28.map +4 -1
- data/doc/cxxapi/inherit__graph__28.md5 +1 -1
- data/doc/cxxapi/inherit__graph__28.png +0 -0
- data/doc/cxxapi/inherit__graph__29.map +3 -1
- data/doc/cxxapi/inherit__graph__29.md5 +1 -1
- data/doc/cxxapi/inherit__graph__29.png +0 -0
- data/doc/cxxapi/inherit__graph__30.map +3 -2
- data/doc/cxxapi/inherit__graph__30.md5 +1 -1
- data/doc/cxxapi/inherit__graph__30.png +0 -0
- data/doc/cxxapi/inherit__graph__31.map +3 -1
- data/doc/cxxapi/inherit__graph__31.md5 +1 -1
- data/doc/cxxapi/inherit__graph__31.png +0 -0
- data/doc/cxxapi/inherit__graph__32.map +5 -1
- data/doc/cxxapi/inherit__graph__32.md5 +1 -1
- data/doc/cxxapi/inherit__graph__32.png +0 -0
- data/doc/cxxapi/inherit__graph__33.map +3 -1
- data/doc/cxxapi/inherit__graph__33.md5 +1 -1
- data/doc/cxxapi/inherit__graph__33.png +0 -0
- data/doc/cxxapi/inherit__graph__34.map +3 -3
- data/doc/cxxapi/inherit__graph__34.md5 +1 -1
- data/doc/cxxapi/inherit__graph__34.png +0 -0
- data/doc/cxxapi/inherit__graph__35.map +3 -1
- data/doc/cxxapi/inherit__graph__35.md5 +1 -1
- data/doc/cxxapi/inherit__graph__35.png +0 -0
- data/doc/cxxapi/inherit__graph__36.map +3 -1
- data/doc/cxxapi/inherit__graph__36.md5 +1 -1
- data/doc/cxxapi/inherit__graph__36.png +0 -0
- data/doc/cxxapi/inherit__graph__37.map +3 -1
- data/doc/cxxapi/inherit__graph__37.md5 +1 -1
- data/doc/cxxapi/inherit__graph__37.png +0 -0
- data/doc/cxxapi/inherit__graph__4.map +3 -1
- data/doc/cxxapi/inherit__graph__4.md5 +1 -1
- data/doc/cxxapi/inherit__graph__4.png +0 -0
- data/doc/cxxapi/inherit__graph__5.map +3 -1
- data/doc/cxxapi/inherit__graph__5.md5 +1 -1
- data/doc/cxxapi/inherit__graph__5.png +0 -0
- data/doc/cxxapi/inherit__graph__6.map +3 -1
- data/doc/cxxapi/inherit__graph__6.md5 +1 -1
- data/doc/cxxapi/inherit__graph__6.png +0 -0
- data/doc/cxxapi/inherit__graph__7.map +3 -1
- data/doc/cxxapi/inherit__graph__7.md5 +1 -1
- data/doc/cxxapi/inherit__graph__7.png +0 -0
- data/doc/cxxapi/inherit__graph__8.map +3 -1
- data/doc/cxxapi/inherit__graph__8.md5 +1 -1
- data/doc/cxxapi/inherit__graph__8.png +0 -0
- data/doc/cxxapi/inherit__graph__9.map +3 -1
- data/doc/cxxapi/inherit__graph__9.md5 +1 -1
- data/doc/cxxapi/inherit__graph__9.png +0 -0
- data/doc/cxxapi/inherits.html +123 -126
- data/doc/cxxapi/main.html +1 -0
- data/doc/cxxapi/modules.html +2 -1
- data/doc/cxxapi/namespacePassenger.html +263 -492
- data/doc/cxxapi/namespacemembers.html +68 -96
- data/doc/cxxapi/namespacemembers_enum.html +14 -12
- data/doc/cxxapi/namespacemembers_eval.html +20 -15
- data/doc/cxxapi/namespacemembers_func.html +52 -88
- data/doc/cxxapi/namespacemembers_type.html +18 -14
- data/doc/cxxapi/namespaces.html +12 -9
- data/doc/cxxapi/nginx_2Configuration_8h_source.html +125 -0
- data/doc/cxxapi/ngx__http__passenger__module_8h_source.html +94 -0
- data/doc/cxxapi/structPassenger_1_1MessageServer_1_1DisconnectEventBroadcastGuard-members.html +12 -9
- data/doc/cxxapi/structPassenger_1_1MessageServer_1_1DisconnectEventBroadcastGuard.html +24 -22
- data/doc/cxxapi/structPassenger_1_1PoolOptions-members.html +43 -38
- data/doc/cxxapi/structPassenger_1_1PoolOptions.html +275 -325
- data/doc/cxxapi/structPassenger_1_1StaticString_1_1Hash-members.html +12 -9
- data/doc/cxxapi/structPassenger_1_1StaticString_1_1Hash.html +24 -22
- data/doc/cxxapi/tree.html +152 -7
- data/doc/users_guide_snippets/{analysis_and_system_maintenance_tools.txt → analysis_and_system_maintenance.txt} +58 -1
- data/doc/users_guide_snippets/appendix_c_spawning_methods.txt +1 -2
- data/doc/users_guide_snippets/global_queueing_explained.txt +1 -5
- data/doc/users_guide_snippets/{rails_spawn_method.txt → passenger_spawn_method.txt} +9 -8
- data/doc/users_guide_snippets/tips.txt +12 -6
- data/doc/users_guide_snippets/under_the_hood/page_caching_support.txt +22 -0
- data/ext/apache2/Bucket.cpp +4 -4
- data/ext/apache2/Bucket.h +3 -3
- data/ext/apache2/Configuration.cpp +278 -381
- data/ext/apache2/Configuration.h +3 -357
- data/ext/apache2/Configuration.hpp +461 -0
- data/ext/apache2/DirectoryMapper.h +3 -3
- data/ext/apache2/HelperAgent.cpp +359 -0
- data/ext/apache2/Hooks.cpp +339 -226
- data/ext/apache2/Hooks.h +1 -1
- data/ext/apache2/mod_passenger.c +10 -4
- data/ext/boost/algorithm/string/case_conv.hpp +4 -4
- data/ext/boost/algorithm/string/concept.hpp +2 -2
- data/ext/boost/algorithm/string/detail/case_conv.hpp +18 -9
- data/ext/boost/algorithm/string/detail/find_format.hpp +44 -43
- data/ext/boost/algorithm/string/detail/find_format_all.hpp +56 -56
- data/ext/boost/algorithm/string/detail/find_format_store.hpp +7 -0
- data/ext/boost/algorithm/string/detail/finder.hpp +14 -14
- data/ext/boost/algorithm/string/detail/formatter.hpp +2 -2
- data/ext/boost/algorithm/string/detail/replace_storage.hpp +3 -3
- data/ext/boost/algorithm/string/detail/sequence.hpp +3 -3
- data/ext/boost/algorithm/string/erase.hpp +98 -98
- data/ext/boost/algorithm/string/find_format.hpp +56 -38
- data/ext/boost/algorithm/string/finder.hpp +6 -6
- data/ext/boost/algorithm/string/formatter.hpp +1 -1
- data/ext/boost/algorithm/string/replace.hpp +99 -99
- data/ext/boost/bind.hpp +5 -1670
- data/ext/boost/bind/bind.hpp +1751 -0
- data/ext/boost/bind/bind_mf2_cc.hpp +228 -0
- data/ext/boost/bind/mem_fn.hpp +389 -0
- data/ext/boost/bind/mem_fn_template.hpp +54 -27
- data/ext/boost/bind/placeholders.hpp +3 -2
- data/ext/boost/concept_check.hpp +10 -0
- data/ext/boost/config/abi/msvc_prefix.hpp +15 -1
- data/ext/boost/config/abi_prefix.hpp +1 -1
- data/ext/boost/config/abi_suffix.hpp +3 -2
- data/ext/boost/config/auto_link.hpp +6 -1
- data/ext/boost/config/compiler/borland.hpp +75 -17
- data/ext/boost/config/compiler/codegear.hpp +163 -0
- data/ext/boost/config/compiler/common_edg.hpp +35 -0
- data/ext/boost/config/compiler/digitalmars.hpp +26 -0
- data/ext/boost/config/compiler/gcc.hpp +69 -14
- data/ext/boost/config/compiler/hp_acc.hpp +32 -0
- data/ext/boost/config/compiler/intel.hpp +13 -2
- data/ext/boost/config/compiler/kai.hpp +0 -2
- data/ext/boost/config/compiler/metrowerks.hpp +29 -1
- data/ext/boost/config/compiler/mpw.hpp +30 -0
- data/ext/boost/config/compiler/pgi.hpp +37 -0
- data/ext/boost/config/compiler/sgi_mipspro.hpp +1 -0
- data/ext/boost/config/compiler/sunpro_cc.hpp +39 -7
- data/ext/boost/config/compiler/vacpp.hpp +31 -3
- data/ext/boost/config/compiler/visualc.hpp +72 -5
- data/ext/boost/config/no_tr1/cmath.hpp +28 -0
- data/ext/boost/config/platform/bsd.hpp +16 -3
- data/ext/boost/config/platform/hpux.hpp +3 -0
- data/ext/boost/config/platform/macos.hpp +8 -0
- data/ext/boost/config/platform/solaris.hpp +7 -0
- data/ext/boost/config/platform/vxworks.hpp +31 -0
- data/ext/boost/config/select_compiler_config.hpp +4 -0
- data/ext/boost/config/select_platform_config.hpp +6 -2
- data/ext/boost/config/select_stdlib_config.hpp +17 -8
- data/ext/boost/config/stdlib/dinkumware.hpp +34 -2
- data/ext/boost/config/stdlib/libcomo.hpp +25 -0
- data/ext/boost/config/stdlib/libstdcpp3.hpp +56 -2
- data/ext/boost/config/stdlib/modena.hpp +25 -0
- data/ext/boost/config/stdlib/msl.hpp +24 -0
- data/ext/boost/config/stdlib/roguewave.hpp +26 -0
- data/ext/boost/config/stdlib/sgi.hpp +25 -0
- data/ext/boost/config/stdlib/stlport.hpp +36 -1
- data/ext/boost/config/stdlib/vacpp.hpp +25 -0
- data/ext/boost/config/suffix.hpp +67 -32
- data/ext/boost/config/warning_disable.hpp +47 -0
- data/ext/boost/cstdint.hpp +62 -36
- data/ext/boost/date_time/c_time.hpp +28 -12
- data/ext/boost/date_time/compiler_config.hpp +27 -5
- data/ext/boost/date_time/constrained_value.hpp +36 -13
- data/ext/boost/date_time/date.hpp +44 -33
- data/ext/boost/date_time/date_duration.hpp +13 -14
- data/ext/boost/date_time/date_facet.hpp +215 -226
- data/ext/boost/date_time/date_generator_formatter.hpp +22 -20
- data/ext/boost/date_time/date_generator_parser.hpp +52 -51
- data/ext/boost/date_time/date_generators.hpp +16 -16
- data/ext/boost/date_time/date_parsing.hpp +115 -98
- data/ext/boost/date_time/filetime_functions.hpp +133 -41
- data/ext/boost/date_time/format_date_parser.hpp +22 -10
- data/ext/boost/date_time/gregorian/conversion.hpp +32 -39
- data/ext/boost/date_time/gregorian/greg_calendar.hpp +15 -14
- data/ext/boost/date_time/gregorian/greg_date.hpp +19 -18
- data/ext/boost/date_time/gregorian/greg_duration.hpp +106 -10
- data/ext/boost/date_time/gregorian/greg_duration_types.hpp +16 -7
- data/ext/boost/date_time/gregorian/greg_weekday.hpp +2 -2
- data/ext/boost/date_time/gregorian/gregorian_io.hpp +11 -4
- data/ext/boost/date_time/gregorian_calendar.hpp +8 -8
- data/ext/boost/date_time/gregorian_calendar.ipp +30 -30
- data/ext/boost/date_time/int_adapter.hpp +4 -2
- data/ext/boost/date_time/microsec_time_clock.hpp +39 -117
- data/ext/boost/date_time/period_parser.hpp +17 -15
- data/ext/boost/date_time/posix_time/conversion.hpp +28 -29
- data/ext/boost/date_time/posix_time/posix_time_config.hpp +19 -19
- data/ext/boost/date_time/posix_time/posix_time_io.hpp +31 -38
- data/ext/boost/date_time/posix_time/time_formatters.hpp +32 -32
- data/ext/boost/date_time/string_parse_tree.hpp +46 -46
- data/ext/boost/date_time/strings_from_facet.hpp +7 -5
- data/ext/boost/date_time/time.hpp +7 -6
- data/ext/boost/date_time/time_defs.hpp +12 -2
- data/ext/boost/date_time/time_duration.hpp +27 -26
- data/ext/boost/date_time/time_facet.hpp +386 -321
- data/ext/boost/date_time/time_formatting_streams.hpp +8 -5
- data/ext/boost/date_time/time_resolution_traits.hpp +29 -25
- data/ext/boost/date_time/time_system_split.hpp +7 -13
- data/ext/boost/date_time/wrapping_int.hpp +21 -15
- data/ext/boost/detail/call_traits.hpp +1 -1
- data/ext/boost/detail/endian.hpp +4 -4
- data/ext/boost/detail/no_exceptions_support.hpp +87 -0
- data/ext/boost/detail/sp_typeinfo.hpp +50 -4
- data/ext/boost/detail/workaround.hpp +63 -3
- data/ext/boost/enable_shared_from_this.hpp +4 -59
- data/ext/boost/exception/current_exception_cast.hpp +43 -0
- data/ext/boost/exception/detail/attribute_noreturn.hpp +17 -0
- data/ext/boost/exception/detail/error_info_impl.hpp +75 -0
- data/ext/boost/exception/detail/exception_ptr.hpp +490 -0
- data/ext/boost/exception/detail/is_output_streamable.hpp +47 -0
- data/ext/boost/exception/detail/object_hex_dump.hpp +50 -0
- data/ext/boost/exception/detail/type_info.hpp +79 -0
- data/ext/boost/exception/diagnostic_information.hpp +182 -0
- data/ext/boost/exception/exception.hpp +422 -0
- data/ext/boost/exception/get_error_info.hpp +130 -0
- data/ext/boost/exception/info.hpp +167 -0
- data/ext/boost/exception/to_string.hpp +83 -0
- data/ext/boost/exception/to_string_stub.hpp +109 -0
- data/ext/boost/exception_ptr.hpp +11 -0
- data/ext/boost/function/detail/prologue.hpp +2 -1
- data/ext/boost/function/function_base.hpp +270 -128
- data/ext/boost/function/function_fwd.hpp +70 -0
- data/ext/boost/function/function_template.hpp +319 -130
- data/ext/boost/get_pointer.hpp +5 -1
- data/ext/boost/integer.hpp +253 -0
- data/ext/boost/integer_fwd.hpp +174 -0
- data/ext/boost/integer_traits.hpp +26 -1
- data/ext/boost/io/ios_state.hpp +8 -0
- data/ext/boost/iterator/detail/config_def.hpp +4 -2
- data/ext/boost/iterator/iterator_adaptor.hpp +7 -2
- data/ext/boost/iterator/iterator_facade.hpp +1 -2
- data/ext/boost/lexical_cast.hpp +113 -105
- data/ext/boost/limits.hpp +1 -1
- data/ext/boost/mem_fn.hpp +5 -370
- data/ext/boost/memory_order.hpp +53 -0
- data/ext/boost/mpl/always.hpp +3 -3
- data/ext/boost/mpl/and.hpp +3 -3
- data/ext/boost/mpl/apply.hpp +3 -3
- data/ext/boost/mpl/apply_fwd.hpp +3 -3
- data/ext/boost/mpl/apply_wrap.hpp +37 -6
- data/ext/boost/mpl/arg.hpp +3 -3
- data/ext/boost/mpl/arg_fwd.hpp +3 -3
- data/ext/boost/mpl/assert.hpp +6 -6
- data/ext/boost/mpl/aux_/adl_barrier.hpp +3 -3
- data/ext/boost/mpl/aux_/arg_typedef.hpp +3 -3
- data/ext/boost/mpl/aux_/arity.hpp +3 -3
- data/ext/boost/mpl/aux_/arity_spec.hpp +3 -3
- data/ext/boost/mpl/aux_/common_name_wknd.hpp +3 -3
- data/ext/boost/mpl/aux_/config/adl.hpp +4 -4
- data/ext/boost/mpl/aux_/config/arrays.hpp +4 -4
- data/ext/boost/mpl/aux_/config/bcc.hpp +28 -0
- data/ext/boost/mpl/aux_/config/bind.hpp +4 -4
- data/ext/boost/mpl/aux_/config/compiler.hpp +8 -6
- data/ext/boost/mpl/aux_/config/ctps.hpp +3 -3
- data/ext/boost/mpl/aux_/config/dtp.hpp +5 -5
- data/ext/boost/mpl/aux_/config/eti.hpp +3 -3
- data/ext/boost/mpl/aux_/config/gcc.hpp +3 -3
- data/ext/boost/mpl/aux_/config/has_apply.hpp +3 -3
- data/ext/boost/mpl/aux_/config/has_xxx.hpp +3 -3
- data/ext/boost/mpl/aux_/config/integral.hpp +4 -4
- data/ext/boost/mpl/aux_/config/intel.hpp +3 -3
- data/ext/boost/mpl/aux_/config/lambda.hpp +3 -3
- data/ext/boost/mpl/aux_/config/msvc.hpp +3 -3
- data/ext/boost/mpl/aux_/config/msvc_typename.hpp +3 -3
- data/ext/boost/mpl/aux_/config/nttp.hpp +3 -3
- data/ext/boost/mpl/aux_/config/overload_resolution.hpp +3 -3
- data/ext/boost/mpl/aux_/config/pp_counter.hpp +3 -3
- data/ext/boost/mpl/aux_/config/preprocessor.hpp +4 -4
- data/ext/boost/mpl/aux_/config/static_constant.hpp +3 -3
- data/ext/boost/mpl/aux_/config/ttp.hpp +4 -4
- data/ext/boost/mpl/aux_/config/use_preprocessed.hpp +3 -3
- data/ext/boost/mpl/aux_/config/workaround.hpp +3 -3
- data/ext/boost/mpl/aux_/full_lambda.hpp +3 -3
- data/ext/boost/mpl/aux_/has_apply.hpp +3 -3
- data/ext/boost/mpl/aux_/has_type.hpp +3 -3
- data/ext/boost/mpl/aux_/include_preprocessed.hpp +3 -3
- data/ext/boost/mpl/aux_/integral_wrapper.hpp +3 -3
- data/ext/boost/mpl/aux_/lambda_arity_param.hpp +3 -3
- data/ext/boost/mpl/aux_/lambda_support.hpp +4 -4
- data/ext/boost/mpl/aux_/msvc_never_true.hpp +3 -3
- data/ext/boost/mpl/aux_/na.hpp +3 -3
- data/ext/boost/mpl/aux_/na_assert.hpp +3 -3
- data/ext/boost/mpl/aux_/na_fwd.hpp +3 -3
- data/ext/boost/mpl/aux_/na_spec.hpp +3 -3
- data/ext/boost/mpl/aux_/nested_type_wknd.hpp +3 -3
- data/ext/boost/mpl/aux_/nttp_decl.hpp +3 -3
- data/ext/boost/mpl/aux_/preprocessor/def_params_tail.hpp +3 -3
- data/ext/boost/mpl/aux_/preprocessor/enum.hpp +3 -3
- data/ext/boost/mpl/aux_/preprocessor/filter_params.hpp +3 -3
- data/ext/boost/mpl/aux_/preprocessor/params.hpp +3 -3
- data/ext/boost/mpl/aux_/preprocessor/sub.hpp +3 -3
- data/ext/boost/mpl/aux_/static_cast.hpp +3 -3
- data/ext/boost/mpl/aux_/template_arity.hpp +3 -3
- data/ext/boost/mpl/aux_/template_arity_fwd.hpp +3 -3
- data/ext/boost/mpl/aux_/type_wrapper.hpp +3 -3
- data/ext/boost/mpl/aux_/value_wknd.hpp +3 -3
- data/ext/boost/mpl/aux_/yes_no.hpp +3 -3
- data/ext/boost/mpl/bind.hpp +3 -3
- data/ext/boost/mpl/bind_fwd.hpp +3 -3
- data/ext/boost/mpl/bool.hpp +3 -3
- data/ext/boost/mpl/bool_fwd.hpp +3 -3
- data/ext/boost/mpl/eval_if.hpp +3 -3
- data/ext/boost/mpl/has_xxx.hpp +10 -8
- data/ext/boost/mpl/identity.hpp +3 -3
- data/ext/boost/mpl/if.hpp +3 -3
- data/ext/boost/mpl/int.hpp +3 -3
- data/ext/boost/mpl/int_fwd.hpp +3 -3
- data/ext/boost/mpl/integral_c.hpp +3 -3
- data/ext/boost/mpl/integral_c_fwd.hpp +3 -3
- data/ext/boost/mpl/integral_c_tag.hpp +3 -3
- data/ext/boost/mpl/lambda.hpp +3 -3
- data/ext/boost/mpl/lambda_fwd.hpp +3 -3
- data/ext/boost/mpl/limits/arity.hpp +3 -3
- data/ext/boost/mpl/logical.hpp +3 -3
- data/ext/boost/mpl/next.hpp +3 -3
- data/ext/boost/mpl/next_prior.hpp +3 -3
- data/ext/boost/mpl/not.hpp +3 -3
- data/ext/boost/mpl/or.hpp +3 -3
- data/ext/boost/mpl/placeholders.hpp +3 -3
- data/ext/boost/mpl/protect.hpp +3 -3
- data/ext/boost/mpl/quote.hpp +18 -7
- data/ext/boost/mpl/size_t.hpp +3 -3
- data/ext/boost/mpl/size_t_fwd.hpp +3 -3
- data/ext/boost/mpl/void.hpp +3 -3
- data/ext/boost/mpl/void_fwd.hpp +3 -3
- data/ext/boost/non_type.hpp +27 -27
- data/ext/boost/operators.hpp +51 -18
- data/ext/boost/preprocessor/arithmetic/detail/div_base.hpp +61 -0
- data/ext/boost/preprocessor/arithmetic/mod.hpp +39 -0
- data/ext/boost/preprocessor/comparison/less_equal.hpp +39 -0
- data/ext/boost/preprocessor/control/deduce_d.hpp +22 -0
- data/ext/boost/preprocessor/logical/not.hpp +30 -0
- data/ext/boost/preprocessor/seq/cat.hpp +48 -0
- data/ext/boost/preprocessor/seq/fold_left.hpp +1070 -0
- data/ext/boost/preprocessor/seq/transform.hpp +48 -0
- data/ext/boost/range/as_literal.hpp +10 -14
- data/ext/boost/range/begin.hpp +4 -4
- data/ext/boost/range/detail/implementation_help.hpp +4 -0
- data/ext/boost/range/end.hpp +4 -4
- data/ext/boost/range/iterator_range.hpp +31 -15
- data/ext/boost/ref.hpp +12 -1
- data/ext/boost/scoped_array.hpp +16 -0
- data/ext/boost/scoped_ptr.hpp +16 -0
- data/ext/boost/shared_ptr.hpp +2 -602
- data/ext/boost/{detail → smart_ptr}/bad_weak_ptr.hpp +4 -4
- data/ext/boost/{detail → smart_ptr/detail}/atomic_count.hpp +14 -19
- data/ext/boost/{detail → smart_ptr/detail}/atomic_count_gcc.hpp +13 -9
- data/ext/boost/{detail → smart_ptr/detail}/atomic_count_gcc_x86.hpp +5 -12
- data/ext/boost/{detail → smart_ptr/detail}/atomic_count_pthreads.hpp +5 -5
- data/ext/boost/{detail → smart_ptr/detail}/atomic_count_solaris.hpp +3 -3
- data/ext/boost/{detail → smart_ptr/detail}/atomic_count_sync.hpp +9 -5
- data/ext/boost/{detail → smart_ptr/detail}/atomic_count_win32.hpp +3 -3
- data/ext/boost/smart_ptr/detail/operator_bool.hpp +56 -0
- data/ext/boost/{detail → smart_ptr/detail}/shared_count.hpp +86 -17
- data/ext/boost/smart_ptr/detail/sp_convertible.hpp +76 -0
- data/ext/boost/smart_ptr/detail/sp_counted_base.hpp +70 -0
- data/ext/boost/{detail → smart_ptr/detail}/sp_counted_base_acc_ia64.hpp +4 -4
- data/ext/boost/{detail → smart_ptr/detail}/sp_counted_base_cw_ppc.hpp +4 -4
- data/ext/boost/{detail → smart_ptr/detail}/sp_counted_base_cw_x86.hpp +4 -4
- data/ext/boost/{detail → smart_ptr/detail}/sp_counted_base_gcc_ia64.hpp +4 -4
- data/ext/boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp +172 -0
- data/ext/boost/{detail → smart_ptr/detail}/sp_counted_base_gcc_ppc.hpp +4 -4
- data/ext/boost/{detail → smart_ptr/detail}/sp_counted_base_gcc_sparc.hpp +7 -7
- data/ext/boost/{detail → smart_ptr/detail}/sp_counted_base_gcc_x86.hpp +4 -4
- data/ext/boost/{detail → smart_ptr/detail}/sp_counted_base_nt.hpp +4 -4
- data/ext/boost/{detail → smart_ptr/detail}/sp_counted_base_pt.hpp +4 -4
- data/ext/boost/{detail → smart_ptr/detail}/sp_counted_base_solaris.hpp +4 -4
- data/ext/boost/smart_ptr/detail/sp_counted_base_spin.hpp +131 -0
- data/ext/boost/{detail → smart_ptr/detail}/sp_counted_base_sync.hpp +8 -4
- data/ext/boost/{detail → smart_ptr/detail}/sp_counted_base_w32.hpp +4 -4
- data/ext/boost/{detail → smart_ptr/detail}/sp_counted_impl.hpp +5 -5
- data/ext/boost/smart_ptr/detail/sp_has_sync.hpp +49 -0
- data/ext/boost/smart_ptr/detail/spinlock.hpp +53 -0
- data/ext/boost/smart_ptr/detail/spinlock_gcc_arm.hpp +85 -0
- data/ext/boost/smart_ptr/detail/spinlock_nt.hpp +89 -0
- data/ext/boost/smart_ptr/detail/spinlock_pool.hpp +87 -0
- data/ext/boost/smart_ptr/detail/spinlock_pt.hpp +79 -0
- data/ext/boost/smart_ptr/detail/spinlock_sync.hpp +87 -0
- data/ext/boost/smart_ptr/detail/yield_k.hpp +149 -0
- data/ext/boost/smart_ptr/enable_shared_from_this.hpp +79 -0
- data/ext/boost/smart_ptr/scoped_array.hpp +107 -0
- data/ext/boost/smart_ptr/scoped_ptr.hpp +131 -0
- data/ext/boost/smart_ptr/shared_ptr.hpp +701 -0
- data/ext/boost/smart_ptr/weak_ptr.hpp +230 -0
- data/ext/boost/src/pthread/thread.cpp +115 -203
- data/ext/boost/src/tss_null.cpp +1 -1
- data/ext/boost/static_assert.hpp +14 -4
- data/ext/boost/thread.hpp +7 -2
- data/ext/boost/thread/barrier.hpp +63 -0
- data/ext/boost/thread/detail/force_cast.hpp +39 -0
- data/ext/boost/thread/detail/move.hpp +29 -2
- data/ext/boost/thread/detail/platform.hpp +3 -3
- data/ext/boost/thread/detail/singleton.hpp +59 -0
- data/ext/boost/thread/detail/thread.hpp +496 -0
- data/ext/boost/thread/detail/thread_group.hpp +105 -0
- data/ext/boost/thread/detail/thread_heap_alloc.hpp +23 -0
- data/ext/boost/thread/detail/thread_interruption.hpp +35 -0
- data/ext/boost/thread/detail/tss_hooks.hpp +82 -0
- data/ext/boost/thread/exceptions.hpp +174 -60
- data/ext/boost/thread/future.hpp +1364 -0
- data/ext/boost/thread/locks.hpp +899 -32
- data/ext/boost/thread/once.hpp +4 -0
- data/ext/boost/thread/pthread/condition_variable.hpp +16 -21
- data/ext/boost/thread/pthread/condition_variable_fwd.hpp +37 -3
- data/ext/boost/thread/pthread/mutex.hpp +20 -7
- data/ext/boost/thread/pthread/once.hpp +7 -2
- data/ext/boost/thread/pthread/pthread_mutex_scoped_lock.hpp +5 -1
- data/ext/boost/thread/pthread/recursive_mutex.hpp +22 -5
- data/ext/boost/thread/pthread/shared_mutex.hpp +303 -0
- data/ext/boost/thread/pthread/thread_data.hpp +37 -10
- data/ext/boost/thread/pthread/thread_heap_alloc.hpp +242 -0
- data/ext/boost/thread/pthread/timespec.hpp +11 -3
- data/ext/boost/thread/shared_mutex.hpp +21 -0
- data/ext/boost/thread/thread.hpp +8 -3
- data/ext/boost/thread/thread_time.hpp +4 -0
- data/ext/boost/thread/tss.hpp +106 -13
- data/ext/boost/thread/xtime.hpp +6 -2
- data/ext/boost/throw_exception.hpp +36 -7
- data/ext/boost/token_functions.hpp +1 -1
- data/ext/boost/tokenizer.hpp +1 -1
- data/ext/boost/type_traits/add_pointer.hpp +1 -1
- data/ext/boost/type_traits/add_volatile.hpp +47 -0
- data/ext/boost/type_traits/alignment_of.hpp +29 -1
- data/ext/boost/type_traits/config.hpp +1 -1
- data/ext/boost/type_traits/conversion_traits.hpp +1 -1
- data/ext/boost/type_traits/has_trivial_destructor.hpp +42 -0
- data/ext/boost/type_traits/intrinsics.hpp +88 -1
- data/ext/boost/type_traits/is_abstract.hpp +14 -5
- data/ext/boost/type_traits/is_arithmetic.hpp +8 -0
- data/ext/boost/type_traits/is_array.hpp +3 -2
- data/ext/boost/type_traits/is_base_and_derived.hpp +254 -0
- data/ext/boost/type_traits/is_base_of.hpp +51 -0
- data/ext/boost/type_traits/is_class.hpp +12 -0
- data/ext/boost/type_traits/is_const.hpp +6 -2
- data/ext/boost/type_traits/is_convertible.hpp +14 -2
- data/ext/boost/type_traits/is_enum.hpp +10 -1
- data/ext/boost/type_traits/is_function.hpp +11 -3
- data/ext/boost/type_traits/is_fundamental.hpp +45 -0
- data/ext/boost/type_traits/is_integral.hpp +5 -0
- data/ext/boost/type_traits/is_member_function_pointer.hpp +5 -3
- data/ext/boost/type_traits/is_member_pointer.hpp +4 -2
- data/ext/boost/type_traits/is_pointer.hpp +3 -1
- data/ext/boost/type_traits/is_reference.hpp +4 -2
- data/ext/boost/type_traits/is_signed.hpp +135 -0
- data/ext/boost/type_traits/is_unsigned.hpp +130 -0
- data/ext/boost/type_traits/is_void.hpp +5 -0
- data/ext/boost/type_traits/is_volatile.hpp +4 -2
- data/ext/boost/type_traits/make_unsigned.hpp +137 -0
- data/ext/boost/type_traits/remove_reference.hpp +1 -1
- data/ext/boost/type_traits/type_with_alignment.hpp +106 -1
- data/ext/boost/utility.hpp +2 -1
- data/ext/boost/utility/addressof.hpp +61 -17
- data/ext/boost/utility/binary.hpp +708 -0
- data/ext/boost/utility/enable_if.hpp +2 -2
- data/ext/boost/weak_ptr.hpp +4 -174
- data/ext/common/AbstractSpawnManager.h +110 -0
- data/ext/common/Account.h +175 -0
- data/ext/common/AccountsDatabase.cpp +81 -0
- data/ext/common/AccountsDatabase.h +130 -0
- data/ext/common/AgentBase.cpp +323 -0
- data/ext/common/{Version.h → AgentBase.h} +14 -6
- data/ext/common/AgentsStarter.cpp +154 -0
- data/ext/common/AgentsStarter.h +81 -0
- data/ext/common/AgentsStarter.hpp +619 -0
- data/ext/common/ApplicationPool/Client.h +796 -0
- data/ext/common/{ApplicationPool.h → ApplicationPool/Interface.h} +108 -18
- data/ext/common/ApplicationPool/Pool.h +1315 -0
- data/ext/common/ApplicationPool/Server.h +475 -0
- data/ext/common/BCrypt.cpp +343 -0
- data/ext/common/BCrypt.h +73 -0
- data/ext/common/Blowfish.c +685 -0
- data/ext/common/Blowfish.h +103 -0
- data/ext/common/Constants.h +48 -0
- data/ext/common/EventedClient.h +598 -0
- data/ext/common/EventedMessageServer.h +327 -0
- data/ext/common/EventedServer.h +295 -0
- data/ext/common/Exceptions.h +78 -1
- data/ext/common/FileDescriptor.h +229 -0
- data/ext/common/HelperAgent/BacktracesServer.h +59 -0
- data/ext/common/Logging.cpp +8 -9
- data/ext/common/Logging.h +593 -21
- data/ext/common/LoggingAgent/ChangeNotifier.h +63 -0
- data/ext/common/LoggingAgent/DataStoreId.h +177 -0
- data/ext/common/LoggingAgent/LoggingServer.h +1343 -0
- data/ext/common/LoggingAgent/Main.cpp +278 -0
- data/ext/common/LoggingAgent/RemoteSender.h +457 -0
- data/ext/common/MessageChannel.h +196 -34
- data/ext/common/MessageClient.h +297 -0
- data/ext/common/MessageReadersWriters.h +508 -0
- data/ext/common/MessageServer.h +575 -0
- data/ext/common/PoolOptions.h +279 -117
- data/ext/common/Process.h +255 -0
- data/ext/common/RandomGenerator.h +160 -0
- data/ext/common/ResourceLocator.h +84 -0
- data/ext/common/ServerInstanceDir.h +343 -0
- data/ext/common/Session.h +470 -0
- data/ext/common/SpawnManager.h +256 -201
- data/ext/common/StaticString.h +79 -4
- data/ext/common/StringListCreator.h +2 -2
- data/ext/common/Utils.cpp +385 -397
- data/ext/common/Utils.h +79 -165
- data/ext/common/{Base64.cpp → Utils/Base64.cpp} +0 -0
- data/ext/common/{Base64.h → Utils/Base64.h} +27 -1
- data/ext/common/Utils/BlockingQueue.h +136 -0
- data/ext/common/Utils/BlockingScalar.h +50 -0
- data/ext/common/{CachedFileStat.cpp → Utils/CachedFileStat.cpp} +1 -1
- data/ext/common/{CachedFileStat.h → Utils/CachedFileStat.h} +1 -1
- data/ext/common/{CachedFileStat.hpp → Utils/CachedFileStat.hpp} +1 -1
- data/ext/common/{FileChangeChecker.h → Utils/FileChangeChecker.h} +1 -1
- data/ext/common/Utils/FileHandleGuard.h +81 -0
- data/ext/common/Utils/IOUtils.cpp +754 -0
- data/ext/common/Utils/IOUtils.h +253 -0
- data/ext/common/Utils/MD5.cpp +406 -0
- data/ext/common/Utils/MD5.h +98 -0
- data/ext/common/Utils/MemZeroGuard.h +103 -0
- data/ext/common/Utils/ProcessMetricsCollector.h +462 -0
- data/ext/common/Utils/ScopeGuard.h +72 -0
- data/ext/common/Utils/StrIntUtils.cpp +329 -0
- data/ext/common/Utils/StrIntUtils.h +228 -0
- data/ext/common/{SystemTime.cpp → Utils/SystemTime.cpp} +5 -1
- data/ext/common/Utils/SystemTime.h +201 -0
- data/ext/common/{Timer.h → Utils/Timer.h} +58 -18
- data/ext/common/Utils/VariantMap.h +363 -0
- data/ext/common/Utils/foo.cpp +10 -0
- data/ext/common/Watchdog.cpp +1034 -0
- data/ext/google/COPYING +28 -0
- data/ext/google/ChangeLog +167 -0
- data/ext/google/dense_hash_map +310 -0
- data/ext/google/dense_hash_set +287 -0
- data/ext/google/sparse_hash_map +294 -0
- data/ext/google/sparse_hash_set +275 -0
- data/ext/google/sparsehash/densehashtable.h +1062 -0
- data/ext/google/sparsehash/sparseconfig.h +55 -0
- data/ext/google/sparsehash/sparsehashtable.h +1015 -0
- data/ext/google/sparsetable +1468 -0
- data/ext/google/type_traits.h +250 -0
- data/ext/libev/Changes +302 -0
- data/ext/libev/LICENSE +36 -0
- data/ext/libev/Makefile.am +18 -0
- data/ext/libev/Makefile.in +685 -0
- data/ext/libev/README +58 -0
- data/ext/libev/aclocal.m4 +7549 -0
- data/ext/libev/autogen.sh +6 -0
- data/ext/libev/config.guess +1526 -0
- data/ext/libev/config.h +122 -0
- data/ext/libev/config.h.in +121 -0
- data/ext/libev/config.sub +1658 -0
- data/ext/libev/configure +22156 -0
- data/ext/libev/configure.ac +18 -0
- data/ext/libev/ev++.h +800 -0
- data/ext/libev/ev.c +3694 -0
- data/ext/libev/ev.h +705 -0
- data/ext/libev/ev_epoll.c +228 -0
- data/ext/libev/ev_kqueue.c +196 -0
- data/ext/libev/ev_poll.c +144 -0
- data/ext/libev/ev_port.c +165 -0
- data/ext/libev/ev_select.c +308 -0
- data/ext/libev/ev_vars.h +187 -0
- data/ext/libev/ev_win32.c +153 -0
- data/ext/libev/ev_wrap.h +178 -0
- data/ext/libev/event.c +401 -0
- data/ext/libev/event.h +158 -0
- data/ext/libev/install-sh +294 -0
- data/ext/libev/libev.m4 +38 -0
- data/ext/libev/ltmain.sh +6871 -0
- data/ext/libev/missing +336 -0
- data/ext/libev/mkinstalldirs +111 -0
- data/ext/nginx/Configuration.c +532 -182
- data/ext/nginx/Configuration.h +33 -10
- data/ext/nginx/ContentHandler.c +188 -53
- data/ext/nginx/ContentHandler.h +1 -1
- data/ext/nginx/{HelperServer.cpp → HelperAgent.cpp} +433 -299
- data/ext/nginx/HttpStatusExtractor.h +1 -1
- data/ext/nginx/ScgiRequestParser.h +68 -11
- data/ext/nginx/StaticContentHandler.c +4 -1
- data/ext/nginx/StaticContentHandler.h +1 -1
- data/ext/nginx/config +5 -5
- data/ext/nginx/ngx_http_passenger_module.c +315 -469
- data/ext/nginx/ngx_http_passenger_module.h +8 -17
- data/ext/oxt/backtrace.cpp +49 -41
- data/ext/oxt/backtrace.hpp +1 -1
- data/ext/oxt/detail/backtrace_disabled.hpp +1 -1
- data/ext/oxt/detail/backtrace_enabled.hpp +16 -15
- data/ext/oxt/detail/spin_lock_darwin.hpp +69 -0
- data/ext/oxt/detail/spin_lock_gcc_x86.hpp +3 -4
- data/ext/oxt/detail/spin_lock_portable.hpp +1 -1
- data/ext/oxt/detail/spin_lock_pthreads.hpp +1 -1
- data/ext/oxt/detail/tracable_exception_disabled.hpp +1 -1
- data/ext/oxt/detail/tracable_exception_enabled.hpp +1 -1
- data/ext/oxt/dynamic_thread_group.hpp +195 -0
- data/ext/oxt/macros.hpp +1 -1
- data/ext/oxt/spin_lock.hpp +4 -2
- data/ext/oxt/system_calls.cpp +129 -13
- data/ext/oxt/system_calls.hpp +16 -2
- data/ext/oxt/thread.cpp +1 -1
- data/ext/oxt/thread.hpp +49 -14
- data/ext/oxt/tracable_exception.cpp +5 -5
- data/ext/oxt/tracable_exception.hpp +1 -1
- data/ext/phusion_passenger/extconf.rb +7 -2
- data/ext/phusion_passenger/native_support.c +733 -33
- data/{bin → helper-scripts}/passenger-spawn-server +50 -12
- data/helper-scripts/prespawn +63 -0
- data/lib/phusion_passenger.rb +113 -0
- data/lib/phusion_passenger/abstract_installer.rb +50 -12
- data/lib/phusion_passenger/abstract_request_handler.rb +432 -171
- data/lib/phusion_passenger/abstract_server.rb +125 -122
- data/lib/phusion_passenger/abstract_server_collection.rb +51 -22
- data/lib/phusion_passenger/admin_tools.rb +1 -1
- data/lib/phusion_passenger/admin_tools/memory_stats.rb +299 -0
- data/lib/phusion_passenger/admin_tools/server_instance.rb +334 -0
- data/lib/phusion_passenger/analytics_logger.rb +342 -0
- data/lib/phusion_passenger/{application.rb → app_process.rb} +73 -24
- data/lib/phusion_passenger/classic_rails/application_spawner.rb +344 -0
- data/lib/phusion_passenger/{railz → classic_rails}/cgi_fixed.rb +2 -2
- data/lib/phusion_passenger/{railz → classic_rails}/framework_spawner.rb +75 -98
- data/lib/phusion_passenger/{railz → classic_rails}/request_handler.rb +8 -6
- data/lib/phusion_passenger/classic_rails_extensions/analytics_logging/ac_base_extension.rb +65 -0
- data/lib/phusion_passenger/classic_rails_extensions/analytics_logging/ac_benchmarking_extension.rb +48 -0
- data/lib/phusion_passenger/classic_rails_extensions/analytics_logging/ac_rescue_extension.rb +59 -0
- data/lib/phusion_passenger/classic_rails_extensions/analytics_logging/ar_abstract_adapter_extension.rb +54 -0
- data/lib/phusion_passenger/classic_rails_extensions/analytics_logging/as_cache_extension.rb +130 -0
- data/lib/phusion_passenger/classic_rails_extensions/analytics_logging/av_benchmark_helper_extension.rb +47 -0
- data/lib/phusion_passenger/classic_rails_extensions/init.rb +123 -0
- data/lib/phusion_passenger/console_text_template.rb +1 -1
- data/lib/phusion_passenger/constants.rb +9 -5
- data/lib/phusion_passenger/debug_logging.rb +104 -0
- data/lib/phusion_passenger/dependencies.rb +187 -4
- data/lib/phusion_passenger/exceptions.rb +4 -4
- data/lib/phusion_passenger/html_template.rb +6 -8
- data/lib/phusion_passenger/message_channel.rb +137 -21
- data/lib/phusion_passenger/message_client.rb +173 -0
- data/lib/phusion_passenger/native_support.rb +108 -0
- data/lib/phusion_passenger/packaging.rb +82 -13
- data/lib/phusion_passenger/platform_info.rb +84 -475
- data/lib/phusion_passenger/platform_info/apache.rb +329 -0
- data/lib/phusion_passenger/platform_info/binary_compatibility.rb +187 -0
- data/lib/phusion_passenger/platform_info/compiler.rb +154 -0
- data/lib/phusion_passenger/{events.rb → platform_info/curl.rb} +26 -23
- data/lib/phusion_passenger/platform_info/documentation_tools.rb +35 -0
- data/lib/phusion_passenger/platform_info/linux.rb +77 -0
- data/lib/phusion_passenger/platform_info/operating_system.rb +51 -0
- data/lib/phusion_passenger/platform_info/ruby.rb +198 -0
- data/lib/phusion_passenger/platform_info/zlib.rb +38 -0
- data/lib/phusion_passenger/plugin.rb +96 -0
- data/lib/phusion_passenger/public_api.rb +112 -0
- data/lib/phusion_passenger/rack/application_spawner.rb +146 -71
- data/lib/phusion_passenger/rack/request_handler.rb +36 -13
- data/lib/phusion_passenger/rails3_extensions/init.rb +204 -0
- data/lib/phusion_passenger/simple_benchmarking.rb +1 -1
- data/lib/phusion_passenger/spawn_manager.rb +137 -141
- data/lib/phusion_passenger/standalone/app_finder.rb +153 -0
- data/lib/phusion_passenger/standalone/command.rb +237 -0
- data/lib/phusion_passenger/standalone/config_file.rb +119 -0
- data/lib/phusion_passenger/standalone/help_command.rb +57 -0
- data/lib/phusion_passenger/standalone/main.rb +101 -0
- data/lib/phusion_passenger/standalone/package_runtime_command.rb +92 -0
- data/lib/phusion_passenger/standalone/runtime_installer.rb +466 -0
- data/lib/phusion_passenger/standalone/start_command.rb +510 -0
- data/lib/phusion_passenger/standalone/status_command.rb +62 -0
- data/lib/phusion_passenger/standalone/stop_command.rb +74 -0
- data/lib/phusion_passenger/standalone/utils.rb +42 -0
- data/lib/phusion_passenger/standalone/version_command.rb +42 -0
- data/lib/phusion_passenger/templates/framework_init_error.html.erb +1 -1
- data/lib/phusion_passenger/templates/standalone/cannot_write_to_dir.txt.erb +11 -0
- data/lib/phusion_passenger/templates/standalone/config.erb +69 -0
- data/lib/phusion_passenger/templates/standalone/possible_solutions_for_download_and_extraction_problems.txt.erb +17 -0
- data/lib/phusion_passenger/templates/standalone/run_installer_as_root.txt.erb +8 -0
- data/lib/phusion_passenger/templates/standalone/welcome.txt.erb +8 -0
- data/lib/phusion_passenger/templates/standalone_default_root/index.html +1 -0
- data/lib/phusion_passenger/templates/version_not_found.html.erb +2 -2
- data/lib/phusion_passenger/utils.rb +476 -125
- data/lib/phusion_passenger/utils/file_system_watcher.rb +186 -0
- data/lib/phusion_passenger/utils/hosts_file_parser.rb +130 -0
- data/lib/phusion_passenger/utils/tmpdir.rb +70 -0
- data/lib/phusion_passenger/utils/unseekable_socket.rb +196 -0
- data/lib/phusion_passenger/wsgi/application_spawner.rb +24 -20
- data/lib/phusion_passenger/wsgi/request_handler.py +1 -1
- data/misc/copy_boost_headers.rb +36 -9
- data/misc/find_owner_pipe_leaks.rb +1 -1
- data/misc/render_error_pages.rb +1 -1
- data/misc/union_station_gateway.crt +32 -0
- data/test/config.yml.example +24 -13
- data/test/cxx/ApplicationPool_PoolTest.cpp +33 -0
- data/test/cxx/ApplicationPool_PoolTestCases.cpp +1029 -0
- data/test/cxx/ApplicationPool_ServerTest.cpp +308 -0
- data/test/cxx/ApplicationPool_Server_PoolTest.cpp +80 -0
- data/test/{Base64Test.cpp → cxx/Base64Test.cpp} +4 -2
- data/test/{CachedFileStatTest.cpp → cxx/CachedFileStatTest.cpp} +3 -3
- data/test/{CxxTestMain.cpp → cxx/CxxTestMain.cpp} +6 -27
- data/test/cxx/EventedClientTest.cpp +386 -0
- data/test/{FileChangeCheckerTest.cpp → cxx/FileChangeCheckerTest.cpp} +3 -5
- data/test/cxx/FileDescriptorTest.cpp +69 -0
- data/test/{HttpStatusExtractorTest.cpp → cxx/HttpStatusExtractorTest.cpp} +1 -1
- data/test/cxx/IOUtilsTest.cpp +398 -0
- data/test/cxx/LoggingTest.cpp +914 -0
- data/test/cxx/MessageChannelTest.cpp +672 -0
- data/test/cxx/MessageReadersWritersTest.cpp +574 -0
- data/test/cxx/MessageServerTest.cpp +383 -0
- data/test/{PoolOptionsTest.cpp → cxx/PoolOptionsTest.cpp} +2 -3
- data/test/{ScgiRequestParserTest.cpp → cxx/ScgiRequestParserTest.cpp} +53 -1
- data/test/cxx/ServerInstanceDirTest.cpp +186 -0
- data/test/cxx/SpawnManagerTest.cpp +161 -0
- data/test/cxx/StaticStringTest.cpp +86 -0
- data/test/{SystemTimeTest.cpp → cxx/SystemTimeTest.cpp} +2 -2
- data/test/cxx/TestSupport.cpp +166 -0
- data/test/cxx/TestSupport.h +254 -0
- data/test/cxx/UtilsTest.cpp +521 -0
- data/test/cxx/VariantMapTest.cpp +179 -0
- data/test/integration_tests/apache2_tests.rb +198 -127
- data/test/integration_tests/cgi_environment_spec.rb +26 -0
- data/test/integration_tests/mycook_spec.rb +2 -28
- data/test/integration_tests/nginx_tests.rb +125 -16
- data/test/integration_tests/spec_helper.rb +19 -0
- data/test/oxt/backtrace_test.cpp +19 -59
- data/test/oxt/counter.hpp +55 -0
- data/test/oxt/dynamic_thread_group_test.cpp +131 -0
- data/test/oxt/oxt_test_main.cpp +2 -2
- data/test/oxt/spin_lock_test.cpp +59 -0
- data/test/oxt/syscall_interruption_test.cpp +1 -1
- data/test/ruby/abstract_request_handler_spec.rb +346 -25
- data/test/ruby/abstract_server_collection_spec.rb +4 -3
- data/test/ruby/abstract_server_spec.rb +37 -27
- data/test/ruby/admin_tools_spec.rb +362 -0
- data/test/ruby/analytics_logger_spec.rb +253 -0
- data/test/ruby/{application_spec.rb → app_process_spec.rb} +14 -14
- data/test/ruby/classic_rails/application_spawner_spec.rb +89 -0
- data/test/ruby/classic_rails/framework_spawner_spec.rb +92 -0
- data/test/ruby/debug_logging_spec.rb +141 -0
- data/test/ruby/message_channel_spec.rb +51 -25
- data/test/ruby/rack/application_spawner_spec.rb +99 -82
- data/test/ruby/shared/abstract_server_spec.rb +23 -0
- data/test/ruby/shared/rails/analytics_logging_extensions_spec.rb +375 -0
- data/test/ruby/shared/spawners/classic_rails/framework_spawner_spec.rb +38 -0
- data/test/ruby/shared/spawners/classic_rails/lack_of_rails_gem_version_spec.rb +19 -0
- data/test/ruby/shared/spawners/classic_rails/spawner_spec.rb +15 -0
- data/test/ruby/shared/spawners/non_preloading_spawner_spec.rb +27 -0
- data/test/ruby/shared/spawners/preloading_spawner_spec.rb +29 -0
- data/test/ruby/shared/spawners/reload_all_spec.rb +36 -0
- data/test/ruby/shared/spawners/reload_single_spec.rb +52 -0
- data/test/ruby/shared/spawners/spawn_server_spec.rb +28 -0
- data/test/ruby/shared/spawners/spawner_spec.rb +273 -0
- data/test/ruby/shared/utils/pseudo_io_spec.rb +60 -0
- data/test/ruby/spawn_manager_spec.rb +104 -175
- data/test/ruby/spec_helper.rb +104 -0
- data/test/ruby/utils/file_system_watcher_spec.rb +221 -0
- data/test/ruby/utils/hosts_file_parser.rb +258 -0
- data/test/ruby/utils/unseekable_socket_spec.rb +66 -0
- data/test/ruby/utils_spec.rb +410 -59
- data/test/ruby/wsgi/application_spawner_spec.rb +16 -20
- data/test/stub/apache2/httpd.conf.erb +11 -6
- data/test/stub/message_channel.rb +3 -1
- data/test/stub/message_channel_2.rb +3 -1
- data/test/stub/message_channel_3.rb +5 -3
- data/test/stub/nginx/nginx.conf.erb +3 -2
- data/test/stub/rails_apps/1.2/empty/Rakefile +10 -0
- data/test/stub/rails_apps/1.2/empty/app/controllers/application.rb +7 -0
- data/test/stub/rails_apps/{foobar → 1.2/empty}/app/helpers/application_helper.rb +0 -0
- data/test/stub/rails_apps/{mycook → 1.2/empty}/config/boot.rb +3 -3
- data/test/stub/rails_apps/1.2/empty/config/database.yml +31 -0
- data/test/stub/rails_apps/1.2/empty/config/environment.rb +66 -0
- data/test/stub/rails_apps/1.2/empty/config/environments/development.rb +21 -0
- data/test/stub/rails_apps/{foobar → 1.2/empty}/config/environments/production.rb +0 -0
- data/test/stub/rails_apps/1.2/empty/config/environments/staging.rb +18 -0
- data/test/stub/rails_apps/1.2/empty/config/environments/test.rb +19 -0
- data/test/stub/rails_apps/1.2/empty/config/routes.rb +23 -0
- data/test/stub/rails_apps/1.2/empty/doc/README_FOR_APP +2 -0
- data/test/stub/rails_apps/{mycook → 1.2/empty}/public/404.html +0 -0
- data/test/stub/rails_apps/1.2/empty/public/500.html +30 -0
- data/test/stub/rails_apps/1.2/empty/public/dispatch.cgi +10 -0
- data/test/stub/rails_apps/1.2/empty/public/dispatch.fcgi +24 -0
- data/test/stub/rails_apps/1.2/empty/public/dispatch.rb +10 -0
- data/test/stub/rails_apps/{mycook → 1.2/empty}/public/favicon.ico +0 -0
- data/test/stub/rails_apps/{mycook → 1.2/empty}/public/images/rails.png +0 -0
- data/test/stub/rails_apps/1.2/empty/public/robots.txt +1 -0
- data/test/stub/rails_apps/1.2/empty/script/about +3 -0
- data/test/stub/rails_apps/1.2/empty/script/breakpointer +3 -0
- data/test/stub/rails_apps/1.2/empty/script/console +3 -0
- data/test/stub/rails_apps/1.2/empty/script/destroy +3 -0
- data/test/stub/rails_apps/1.2/empty/script/generate +3 -0
- data/test/stub/rails_apps/1.2/empty/script/performance/benchmarker +3 -0
- data/test/stub/rails_apps/1.2/empty/script/performance/profiler +3 -0
- data/test/stub/rails_apps/1.2/empty/script/plugin +3 -0
- data/test/stub/rails_apps/1.2/empty/script/process/inspector +3 -0
- data/test/stub/rails_apps/1.2/empty/script/process/reaper +3 -0
- data/test/stub/rails_apps/1.2/empty/script/process/spawner +3 -0
- data/test/stub/rails_apps/1.2/empty/script/runner +3 -0
- data/test/stub/rails_apps/1.2/empty/script/server +3 -0
- data/test/stub/rails_apps/1.2/empty/test/test_helper.rb +28 -0
- data/test/stub/rails_apps/2.0/empty/Rakefile +10 -0
- data/test/stub/rails_apps/2.0/empty/app/controllers/application.rb +10 -0
- data/test/stub/rails_apps/{mycook → 2.0/empty}/app/helpers/application_helper.rb +0 -0
- data/test/stub/rails_apps/{foobar → 2.0/empty}/config/boot.rb +3 -3
- data/test/stub/rails_apps/2.0/empty/config/database.yml +31 -0
- data/test/stub/rails_apps/2.0/empty/config/environment.rb +59 -0
- data/test/stub/rails_apps/{mycook → 2.0/empty}/config/environments/development.rb +1 -1
- data/test/stub/rails_apps/2.0/empty/config/environments/production.rb +18 -0
- data/test/stub/rails_apps/2.0/empty/config/environments/staging.rb +18 -0
- data/test/stub/rails_apps/2.0/empty/config/environments/test.rb +22 -0
- data/test/stub/rails_apps/{foobar → 2.0/empty}/config/initializers/inflections.rb +0 -0
- data/test/stub/rails_apps/{foobar → 2.0/empty}/config/initializers/mime_types.rb +0 -0
- data/test/stub/rails_apps/{foobar → 2.0/empty}/config/routes.rb +0 -0
- data/test/stub/rails_apps/2.0/empty/doc/README_FOR_APP +2 -0
- data/test/stub/rails_apps/2.0/empty/public/404.html +30 -0
- data/test/stub/rails_apps/{mycook → 2.0/empty}/public/422.html +0 -0
- data/test/stub/rails_apps/{mycook → 2.0/empty}/public/500.html +0 -0
- data/test/stub/rails_apps/2.0/empty/public/dispatch.cgi +10 -0
- data/test/stub/rails_apps/2.0/empty/public/dispatch.fcgi +24 -0
- data/test/stub/rails_apps/2.0/empty/public/dispatch.rb +10 -0
- data/test/stub/rails_apps/2.0/empty/public/favicon.ico +0 -0
- data/test/stub/rails_apps/2.0/empty/public/images/rails.png +0 -0
- data/test/stub/rails_apps/{mycook → 2.0/empty}/public/robots.txt +0 -0
- data/test/stub/rails_apps/2.0/empty/script/about +3 -0
- data/test/stub/rails_apps/2.0/empty/script/console +3 -0
- data/test/stub/rails_apps/2.0/empty/script/destroy +3 -0
- data/test/stub/rails_apps/2.0/empty/script/generate +3 -0
- data/test/stub/rails_apps/2.0/empty/script/performance/benchmarker +3 -0
- data/test/stub/rails_apps/2.0/empty/script/performance/profiler +3 -0
- data/test/stub/rails_apps/2.0/empty/script/performance/request +3 -0
- data/test/stub/rails_apps/2.0/empty/script/plugin +3 -0
- data/test/stub/rails_apps/2.0/empty/script/process/inspector +3 -0
- data/test/stub/rails_apps/2.0/empty/script/process/reaper +3 -0
- data/test/stub/rails_apps/2.0/empty/script/process/spawner +3 -0
- data/test/stub/rails_apps/2.0/empty/script/runner +3 -0
- data/test/stub/rails_apps/2.0/empty/script/server +3 -0
- data/test/stub/rails_apps/2.0/empty/test/test_helper.rb +38 -0
- data/test/stub/rails_apps/2.2/empty/Rakefile +10 -0
- data/test/stub/rails_apps/2.2/empty/app/controllers/application.rb +15 -0
- data/test/stub/rails_apps/2.2/empty/app/helpers/application_helper.rb +3 -0
- data/test/stub/rails_apps/2.2/empty/config/boot.rb +109 -0
- data/test/stub/rails_apps/2.2/empty/config/database.yml +31 -0
- data/test/stub/rails_apps/2.2/empty/config/environment.rb +75 -0
- data/test/stub/rails_apps/{foobar → 2.2/empty}/config/environments/development.rb +0 -0
- data/test/stub/rails_apps/2.2/empty/config/environments/production.rb +24 -0
- data/test/stub/rails_apps/2.2/empty/config/environments/staging.rb +24 -0
- data/test/stub/rails_apps/2.2/empty/config/environments/test.rb +22 -0
- data/test/stub/rails_apps/2.2/empty/config/initializers/inflections.rb +10 -0
- data/test/stub/rails_apps/{mycook → 2.2/empty}/config/initializers/mime_types.rb +0 -0
- data/test/stub/rails_apps/2.2/empty/config/initializers/new_rails_defaults.rb +17 -0
- data/test/stub/rails_apps/2.2/empty/config/locales/en.yml +5 -0
- data/test/stub/rails_apps/2.2/empty/config/routes.rb +43 -0
- data/test/stub/rails_apps/2.2/empty/doc/README_FOR_APP +5 -0
- data/test/stub/rails_apps/2.2/empty/public/404.html +30 -0
- data/test/stub/rails_apps/2.2/empty/public/422.html +30 -0
- data/test/stub/rails_apps/2.2/empty/public/500.html +33 -0
- data/test/stub/rails_apps/2.2/empty/public/dispatch.cgi +10 -0
- data/test/stub/rails_apps/2.2/empty/public/dispatch.fcgi +24 -0
- data/test/stub/rails_apps/2.2/empty/public/dispatch.rb +10 -0
- data/test/stub/rails_apps/2.2/empty/public/favicon.ico +0 -0
- data/test/stub/rails_apps/2.2/empty/public/images/rails.png +0 -0
- data/test/stub/rails_apps/2.2/empty/public/robots.txt +5 -0
- data/test/stub/rails_apps/2.2/empty/script/about +4 -0
- data/test/stub/rails_apps/2.2/empty/script/console +3 -0
- data/test/stub/rails_apps/2.2/empty/script/dbconsole +3 -0
- data/test/stub/rails_apps/2.2/empty/script/destroy +3 -0
- data/test/stub/rails_apps/2.2/empty/script/generate +3 -0
- data/test/stub/rails_apps/2.2/empty/script/performance/benchmarker +3 -0
- data/test/stub/rails_apps/2.2/empty/script/performance/profiler +3 -0
- data/test/stub/rails_apps/2.2/empty/script/performance/request +3 -0
- data/test/stub/rails_apps/2.2/empty/script/plugin +3 -0
- data/test/stub/rails_apps/2.2/empty/script/process/inspector +3 -0
- data/test/stub/rails_apps/2.2/empty/script/process/reaper +3 -0
- data/test/stub/rails_apps/2.2/empty/script/process/spawner +3 -0
- data/test/stub/rails_apps/2.2/empty/script/runner +3 -0
- data/test/stub/rails_apps/2.2/empty/script/server +3 -0
- data/test/stub/rails_apps/2.2/empty/test/performance/browsing_test.rb +9 -0
- data/test/stub/rails_apps/2.2/empty/test/test_helper.rb +38 -0
- data/test/stub/rails_apps/2.3/empty/Rakefile +10 -0
- data/test/stub/rails_apps/2.3/empty/app/controllers/application_controller.rb +10 -0
- data/test/stub/rails_apps/2.3/empty/app/helpers/application_helper.rb +3 -0
- data/test/stub/rails_apps/2.3/empty/config/boot.rb +110 -0
- data/test/stub/rails_apps/2.3/empty/config/database.yml +31 -0
- data/test/stub/rails_apps/2.3/empty/config/environment.rb +41 -0
- data/test/stub/rails_apps/2.3/empty/config/environments/development.rb +17 -0
- data/test/stub/rails_apps/2.3/empty/config/environments/production.rb +28 -0
- data/test/stub/rails_apps/2.3/empty/config/environments/staging.rb +28 -0
- data/test/stub/rails_apps/2.3/empty/config/environments/test.rb +28 -0
- data/test/stub/rails_apps/2.3/empty/config/initializers/backtrace_silencers.rb +7 -0
- data/test/stub/rails_apps/2.3/empty/config/initializers/inflections.rb +10 -0
- data/test/stub/rails_apps/2.3/empty/config/initializers/mime_types.rb +5 -0
- data/test/stub/rails_apps/2.3/empty/config/initializers/new_rails_defaults.rb +21 -0
- data/test/stub/rails_apps/2.3/empty/config/initializers/session_store.rb +15 -0
- data/test/stub/rails_apps/2.3/empty/config/locales/en.yml +5 -0
- data/test/stub/rails_apps/2.3/empty/config/routes.rb +43 -0
- data/test/stub/rails_apps/2.3/empty/db/seeds.rb +7 -0
- data/test/stub/rails_apps/2.3/empty/doc/README_FOR_APP +2 -0
- data/test/stub/rails_apps/2.3/empty/public/404.html +30 -0
- data/test/stub/rails_apps/2.3/empty/public/422.html +30 -0
- data/test/stub/rails_apps/2.3/empty/public/500.html +30 -0
- data/test/stub/rails_apps/2.3/empty/public/favicon.ico +0 -0
- data/test/stub/rails_apps/2.3/empty/public/images/rails.png +0 -0
- data/test/stub/rails_apps/2.3/empty/public/robots.txt +5 -0
- data/test/stub/rails_apps/2.3/empty/script/about +4 -0
- data/test/stub/rails_apps/2.3/empty/script/console +3 -0
- data/test/stub/rails_apps/2.3/empty/script/dbconsole +3 -0
- data/test/stub/rails_apps/2.3/empty/script/destroy +3 -0
- data/test/stub/rails_apps/2.3/empty/script/generate +3 -0
- data/test/stub/rails_apps/2.3/empty/script/performance/benchmarker +3 -0
- data/test/stub/rails_apps/2.3/empty/script/performance/profiler +3 -0
- data/test/stub/rails_apps/2.3/empty/script/plugin +3 -0
- data/test/stub/rails_apps/2.3/empty/script/runner +3 -0
- data/test/stub/rails_apps/2.3/empty/script/server +3 -0
- data/test/stub/rails_apps/2.3/empty/test/performance/browsing_test.rb +9 -0
- data/test/stub/rails_apps/2.3/empty/test/test_helper.rb +38 -0
- data/test/stub/rails_apps/2.3/foobar/Rakefile +10 -0
- data/test/stub/rails_apps/{foobar/app/controllers/application.rb → 2.3/foobar/app/controllers/application_controller.rb} +0 -0
- data/test/stub/rails_apps/{foobar → 2.3/foobar}/app/controllers/bar_controller_1.rb +0 -0
- data/test/stub/rails_apps/{foobar → 2.3/foobar}/app/controllers/bar_controller_2.rb +0 -0
- data/test/stub/rails_apps/{foobar → 2.3/foobar}/app/controllers/foo_controller.rb +0 -0
- data/test/stub/rails_apps/2.3/foobar/app/helpers/application_helper.rb +3 -0
- data/test/stub/rails_apps/2.3/foobar/config/boot.rb +110 -0
- data/test/stub/rails_apps/{foobar → 2.3/foobar}/config/database.yml +0 -0
- data/test/stub/rails_apps/{foobar → 2.3/foobar}/config/environment.rb +1 -1
- data/test/stub/rails_apps/2.3/foobar/config/environments/development.rb +17 -0
- data/test/stub/rails_apps/2.3/foobar/config/environments/production.rb +18 -0
- data/test/stub/rails_apps/2.3/foobar/config/environments/staging.rb +18 -0
- data/test/stub/rails_apps/{mycook → 2.3/foobar}/config/initializers/inflections.rb +0 -0
- data/test/stub/rails_apps/2.3/foobar/config/initializers/mime_types.rb +5 -0
- data/test/stub/rails_apps/2.3/foobar/config/routes.rb +35 -0
- data/test/stub/rails_apps/2.3/foobar/script/about +3 -0
- data/test/stub/rails_apps/2.3/foobar/script/console +3 -0
- data/test/stub/rails_apps/2.3/foobar/script/dbconsole +3 -0
- data/test/stub/rails_apps/2.3/foobar/script/destroy +3 -0
- data/test/stub/rails_apps/2.3/foobar/script/generate +3 -0
- data/test/stub/rails_apps/2.3/foobar/script/performance/benchmarker +3 -0
- data/test/stub/rails_apps/2.3/foobar/script/performance/profiler +3 -0
- data/test/stub/rails_apps/2.3/foobar/script/performance/request +3 -0
- data/test/stub/rails_apps/2.3/foobar/script/plugin +3 -0
- data/test/stub/rails_apps/2.3/foobar/script/process/inspector +3 -0
- data/test/stub/rails_apps/2.3/foobar/script/process/reaper +3 -0
- data/test/stub/rails_apps/2.3/foobar/script/process/spawner +3 -0
- data/test/stub/rails_apps/2.3/foobar/script/runner +3 -0
- data/test/stub/rails_apps/2.3/foobar/script/server +3 -0
- data/test/stub/rails_apps/2.3/mycook/Rakefile +10 -0
- data/test/stub/rails_apps/{mycook/app/controllers/application.rb → 2.3/mycook/app/controllers/application_controller.rb} +0 -0
- data/test/stub/rails_apps/{mycook → 2.3/mycook}/app/controllers/recipes_controller.rb +0 -0
- data/test/stub/rails_apps/{mycook → 2.3/mycook}/app/controllers/uploads_controller.rb +0 -0
- data/test/stub/rails_apps/{mycook → 2.3/mycook}/app/controllers/welcome_controller.rb +0 -0
- data/test/stub/rails_apps/2.3/mycook/app/helpers/application_helper.rb +3 -0
- data/test/stub/rails_apps/{mycook → 2.3/mycook}/app/views/layouts/default.rhtml +0 -0
- data/test/stub/rails_apps/{mycook → 2.3/mycook}/app/views/recipes/create.rhtml +0 -0
- data/test/stub/rails_apps/{mycook → 2.3/mycook}/app/views/recipes/index.rhtml +0 -0
- data/test/stub/rails_apps/{mycook → 2.3/mycook}/app/views/recipes/new.rhtml +0 -0
- data/test/stub/rails_apps/{mycook → 2.3/mycook}/app/views/uploads/index.rhtml +0 -0
- data/test/stub/rails_apps/{mycook → 2.3/mycook}/app/views/uploads/new.html.erb +0 -0
- data/test/stub/rails_apps/{mycook → 2.3/mycook}/app/views/welcome/cached.rhtml +0 -0
- data/test/stub/rails_apps/{mycook → 2.3/mycook}/app/views/welcome/index.rhtml +0 -0
- data/test/stub/rails_apps/2.3/mycook/config/boot.rb +110 -0
- data/test/stub/rails_apps/{mycook → 2.3/mycook}/config/database.yml +0 -0
- data/test/stub/rails_apps/{mycook → 2.3/mycook}/config/environment.rb +1 -1
- data/test/stub/rails_apps/2.3/mycook/config/environments/development.rb +18 -0
- data/test/stub/rails_apps/{mycook → 2.3/mycook}/config/environments/production.rb +0 -0
- data/test/stub/rails_apps/2.3/mycook/config/initializers/inflections.rb +10 -0
- data/test/stub/rails_apps/2.3/mycook/config/initializers/mime_types.rb +5 -0
- data/test/stub/rails_apps/{mycook → 2.3/mycook}/config/routes.rb +0 -0
- data/test/stub/rails_apps/{mycook → 2.3/mycook}/log/useless.txt +0 -0
- data/test/stub/rails_apps/2.3/mycook/public/404.html +30 -0
- data/test/stub/rails_apps/2.3/mycook/public/422.html +30 -0
- data/test/stub/rails_apps/2.3/mycook/public/500.html +30 -0
- data/test/stub/rails_apps/{mycook → 2.3/mycook}/public/dispatch.cgi +0 -0
- data/test/stub/rails_apps/{mycook → 2.3/mycook}/public/dispatch.fcgi +0 -0
- data/test/stub/rails_apps/{mycook → 2.3/mycook}/public/dispatch.rb +1 -1
- data/test/stub/rails_apps/2.3/mycook/public/favicon.ico +0 -0
- data/test/stub/rails_apps/{mycook → 2.3/mycook}/public/images/angrywizard.gif +0 -0
- data/test/stub/rails_apps/{mycook → 2.3/mycook}/public/images/cookbook.gif +0 -0
- data/test/stub/rails_apps/{mycook → 2.3/mycook}/public/images/header.png +0 -0
- data/test/stub/rails_apps/2.3/mycook/public/images/rails.png +0 -0
- data/test/stub/rails_apps/{mycook → 2.3/mycook}/public/javascripts/application.js +0 -0
- data/test/stub/rails_apps/{mycook → 2.3/mycook}/public/javascripts/controls.js +73 -73
- data/test/stub/rails_apps/{mycook → 2.3/mycook}/public/javascripts/dragdrop.js +166 -165
- data/test/stub/rails_apps/{mycook → 2.3/mycook}/public/javascripts/effects.js +174 -166
- data/test/stub/rails_apps/{mycook → 2.3/mycook}/public/javascripts/prototype.js +362 -267
- data/test/stub/rails_apps/2.3/mycook/public/robots.txt +5 -0
- data/test/stub/rails_apps/{mycook → 2.3/mycook}/public/uploads.html +0 -0
- data/test/stub/rails_apps/{mycook → 2.3/mycook}/public/welcome/cached.html +0 -0
- data/test/stub/rails_apps/2.3/mycook/script/about +3 -0
- data/test/stub/rails_apps/2.3/mycook/script/console +3 -0
- data/test/stub/rails_apps/2.3/mycook/script/dbconsole +3 -0
- data/test/stub/rails_apps/2.3/mycook/script/destroy +3 -0
- data/test/stub/rails_apps/2.3/mycook/script/generate +3 -0
- data/test/stub/rails_apps/2.3/mycook/script/performance/benchmarker +3 -0
- data/test/stub/rails_apps/2.3/mycook/script/performance/profiler +3 -0
- data/test/stub/rails_apps/2.3/mycook/script/performance/request +3 -0
- data/test/stub/rails_apps/2.3/mycook/script/plugin +3 -0
- data/test/stub/rails_apps/2.3/mycook/script/process/inspector +3 -0
- data/test/stub/rails_apps/2.3/mycook/script/process/reaper +3 -0
- data/test/stub/rails_apps/2.3/mycook/script/process/spawner +3 -0
- data/test/stub/rails_apps/2.3/mycook/script/runner +3 -0
- data/test/stub/rails_apps/2.3/mycook/script/server +3 -0
- data/test/stub/rails_apps/{mycook → 2.3/mycook}/sites/some.site/public/uploads.html +0 -0
- data/test/stub/rails_apps/{mycook → 2.3/mycook}/sites/some.site/public/welcome/cached.html +0 -0
- data/test/stub/rails_apps/{mycook → 2.3/mycook}/tmp/cache/useless.txt +0 -0
- data/test/stub/rails_apps/{mycook → 2.3/mycook}/tmp/pids/useless.txt +0 -0
- data/test/stub/rails_apps/{mycook → 2.3/mycook}/tmp/sessions/useless.txt +0 -0
- data/test/stub/rails_apps/{mycook → 2.3/mycook}/tmp/sockets/useless.txt +0 -0
- data/test/stub/rails_apps/3.0/empty/Gemfile +22 -0
- data/test/stub/rails_apps/3.0/empty/Rakefile +10 -0
- data/test/stub/rails_apps/3.0/empty/app/controllers/application_controller.rb +4 -0
- data/test/stub/rails_apps/3.0/empty/app/helpers/application_helper.rb +2 -0
- data/test/stub/rails_apps/3.0/empty/app/views/layouts/application.html.erb +14 -0
- data/test/stub/rails_apps/3.0/empty/config.ru +4 -0
- data/test/stub/rails_apps/3.0/empty/config/application.rb +48 -0
- data/test/stub/rails_apps/3.0/empty/config/boot.rb +13 -0
- data/test/stub/rails_apps/3.0/empty/config/database.yml +22 -0
- data/test/stub/rails_apps/3.0/empty/config/environment.rb +5 -0
- data/test/stub/rails_apps/3.0/empty/config/environments/development.rb +19 -0
- data/test/stub/rails_apps/3.0/empty/config/environments/production.rb +48 -0
- data/test/stub/rails_apps/3.0/empty/config/environments/test.rb +32 -0
- data/test/stub/rails_apps/3.0/empty/config/initializers/backtrace_silencers.rb +7 -0
- data/test/stub/rails_apps/3.0/empty/config/initializers/inflections.rb +10 -0
- data/test/stub/rails_apps/3.0/empty/config/initializers/mime_types.rb +5 -0
- data/test/stub/rails_apps/3.0/empty/config/initializers/passenger.rb +1 -0
- data/test/stub/rails_apps/3.0/empty/config/initializers/secret_token.rb +7 -0
- data/test/stub/rails_apps/3.0/empty/config/initializers/session_store.rb +8 -0
- data/test/stub/rails_apps/3.0/empty/config/locales/en.yml +5 -0
- data/test/stub/rails_apps/3.0/empty/config/routes.rb +58 -0
- data/test/stub/rails_apps/3.0/empty/db/seeds.rb +7 -0
- data/test/stub/rails_apps/3.0/empty/doc/README_FOR_APP +2 -0
- data/test/stub/rails_apps/3.0/empty/log/development.log +3 -0
- data/test/stub/rails_apps/3.0/empty/public/404.html +26 -0
- data/test/stub/rails_apps/3.0/empty/public/422.html +26 -0
- data/test/stub/rails_apps/3.0/empty/public/500.html +26 -0
- data/test/stub/rails_apps/3.0/empty/public/favicon.ico +0 -0
- data/test/stub/rails_apps/3.0/empty/public/index.html +279 -0
- data/test/stub/rails_apps/3.0/empty/public/robots.txt +5 -0
- data/test/stub/rails_apps/3.0/empty/script/rails +9 -0
- data/test/stub/rails_apps/3.0/empty/test/performance/browsing_test.rb +9 -0
- data/test/stub/rails_apps/3.0/empty/test/test_helper.rb +13 -0
- data/test/stub/spawn_server.rb +4 -2
- data/test/stub/vendor_rails/minimal/actionpack/lib/action_controller.rb +3 -0
- data/test/stub/vendor_rails/minimal/railties/lib/initializer.rb +7 -2
- data/test/support/apache2_controller.rb +10 -2
- data/test/support/nginx_controller.rb +3 -2
- data/test/support/test_helper.rb +282 -46
- data/test/{support → tut}/tut.h +6 -0
- data/test/{support → tut}/tut_reporter.h +0 -0
- metadata +824 -266
- data/benchmark/ApplicationPool.cpp +0 -52
- data/benchmark/accept_vs_socketpair_vs_named_pipes.rb +0 -126
- data/benchmark/dispatcher.rb +0 -42
- data/benchmark/overhead_of_password_checking.rb +0 -81
- data/benchmark/socket_connections_vs_persistent_pipe.rb +0 -99
- data/benchmark/unix_sockets_vs_pipes.rb +0 -83
- data/ext/boost/LICENSE.TXT +0 -23
- data/ext/boost/VERSION.TXT +0 -1
- data/ext/boost/detail/sp_counted_base.hpp +0 -81
- data/ext/boost/src/pthread/exceptions.cpp +0 -146
- data/ext/boost/src/win32/exceptions.cpp +0 -124
- data/ext/boost/src/win32/thread.cpp +0 -629
- data/ext/boost/src/win32/timeconv.inl +0 -130
- data/ext/boost/src/win32/tss_dll.cpp +0 -72
- data/ext/boost/src/win32/tss_pe.cpp +0 -269
- data/ext/boost/thread/pthread/thread.hpp +0 -339
- data/ext/boost/thread/pthread/tss.hpp +0 -103
- data/ext/common/Application.h +0 -511
- data/ext/common/ApplicationPoolServer.h +0 -794
- data/ext/common/ApplicationPoolServerExecutable.cpp +0 -743
- data/ext/common/ApplicationPoolStatusReporter.h +0 -336
- data/ext/common/DummySpawnManager.h +0 -108
- data/ext/common/StandardApplicationPool.h +0 -821
- data/ext/common/SystemTime.h +0 -88
- data/lib/phusion_passenger/admin_tools/control_process.rb +0 -150
- data/lib/phusion_passenger/railz/application_spawner.rb +0 -463
- data/lib/phusion_passenger/templates/invalid_app_root.html.erb +0 -9
- data/test/ApplicationPoolServerTest.cpp +0 -114
- data/test/ApplicationPoolServer_ApplicationPoolTest.cpp +0 -33
- data/test/ApplicationPoolTest.cpp +0 -599
- data/test/MessageChannelTest.cpp +0 -320
- data/test/SpawnManagerTest.cpp +0 -64
- data/test/StandardApplicationPoolTest.cpp +0 -27
- data/test/StaticStringTest.cpp +0 -51
- data/test/UtilsTest.cpp +0 -257
- data/test/ruby/rails/application_spawner_spec.rb +0 -159
- data/test/ruby/rails/framework_spawner_spec.rb +0 -133
- data/test/ruby/rails/minimal_spawner_spec.rb +0 -93
- data/test/ruby/rails/spawner_error_handling_spec.rb +0 -107
- data/test/ruby/rails/spawner_privilege_lowering_spec.rb +0 -97
- data/test/ruby/spawn_server_spec.rb +0 -26
- data/test/stub/MessageServer.dSYM/Contents/Info.plist +0 -25
- data/test/stub/MessageServer.dSYM/Contents/Resources/DWARF/MessageServer +0 -0
- data/test/support/Support.cpp +0 -84
- data/test/support/Support.h +0 -118
- data/test/support/config.rb +0 -38
- data/test/support/run_rspec_tests.rb +0 -10
data/doc/cxxapi/annotated.html
CHANGED
@@ -13,6 +13,7 @@
|
|
13
13
|
<ul>
|
14
14
|
<li><a href="main.html"><span>Main Page</span></a></li>
|
15
15
|
<li><a href="modules.html"><span>Modules</span></a></li>
|
16
|
+
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
|
16
17
|
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
|
17
18
|
<li><a href="files.html"><span>Files</span></a></li>
|
18
19
|
</ul>
|
@@ -20,14 +21,59 @@
|
|
20
21
|
<div class="tabs">
|
21
22
|
<ul>
|
22
23
|
<li class="current"><a href="annotated.html"><span>Class List</span></a></li>
|
24
|
+
<li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
|
23
25
|
<li><a href="functions.html"><span>Class Members</span></a></li>
|
24
26
|
</ul>
|
25
27
|
</div>
|
26
28
|
</div>
|
27
29
|
<div class="contents">
|
28
30
|
<h1>Class List</h1>Here are the classes, structs, unions and interfaces with brief descriptions:<table>
|
31
|
+
<tr><td class="indexkey"><a class="el" href="classPassenger_1_1AbstractSpawnManager.html">Passenger::AbstractSpawnManager</a></td><td class="indexvalue">Spawning of application processes </td></tr>
|
32
|
+
<tr><td class="indexkey"><a class="el" href="classAgentWatcher.html">AgentWatcher</a></td><td class="indexvalue">Abstract base class for watching agent processes </td></tr>
|
33
|
+
<tr><td class="indexkey"><a class="el" href="classPassenger_1_1ArgumentException.html">Passenger::ArgumentException</a></td><td class="indexvalue">Indicates that a specified argument is incorrect or violates a requirement </td></tr>
|
34
|
+
<tr><td class="indexkey"><a class="el" href="classPassenger_1_1ArrayMessage.html">Passenger::ArrayMessage</a></td><td class="indexvalue">For array messages </td></tr>
|
35
|
+
<tr><td class="indexkey"><a class="el" href="classPassenger_1_1BufferedUpload.html">Passenger::BufferedUpload</a></td><td class="indexvalue">Represents a buffered upload file </td></tr>
|
36
|
+
<tr><td class="indexkey"><a class="el" href="classPassenger_1_1BusyException.html">Passenger::BusyException</a></td><td class="indexvalue">The application pool is too busy and cannot fulfill a get() request </td></tr>
|
37
|
+
<tr><td class="indexkey"><a class="el" href="classClient.html">Client</a></td><td class="indexvalue">A representation of a <a class="el" href="classClient.html" title="A representation of a Client from the Server's point of view.">Client</a> from the Server's point of view </td></tr>
|
38
|
+
<tr><td class="indexkey"><a class="el" href="classPassenger_1_1MessageServer_1_1ClientContext.html">Passenger::MessageServer::ClientContext</a></td><td class="indexvalue">Interface for client context objects </td></tr>
|
39
|
+
<tr><td class="indexkey"><a class="el" href="classPassenger_1_1MessageServer_1_1CommonClientContext.html">Passenger::MessageServer::CommonClientContext</a></td><td class="indexvalue">A common client context, containing client-specific information used by <a class="el" href="classPassenger_1_1MessageServer.html" title="Simple pluggable request/response messaging server framework.">MessageServer</a> itself </td></tr>
|
40
|
+
<tr><td class="indexkey"><a class="el" href="classPassenger_1_1ConfigurationException.html">Passenger::ConfigurationException</a></td><td class="indexvalue">Thrown when an invalid configuration is given </td></tr>
|
29
41
|
<tr><td class="indexkey"><a class="el" href="classPassenger_1_1DirectoryMapper.html">Passenger::DirectoryMapper</a></td><td class="indexvalue">Utility class for determining URI-to-application directory mappings </td></tr>
|
42
|
+
<tr><td class="indexkey"><a class="el" href="structPassenger_1_1MessageServer_1_1DisconnectEventBroadcastGuard.html">Passenger::MessageServer::DisconnectEventBroadcastGuard</a></td><td class="indexvalue">Calls clientDisconnected() on all handlers when destroyed </td></tr>
|
43
|
+
<tr><td class="indexkey"><a class="el" href="classPassenger_1_1EOFException.html">Passenger::EOFException</a></td><td class="indexvalue">An unexpected end-of-file I/O error </td></tr>
|
44
|
+
<tr><td class="indexkey"><a class="el" href="classPassenger_1_1EventedClient.html">Passenger::EventedClient</a></td><td class="indexvalue">A utility class for making I/O handling in non-blocking libev evented servers much easier </td></tr>
|
45
|
+
<tr><td class="indexkey"><a class="el" href="classPassenger_1_1EventedMessageServer.html">Passenger::EventedMessageServer</a></td><td class="indexvalue">Note when overriding onNewClient: call the parent method first! It does some initialization but might disconnect the client if that initialization fails </td></tr>
|
46
|
+
<tr><td class="indexkey"><a class="el" href="classPassenger_1_1EventedServer.html">Passenger::EventedServer</a></td><td class="indexvalue">A base class for writing single-threaded, evented servers that use non-blocking I/O </td></tr>
|
47
|
+
<tr><td class="indexkey"><a class="el" href="classPassenger_1_1EventFd.html">Passenger::EventFd</a></td><td class="indexvalue">A synchronization mechanism that's implemented with file descriptors, and as such can be used in combination with select() and friends </td></tr>
|
48
|
+
<tr><td class="indexkey"><a class="el" href="classPassenger_1_1FileDescriptor.html">Passenger::FileDescriptor</a></td><td class="indexvalue">Wrapper class around a file descriptor integer, for RAII behavior </td></tr>
|
49
|
+
<tr><td class="indexkey"><a class="el" href="classPassenger_1_1FileNotFoundException.html">Passenger::FileNotFoundException</a></td><td class="indexvalue">Thrown when a certain file cannot be found </td></tr>
|
50
|
+
<tr><td class="indexkey"><a class="el" href="classPassenger_1_1FileSystemException.html">Passenger::FileSystemException</a></td><td class="indexvalue">A filesystem error, as returned by the operating system </td></tr>
|
51
|
+
<tr><td class="indexkey"><a class="el" href="classPassenger_1_1MessageServer_1_1Handler.html">Passenger::MessageServer::Handler</a></td><td class="indexvalue">An abstract message handler class </td></tr>
|
52
|
+
<tr><td class="indexkey"><a class="el" href="structPassenger_1_1StaticString_1_1Hash.html">Passenger::StaticString::Hash</a></td><td class="indexvalue">A hash function object for <a class="el" href="classPassenger_1_1StaticString.html" title="An immutable, static byte buffer.">StaticString</a> </td></tr>
|
30
53
|
<tr><td class="indexkey"><a class="el" href="classHooks.html">Hooks</a></td><td class="indexvalue">Apache hook functions, wrapped in a class </td></tr>
|
54
|
+
<tr><td class="indexkey"><a class="el" href="classPassenger_1_1HttpStatusExtractor.html">Passenger::HttpStatusExtractor</a></td><td class="indexvalue">Utility class for extracting the HTTP status value from an HTTP response </td></tr>
|
55
|
+
<tr><td class="indexkey"><a class="el" href="classPassenger_1_1IOException.html">Passenger::IOException</a></td><td class="indexvalue">Represents an error that occured during an I/O operation </td></tr>
|
56
|
+
<tr><td class="indexkey"><a class="el" href="classPassenger_1_1MessageChannel.html">Passenger::MessageChannel</a></td><td class="indexvalue">Convenience class for I/O operations on file descriptors </td></tr>
|
57
|
+
<tr><td class="indexkey"><a class="el" href="classPassenger_1_1MessageServer.html">Passenger::MessageServer</a></td><td class="indexvalue">Simple pluggable request/response messaging server framework </td></tr>
|
58
|
+
<tr><td class="indexkey"><a class="el" href="structPassenger_1_1PoolOptions.html">Passenger::PoolOptions</a></td><td class="indexvalue">This struct encapsulates information for ApplicationPool::get() and for <a class="el" href="classPassenger_1_1SpawnManager.html#a88a94ba4d41dab492cb1dc8a0f998973" title="Spawn a new application process.">SpawnManager::spawn()</a>, such as which application is to be spawned </td></tr>
|
59
|
+
<tr><td class="indexkey"><a class="el" href="classPassenger_1_1Process.html">Passenger::Process</a></td><td class="indexvalue">Represents a single application process, as spawned by <a class="el" href="classPassenger_1_1SpawnManager.html" title="An AbstractSpawnManager implementation.">SpawnManager</a> or by ApplicationPool::Interface::get() </td></tr>
|
60
|
+
<tr><td class="indexkey"><a class="el" href="classPassenger_1_1RandomGenerator.html">Passenger::RandomGenerator</a></td><td class="indexvalue">A random data generator </td></tr>
|
61
|
+
<tr><td class="indexkey"><a class="el" href="classPassenger_1_1RuntimeException.html">Passenger::RuntimeException</a></td><td class="indexvalue">A generic runtime exception </td></tr>
|
62
|
+
<tr><td class="indexkey"><a class="el" href="classPassenger_1_1ScalarMessage.html">Passenger::ScalarMessage</a></td><td class="indexvalue">Class for reading a scalar message </td></tr>
|
63
|
+
<tr><td class="indexkey"><a class="el" href="classPassenger_1_1ScgiRequestParser.html">Passenger::ScgiRequestParser</a></td><td class="indexvalue">A parser for SCGI requests </td></tr>
|
64
|
+
<tr><td class="indexkey"><a class="el" href="classPassenger_1_1SecurityException.html">Passenger::SecurityException</a></td><td class="indexvalue">Represents some kind of security error </td></tr>
|
65
|
+
<tr><td class="indexkey"><a class="el" href="classServer.html">Server</a></td><td class="indexvalue">A representation of the <a class="el" href="classServer.html" title="A representation of the Server responsible for handling Client instances.">Server</a> responsible for handling <a class="el" href="classClient.html" title="A representation of a Client from the Server's point of view.">Client</a> instances </td></tr>
|
66
|
+
<tr><td class="indexkey"><a class="el" href="classServerInstanceDirToucher.html">ServerInstanceDirToucher</a></td><td class="indexvalue">Touch all files in the server instance dir every 6 hours in order to prevent /tmp cleaners from weaking havoc: <a href="http://code.google.com/p/phusion-passenger/issues/detail?id=365">http://code.google.com/p/phusion-passenger/issues/detail?id=365</a> </td></tr>
|
67
|
+
<tr><td class="indexkey"><a class="el" href="classPassenger_1_1Session.html">Passenger::Session</a></td><td class="indexvalue">Represents a single request/response pair of an application process </td></tr>
|
68
|
+
<tr><td class="indexkey"><a class="el" href="classPassenger_1_1SpawnException.html">Passenger::SpawnException</a></td><td class="indexvalue">Thrown when <a class="el" href="classPassenger_1_1SpawnManager.html" title="An AbstractSpawnManager implementation.">SpawnManager</a> or ApplicationPool fails to spawn an application instance </td></tr>
|
69
|
+
<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>
|
70
|
+
<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>
|
71
|
+
<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>
|
72
|
+
<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>
|
73
|
+
<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>
|
74
|
+
<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>
|
75
|
+
<tr><td class="indexkey"><a class="el" href="classPassenger_1_1Uint16Message.html">Passenger::Uint16Message</a></td><td class="indexvalue">For 16-bit big-endian integers </td></tr>
|
76
|
+
<tr><td class="indexkey"><a class="el" href="classPassenger_1_1Uint32Message.html">Passenger::Uint32Message</a></td><td class="indexvalue">For 32-bit big-endian integers </td></tr>
|
31
77
|
</table>
|
32
78
|
</div>
|
33
79
|
<hr size="1"/><address style="text-align: right;"><small>Generated by
|
@@ -0,0 +1,82 @@
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
2
|
+
<html xmlns="http://www.w3.org/1999/xhtml">
|
3
|
+
<head>
|
4
|
+
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
5
|
+
<title>Passenger: Configuration.h Source File</title>
|
6
|
+
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
7
|
+
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
8
|
+
</head>
|
9
|
+
<body>
|
10
|
+
<!-- Generated by Doxygen 1.6.2 -->
|
11
|
+
<div class="navigation" id="top">
|
12
|
+
<div class="tabs">
|
13
|
+
<ul>
|
14
|
+
<li><a href="main.html"><span>Main Page</span></a></li>
|
15
|
+
<li><a href="modules.html"><span>Modules</span></a></li>
|
16
|
+
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
|
17
|
+
<li><a href="annotated.html"><span>Classes</span></a></li>
|
18
|
+
<li class="current"><a href="files.html"><span>Files</span></a></li>
|
19
|
+
</ul>
|
20
|
+
</div>
|
21
|
+
<div class="tabs">
|
22
|
+
<ul>
|
23
|
+
<li><a href="files.html"><span>File List</span></a></li>
|
24
|
+
</ul>
|
25
|
+
</div>
|
26
|
+
<h1>Configuration.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
|
27
|
+
<a name="l00002"></a>00002 <span class="comment"> * Phusion Passenger - http://www.modrails.com/</span>
|
28
|
+
<a name="l00003"></a>00003 <span class="comment"> * Copyright (c) 2010 Phusion</span>
|
29
|
+
<a name="l00004"></a>00004 <span class="comment"> *</span>
|
30
|
+
<a name="l00005"></a>00005 <span class="comment"> * "Phusion Passenger" is a trademark of Hongli Lai & Ninh Bui.</span>
|
31
|
+
<a name="l00006"></a>00006 <span class="comment"> *</span>
|
32
|
+
<a name="l00007"></a>00007 <span class="comment"> * Permission is hereby granted, free of charge, to any person obtaining a copy</span>
|
33
|
+
<a name="l00008"></a>00008 <span class="comment"> * of this software and associated documentation files (the "Software"), to deal</span>
|
34
|
+
<a name="l00009"></a>00009 <span class="comment"> * in the Software without restriction, including without limitation the rights</span>
|
35
|
+
<a name="l00010"></a>00010 <span class="comment"> * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell</span>
|
36
|
+
<a name="l00011"></a>00011 <span class="comment"> * copies of the Software, and to permit persons to whom the Software is</span>
|
37
|
+
<a name="l00012"></a>00012 <span class="comment"> * furnished to do so, subject to the following conditions:</span>
|
38
|
+
<a name="l00013"></a>00013 <span class="comment"> *</span>
|
39
|
+
<a name="l00014"></a>00014 <span class="comment"> * The above copyright notice and this permission notice shall be included in</span>
|
40
|
+
<a name="l00015"></a>00015 <span class="comment"> * all copies or substantial portions of the Software.</span>
|
41
|
+
<a name="l00016"></a>00016 <span class="comment"> *</span>
|
42
|
+
<a name="l00017"></a>00017 <span class="comment"> * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR</span>
|
43
|
+
<a name="l00018"></a>00018 <span class="comment"> * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,</span>
|
44
|
+
<a name="l00019"></a>00019 <span class="comment"> * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE</span>
|
45
|
+
<a name="l00020"></a>00020 <span class="comment"> * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER</span>
|
46
|
+
<a name="l00021"></a>00021 <span class="comment"> * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,</span>
|
47
|
+
<a name="l00022"></a>00022 <span class="comment"> * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN</span>
|
48
|
+
<a name="l00023"></a>00023 <span class="comment"> * THE SOFTWARE.</span>
|
49
|
+
<a name="l00024"></a>00024 <span class="comment"> */</span>
|
50
|
+
<a name="l00025"></a>00025 <span class="preprocessor">#ifndef _PASSENGER_CONFIGURATION_H_</span>
|
51
|
+
<a name="l00026"></a>00026 <span class="preprocessor"></span><span class="preprocessor">#define _PASSENGER_CONFIGURATION_H_</span>
|
52
|
+
<a name="l00027"></a>00027 <span class="preprocessor"></span>
|
53
|
+
<a name="l00028"></a>00028 <span class="preprocessor">#include <apr_pools.h></span>
|
54
|
+
<a name="l00029"></a>00029 <span class="preprocessor">#include <httpd.h></span>
|
55
|
+
<a name="l00030"></a>00030 <span class="preprocessor">#include <http_config.h></span>
|
56
|
+
<a name="l00031"></a>00031
|
57
|
+
<a name="l00032"></a>00032 <span class="preprocessor">#ifdef __cplusplus</span>
|
58
|
+
<a name="l00033"></a>00033 <span class="preprocessor"></span> <span class="keyword">extern</span> <span class="stringliteral">"C"</span> {
|
59
|
+
<a name="l00034"></a>00034 <span class="preprocessor">#endif</span>
|
60
|
+
<a name="l00035"></a>00035 <span class="preprocessor"></span>
|
61
|
+
<a name="l00036"></a>00036 <span class="comment"></span>
|
62
|
+
<a name="l00037"></a>00037 <span class="comment">/** Configuration hook for per-directory configuration structure creation. */</span>
|
63
|
+
<a name="l00038"></a>00038 <span class="keywordtype">void</span> *passenger_config_create_dir(apr_pool_t *p, <span class="keywordtype">char</span> *dirspec);
|
64
|
+
<a name="l00039"></a>00039 <span class="comment"></span>
|
65
|
+
<a name="l00040"></a>00040 <span class="comment">/** Configuration hook for per-directory configuration structure merging. */</span>
|
66
|
+
<a name="l00041"></a>00041 <span class="keywordtype">void</span> *passenger_config_merge_dir(apr_pool_t *p, <span class="keywordtype">void</span> *basev, <span class="keywordtype">void</span> *addv);
|
67
|
+
<a name="l00042"></a>00042 <span class="comment"></span>
|
68
|
+
<a name="l00043"></a>00043 <span class="comment">/** Apache module commands array. */</span>
|
69
|
+
<a name="l00044"></a>00044 <span class="keyword">extern</span> <span class="keyword">const</span> command_rec passenger_commands[];
|
70
|
+
<a name="l00045"></a>00045
|
71
|
+
<a name="l00046"></a>00046
|
72
|
+
<a name="l00047"></a>00047 <span class="preprocessor">#ifdef __cplusplus</span>
|
73
|
+
<a name="l00048"></a>00048 <span class="preprocessor"></span> }
|
74
|
+
<a name="l00049"></a>00049 <span class="preprocessor">#endif</span>
|
75
|
+
<a name="l00050"></a>00050 <span class="preprocessor"></span>
|
76
|
+
<a name="l00051"></a>00051 <span class="preprocessor">#endif </span><span class="comment">/* _PASSENGER_CONFIGURATION_H_ */</span>
|
77
|
+
</pre></div></div>
|
78
|
+
<hr size="1"/><address style="text-align: right;"><small>Generated by
|
79
|
+
<a href="http://www.doxygen.org/index.html">
|
80
|
+
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2 </small></address>
|
81
|
+
</body>
|
82
|
+
</html>
|
@@ -1,10 +1,13 @@
|
|
1
|
-
<!DOCTYPE
|
2
|
-
<html
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
2
|
+
<html xmlns="http://www.w3.org/1999/xhtml">
|
3
|
+
<head>
|
4
|
+
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
3
5
|
<title>Passenger: Member List</title>
|
4
|
-
<link href="tabs.css" rel="stylesheet" type="text/css"
|
5
|
-
<link href="doxygen.css" rel="stylesheet" type="text/css"
|
6
|
-
</head
|
7
|
-
|
6
|
+
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
7
|
+
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
8
|
+
</head>
|
9
|
+
<body>
|
10
|
+
<!-- Generated by Doxygen 1.6.2 -->
|
8
11
|
<div class="navigation" id="top">
|
9
12
|
<div class="tabs">
|
10
13
|
<ul>
|
@@ -24,27 +27,28 @@
|
|
24
27
|
</div>
|
25
28
|
</div>
|
26
29
|
<div class="contents">
|
27
|
-
<h1>AgentWatcher Member List</h1>This is the complete list of members for <a class="el" href="classAgentWatcher.html">AgentWatcher</a>, including all inherited members.<
|
28
|
-
<tr class="memlist"><td><a class="el" href="classAgentWatcher.html#
|
29
|
-
<tr class="memlist"><td><a class="el" href="classAgentWatcher.html#
|
30
|
-
<tr class="memlist"><td><a class="el" href="classAgentWatcher.html#
|
31
|
-
<tr class="memlist"><td><a class="el" href="classAgentWatcher.html#
|
32
|
-
<tr class="memlist"><td><a class="el" href="classAgentWatcher.html#
|
33
|
-
<tr class="memlist"><td><a class="el" href="classAgentWatcher.html#
|
34
|
-
<tr class="memlist"><td><a class="el" href="classAgentWatcher.html#
|
35
|
-
<tr class="memlist"><td><a class="el" href="classAgentWatcher.html#
|
36
|
-
<tr class="memlist"><td><a class="el" href="classAgentWatcher.html#
|
37
|
-
<tr class="memlist"><td><a class="el" href="classAgentWatcher.html#
|
38
|
-
<tr class="memlist"><td><a class="el" href="classAgentWatcher.html#
|
39
|
-
<tr class="memlist"><td><a class="el" href="classAgentWatcher.html#
|
40
|
-
<tr class="memlist"><td><a class="el" href="classAgentWatcher.html#
|
41
|
-
<tr class="memlist"><td><a class="el" href="classAgentWatcher.html#
|
42
|
-
<tr class="memlist"><td><a class="el" href="classAgentWatcher.html#
|
43
|
-
<tr class="memlist"><td><a class="el" href="classAgentWatcher.html#
|
44
|
-
<tr class="memlist"><td><a class="el" href="classAgentWatcher.html#
|
30
|
+
<h1>AgentWatcher Member List</h1>This is the complete list of members for <a class="el" href="classAgentWatcher.html">AgentWatcher</a>, including all inherited members.<table>
|
31
|
+
<tr class="memlist"><td><a class="el" href="classAgentWatcher.html#ac6325cb940f9c25ef2f44aca00c30755">execProgram</a>() const </td><td><a class="el" href="classAgentWatcher.html">AgentWatcher</a></td><td><code> [inline, protected, virtual]</code></td></tr>
|
32
|
+
<tr class="memlist"><td><a class="el" href="classAgentWatcher.html#aa3eba8fe19117a84764f5f653a03612d">feedbackFd</a></td><td><a class="el" href="classAgentWatcher.html">AgentWatcher</a></td><td><code> [protected]</code></td></tr>
|
33
|
+
<tr class="memlist"><td><a class="el" href="classAgentWatcher.html#ae65876d2cc680b739dfee02378233340">forceShutdown</a>()</td><td><a class="el" href="classAgentWatcher.html">AgentWatcher</a></td><td><code> [inline, virtual]</code></td></tr>
|
34
|
+
<tr class="memlist"><td><a class="el" href="classAgentWatcher.html#a80ef9eaf1a84d994e7ba5f1507616fde">getErrorBacktrace</a>() const </td><td><a class="el" href="classAgentWatcher.html">AgentWatcher</a></td><td><code> [inline]</code></td></tr>
|
35
|
+
<tr class="memlist"><td><a class="el" href="classAgentWatcher.html#ab99d4346d7b69d86db1b14206e7caadb">getErrorMessage</a>() const </td><td><a class="el" href="classAgentWatcher.html">AgentWatcher</a></td><td><code> [inline]</code></td></tr>
|
36
|
+
<tr class="memlist"><td><a class="el" href="classAgentWatcher.html#a77279925d786a774bdf097468c36af96">getExeFilename</a>() const =0</td><td><a class="el" href="classAgentWatcher.html">AgentWatcher</a></td><td><code> [protected, pure virtual]</code></td></tr>
|
37
|
+
<tr class="memlist"><td><a class="el" href="classAgentWatcher.html#ac0749ab103ed5d1adc81b53a7ddc93d8">getFeedbackFd</a>() const </td><td><a class="el" href="classAgentWatcher.html">AgentWatcher</a></td><td><code> [inline]</code></td></tr>
|
38
|
+
<tr class="memlist"><td><a class="el" href="classAgentWatcher.html#a9c50694046e32a8b900420cb473e9e16">killAndWait</a>(pid_t pid)</td><td><a class="el" href="classAgentWatcher.html">AgentWatcher</a></td><td><code> [inline, protected, static]</code></td></tr>
|
39
|
+
<tr class="memlist"><td><a class="el" href="classAgentWatcher.html#a22ad2ee317c4e254833ab07f377ed7fd">lock</a></td><td><a class="el" href="classAgentWatcher.html">AgentWatcher</a></td><td><code> [mutable, protected]</code></td></tr>
|
40
|
+
<tr class="memlist"><td><a class="el" href="classAgentWatcher.html#a982a388ed5c485ab9615c5bc0abbc71e">name</a>() const =0</td><td><a class="el" href="classAgentWatcher.html">AgentWatcher</a></td><td><code> [pure virtual]</code></td></tr>
|
41
|
+
<tr class="memlist"><td><a class="el" href="classAgentWatcher.html#a76de201bbc7111c01c31668211494fa8">pid</a></td><td><a class="el" href="classAgentWatcher.html">AgentWatcher</a></td><td><code> [protected]</code></td></tr>
|
42
|
+
<tr class="memlist"><td><a class="el" href="classAgentWatcher.html#a4c1c454374c8916788fee166beacfb05">processStartupInfo</a>(pid_t pid, FileDescriptor &fd, const vector< string > &args)=0</td><td><a class="el" href="classAgentWatcher.html">AgentWatcher</a></td><td><code> [protected, pure virtual]</code></td></tr>
|
43
|
+
<tr class="memlist"><td><a class="el" href="classAgentWatcher.html#a45bc0e41253a0c287e14f708f7dba1e6">sendStartupArguments</a>(pid_t pid, FileDescriptor &fd)=0</td><td><a class="el" href="classAgentWatcher.html">AgentWatcher</a></td><td><code> [protected, pure virtual]</code></td></tr>
|
44
|
+
<tr class="memlist"><td><a class="el" href="classAgentWatcher.html#aa9f83ed13b06ef80d0417f9c313cf61e">sendStartupInfo</a>(MessageChannel &channel)=0</td><td><a class="el" href="classAgentWatcher.html">AgentWatcher</a></td><td><code> [pure virtual]</code></td></tr>
|
45
|
+
<tr class="memlist"><td><a class="el" href="classAgentWatcher.html#adaf1c0a7104aea662d90f639066b8247">start</a>()</td><td><a class="el" href="classAgentWatcher.html">AgentWatcher</a></td><td><code> [inline, virtual]</code></td></tr>
|
46
|
+
<tr class="memlist"><td><a class="el" href="classAgentWatcher.html#a3da11d23ed3b1210a24844856b7f3159">startWatching</a>()</td><td><a class="el" href="classAgentWatcher.html">AgentWatcher</a></td><td><code> [inline, virtual]</code></td></tr>
|
47
|
+
<tr class="memlist"><td><a class="el" href="classAgentWatcher.html#ac4fa4122858073a1e3e1d96ce2ade6f2">threadExceptionMessage</a></td><td><a class="el" href="classAgentWatcher.html">AgentWatcher</a></td><td><code> [protected]</code></td></tr>
|
48
|
+
<tr class="memlist"><td><a class="el" href="classAgentWatcher.html#a231e843bd6d916650f7e7a641c5b4ca4">timedWaitPid</a>(pid_t pid, int *status, unsigned long long timeout)</td><td><a class="el" href="classAgentWatcher.html">AgentWatcher</a></td><td><code> [inline, protected, static]</code></td></tr>
|
45
49
|
</table></div>
|
46
|
-
<hr size="1"
|
50
|
+
<hr size="1"/><address style="text-align: right;"><small>Generated by
|
47
51
|
<a href="http://www.doxygen.org/index.html">
|
48
|
-
<img src="doxygen.png" alt="doxygen"
|
52
|
+
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2 </small></address>
|
49
53
|
</body>
|
50
54
|
</html>
|
@@ -1,10 +1,13 @@
|
|
1
|
-
<!DOCTYPE
|
2
|
-
<html
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
2
|
+
<html xmlns="http://www.w3.org/1999/xhtml">
|
3
|
+
<head>
|
4
|
+
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
3
5
|
<title>Passenger: AgentWatcher Class Reference</title>
|
4
|
-
<link href="tabs.css" rel="stylesheet" type="text/css"
|
5
|
-
<link href="doxygen.css" rel="stylesheet" type="text/css"
|
6
|
-
</head
|
7
|
-
|
6
|
+
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
7
|
+
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
8
|
+
</head>
|
9
|
+
<body>
|
10
|
+
<!-- Generated by Doxygen 1.6.2 -->
|
8
11
|
<div class="navigation" id="top">
|
9
12
|
<div class="tabs">
|
10
13
|
<ul>
|
@@ -24,82 +27,69 @@
|
|
24
27
|
</div>
|
25
28
|
</div>
|
26
29
|
<div class="contents">
|
27
|
-
<h1>AgentWatcher Class Reference</h1><!-- doxytag: class="AgentWatcher" -->
|
28
|
-
<
|
29
|
-
<p>
|
30
|
-
|
31
|
-
<p>
|
32
|
-
|
33
|
-
<p>
|
34
|
-
<
|
35
|
-
<tr><td></td></tr>
|
36
|
-
<tr><td
|
37
|
-
<tr><td class="
|
38
|
-
|
39
|
-
<tr><td class="mdescLeft"> </td><td class="mdescRight">
|
40
|
-
<tr><td class="memItemLeft"
|
41
|
-
|
42
|
-
<tr><td class="
|
43
|
-
<tr><td class="
|
44
|
-
|
45
|
-
<tr><td class="mdescLeft"> </td><td class="mdescRight">
|
46
|
-
<tr><td class="memItemLeft"
|
47
|
-
|
48
|
-
<tr><td class="
|
49
|
-
|
50
|
-
|
51
|
-
<tr><td class="
|
52
|
-
<tr><td class="
|
53
|
-
|
54
|
-
<tr><td class="
|
55
|
-
<tr><td class="
|
56
|
-
|
57
|
-
|
58
|
-
<tr><td class="
|
59
|
-
<tr><td class="
|
60
|
-
|
61
|
-
<tr><td class="mdescLeft"> </td><td class="mdescRight">
|
62
|
-
<tr><td colspan="2"><
|
63
|
-
<tr><td class="memItemLeft"
|
64
|
-
|
65
|
-
<tr><td class="
|
66
|
-
|
67
|
-
|
68
|
-
<tr><td
|
69
|
-
<tr><td class="memItemLeft"
|
70
|
-
|
71
|
-
<tr><td class="
|
72
|
-
<tr><td class="
|
73
|
-
|
74
|
-
<tr><td class="mdescLeft"> </td><td class="mdescRight">
|
75
|
-
<tr><td class="memItemLeft"
|
76
|
-
|
77
|
-
<tr><td class="mdescLeft"> </td><td class="mdescRight">
|
78
|
-
<tr><td colspan="2"><br><h2>Protected Attributes</h2></td></tr>
|
79
|
-
<tr><td class="memItemLeft" nowrap align="right" valign="top">pid_t </td><td class="memItemRight" valign="bottom"><a class="el" href="classAgentWatcher.html#76de201bbc7111c01c31668211494fa8">pid</a></td></tr>
|
80
|
-
|
81
|
-
<tr><td class="mdescLeft"> </td><td class="mdescRight">PID of the process we're watching. <a href="#76de201bbc7111c01c31668211494fa8"></a><br></td></tr>
|
82
|
-
<tr><td class="memItemLeft" nowrap align="right" valign="top">string </td><td class="memItemRight" valign="bottom"><a class="el" href="classAgentWatcher.html#c4fa4122858073a1e3e1d96ce2ade6f2">threadExceptionMessage</a></td></tr>
|
83
|
-
|
84
|
-
<tr><td class="mdescLeft"> </td><td class="mdescRight">If the watcher thread threw an uncaught exception then its information will be stored here so that the main thread can check whether a watcher encountered an error. <a href="#c4fa4122858073a1e3e1d96ce2ade6f2"></a><br></td></tr>
|
85
|
-
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classPassenger_1_1FileDescriptor.html">FileDescriptor</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classAgentWatcher.html#a3eba8fe19117a84764f5f653a03612d">feedbackFd</a></td></tr>
|
86
|
-
|
87
|
-
<tr><td class="mdescLeft"> </td><td class="mdescRight">The agent process's feedback fd. <a href="#a3eba8fe19117a84764f5f653a03612d"></a><br></td></tr>
|
88
|
-
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="22ad2ee317c4e254833ab07f377ed7fd"></a><!-- doxytag: member="AgentWatcher::lock" ref="22ad2ee317c4e254833ab07f377ed7fd" args="" -->
|
89
|
-
boost::mutex </td><td class="memItemRight" valign="bottom"><a class="el" href="classAgentWatcher.html#22ad2ee317c4e254833ab07f377ed7fd">lock</a></td></tr>
|
90
|
-
|
91
|
-
<tr><td class="mdescLeft"> </td><td class="mdescRight">Lock for protecting the exchange of data between the main thread and the watcher thread. <br></td></tr>
|
30
|
+
<h1>AgentWatcher Class Reference</h1><!-- doxytag: class="AgentWatcher" -->
|
31
|
+
<p>Abstract base class for watching agent processes.
|
32
|
+
<a href="#_details">More...</a></p>
|
33
|
+
|
34
|
+
<p>Inherited by HelperAgentWatcher, and LoggingAgentWatcher.</p>
|
35
|
+
|
36
|
+
<p><a href="classAgentWatcher-members.html">List of all members.</a></p>
|
37
|
+
<table border="0" cellpadding="0" cellspacing="0">
|
38
|
+
<tr><td colspan="2"><h2>Public Member Functions</h2></td></tr>
|
39
|
+
<tr><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classAgentWatcher.html#aa9f83ed13b06ef80d0417f9c313cf61e">sendStartupInfo</a> (<a class="el" href="classPassenger_1_1MessageChannel.html">MessageChannel</a> &channel)=0</td></tr>
|
40
|
+
<tr><td class="mdescLeft"> </td><td class="mdescRight">Send the started agent process's startup information over the given channel, to the starter process. <a href="#aa9f83ed13b06ef80d0417f9c313cf61e"></a><br/></td></tr>
|
41
|
+
<tr><td class="memItemLeft" align="right" valign="top">virtual const char * </td><td class="memItemRight" valign="bottom"><a class="el" href="classAgentWatcher.html#a982a388ed5c485ab9615c5bc0abbc71e">name</a> () const =0</td></tr>
|
42
|
+
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the name of the agent that this class is watching. <a href="#a982a388ed5c485ab9615c5bc0abbc71e"></a><br/></td></tr>
|
43
|
+
<tr><td class="memItemLeft" align="right" valign="top">virtual pid_t </td><td class="memItemRight" valign="bottom"><a class="el" href="classAgentWatcher.html#adaf1c0a7104aea662d90f639066b8247">start</a> ()</td></tr>
|
44
|
+
<tr><td class="mdescLeft"> </td><td class="mdescRight">Starts the agent process. <a href="#adaf1c0a7104aea662d90f639066b8247"></a><br/></td></tr>
|
45
|
+
<tr><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classAgentWatcher.html#a3da11d23ed3b1210a24844856b7f3159">startWatching</a> ()</td></tr>
|
46
|
+
<tr><td class="mdescLeft"> </td><td class="mdescRight">Start watching the agent process. <a href="#a3da11d23ed3b1210a24844856b7f3159"></a><br/></td></tr>
|
47
|
+
<tr><td class="memItemLeft" align="right" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classAgentWatcher.html#ae65876d2cc680b739dfee02378233340">forceShutdown</a> ()</td></tr>
|
48
|
+
<tr><td class="mdescLeft"> </td><td class="mdescRight">Force the agent process to shut down. <a href="#ae65876d2cc680b739dfee02378233340"></a><br/></td></tr>
|
49
|
+
<tr><td class="memItemLeft" align="right" valign="top">string </td><td class="memItemRight" valign="bottom"><a class="el" href="classAgentWatcher.html#ab99d4346d7b69d86db1b14206e7caadb">getErrorMessage</a> () const </td></tr>
|
50
|
+
<tr><td class="mdescLeft"> </td><td class="mdescRight">If the watcher thread has encountered an error, then the error message will be stored here. <a href="#ab99d4346d7b69d86db1b14206e7caadb"></a><br/></td></tr>
|
51
|
+
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a80ef9eaf1a84d994e7ba5f1507616fde"></a><!-- doxytag: member="AgentWatcher::getErrorBacktrace" ref="a80ef9eaf1a84d994e7ba5f1507616fde" args="() const " -->
|
52
|
+
string </td><td class="memItemRight" valign="bottom"><a class="el" href="classAgentWatcher.html#a80ef9eaf1a84d994e7ba5f1507616fde">getErrorBacktrace</a> () const </td></tr>
|
53
|
+
<tr><td class="mdescLeft"> </td><td class="mdescRight">The error backtrace, if applicable. <br/></td></tr>
|
54
|
+
<tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classPassenger_1_1FileDescriptor.html">FileDescriptor</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classAgentWatcher.html#ac0749ab103ed5d1adc81b53a7ddc93d8">getFeedbackFd</a> () const </td></tr>
|
55
|
+
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the agent process feedback fd, or NULL if the agent process hasn't been started yet. <a href="#ac0749ab103ed5d1adc81b53a7ddc93d8"></a><br/></td></tr>
|
56
|
+
<tr><td colspan="2"><h2>Protected Member Functions</h2></td></tr>
|
57
|
+
<tr><td class="memItemLeft" align="right" valign="top">virtual string </td><td class="memItemRight" valign="bottom"><a class="el" href="classAgentWatcher.html#a77279925d786a774bdf097468c36af96">getExeFilename</a> () const =0</td></tr>
|
58
|
+
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the filename of the agent process's executable. <a href="#a77279925d786a774bdf097468c36af96"></a><br/></td></tr>
|
59
|
+
<tr><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classAgentWatcher.html#ac6325cb940f9c25ef2f44aca00c30755">execProgram</a> () const </td></tr>
|
60
|
+
<tr><td class="mdescLeft"> </td><td class="mdescRight">This method is to exec() the agent with the right arguments. <a href="#ac6325cb940f9c25ef2f44aca00c30755"></a><br/></td></tr>
|
61
|
+
<tr><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classAgentWatcher.html#a45bc0e41253a0c287e14f708f7dba1e6">sendStartupArguments</a> (pid_t <a class="el" href="classAgentWatcher.html#a76de201bbc7111c01c31668211494fa8">pid</a>, <a class="el" href="classPassenger_1_1FileDescriptor.html">FileDescriptor</a> &fd)=0</td></tr>
|
62
|
+
<tr><td class="mdescLeft"> </td><td class="mdescRight">This method is to send startup arguments to the agent process through the given file descriptor, which is the agent process's feedback fd. <a href="#a45bc0e41253a0c287e14f708f7dba1e6"></a><br/></td></tr>
|
63
|
+
<tr><td class="memItemLeft" align="right" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classAgentWatcher.html#a4c1c454374c8916788fee166beacfb05">processStartupInfo</a> (pid_t <a class="el" href="classAgentWatcher.html#a76de201bbc7111c01c31668211494fa8">pid</a>, <a class="el" href="classPassenger_1_1FileDescriptor.html">FileDescriptor</a> &fd, const vector< string > &args)=0</td></tr>
|
64
|
+
<tr><td class="mdescLeft"> </td><td class="mdescRight">This method is to process the startup info that the agent process has sent back. <a href="#a4c1c454374c8916788fee166beacfb05"></a><br/></td></tr>
|
65
|
+
<tr><td colspan="2"><h2>Static Protected Member Functions</h2></td></tr>
|
66
|
+
<tr><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="classAgentWatcher.html#a9c50694046e32a8b900420cb473e9e16">killAndWait</a> (pid_t <a class="el" href="classAgentWatcher.html#a76de201bbc7111c01c31668211494fa8">pid</a>)</td></tr>
|
67
|
+
<tr><td class="mdescLeft"> </td><td class="mdescRight">Kill a process with SIGKILL, and attempt to kill its children too. <a href="#a9c50694046e32a8b900420cb473e9e16"></a><br/></td></tr>
|
68
|
+
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a231e843bd6d916650f7e7a641c5b4ca4"></a><!-- doxytag: member="AgentWatcher::timedWaitPid" ref="a231e843bd6d916650f7e7a641c5b4ca4" args="(pid_t pid, int *status, unsigned long long timeout)" -->
|
69
|
+
static int </td><td class="memItemRight" valign="bottom"><a class="el" href="classAgentWatcher.html#a231e843bd6d916650f7e7a641c5b4ca4">timedWaitPid</a> (pid_t <a class="el" href="classAgentWatcher.html#a76de201bbc7111c01c31668211494fa8">pid</a>, int *status, unsigned long long timeout)</td></tr>
|
70
|
+
<tr><td class="mdescLeft"> </td><td class="mdescRight">Behaves like <code>waitpid(pid, status, WNOHANG)</code>, but waits at most <em>timeout</em> miliseconds for the process to exit. <br/></td></tr>
|
71
|
+
<tr><td colspan="2"><h2>Protected Attributes</h2></td></tr>
|
72
|
+
<tr><td class="memItemLeft" align="right" valign="top">pid_t </td><td class="memItemRight" valign="bottom"><a class="el" href="classAgentWatcher.html#a76de201bbc7111c01c31668211494fa8">pid</a></td></tr>
|
73
|
+
<tr><td class="mdescLeft"> </td><td class="mdescRight">PID of the process we're watching. <a href="#a76de201bbc7111c01c31668211494fa8"></a><br/></td></tr>
|
74
|
+
<tr><td class="memItemLeft" align="right" valign="top">string </td><td class="memItemRight" valign="bottom"><a class="el" href="classAgentWatcher.html#ac4fa4122858073a1e3e1d96ce2ade6f2">threadExceptionMessage</a></td></tr>
|
75
|
+
<tr><td class="mdescLeft"> </td><td class="mdescRight">If the watcher thread threw an uncaught exception then its information will be stored here so that the main thread can check whether a watcher encountered an error. <a href="#ac4fa4122858073a1e3e1d96ce2ade6f2"></a><br/></td></tr>
|
76
|
+
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classPassenger_1_1FileDescriptor.html">FileDescriptor</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classAgentWatcher.html#aa3eba8fe19117a84764f5f653a03612d">feedbackFd</a></td></tr>
|
77
|
+
<tr><td class="mdescLeft"> </td><td class="mdescRight">The agent process's feedback fd. <a href="#aa3eba8fe19117a84764f5f653a03612d"></a><br/></td></tr>
|
78
|
+
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a22ad2ee317c4e254833ab07f377ed7fd"></a><!-- doxytag: member="AgentWatcher::lock" ref="a22ad2ee317c4e254833ab07f377ed7fd" args="" -->
|
79
|
+
boost::mutex </td><td class="memItemRight" valign="bottom"><a class="el" href="classAgentWatcher.html#a22ad2ee317c4e254833ab07f377ed7fd">lock</a></td></tr>
|
80
|
+
<tr><td class="mdescLeft"> </td><td class="mdescRight">Lock for protecting the exchange of data between the main thread and the watcher thread. <br/></td></tr>
|
92
81
|
</table>
|
93
|
-
<hr
|
94
|
-
Abstract base class for watching agent processes.
|
95
|
-
<
|
82
|
+
<hr/><a name="_details"></a><h2>Detailed Description</h2>
|
83
|
+
<p>Abstract base class for watching agent processes. </p>
|
84
|
+
<hr/><h2>Member Function Documentation</h2>
|
85
|
+
<a class="anchor" id="ac6325cb940f9c25ef2f44aca00c30755"></a><!-- doxytag: member="AgentWatcher::execProgram" ref="ac6325cb940f9c25ef2f44aca00c30755" args="() const " -->
|
96
86
|
<div class="memitem">
|
97
87
|
<div class="memproto">
|
98
88
|
<table class="memname">
|
99
89
|
<tr>
|
100
|
-
<td class="memname">virtual void AgentWatcher::execProgram
|
90
|
+
<td class="memname">virtual void AgentWatcher::execProgram </td>
|
101
91
|
<td>(</td>
|
102
|
-
<td class="paramname"
|
92
|
+
<td class="paramname"></td>
|
103
93
|
<td> ) </td>
|
104
94
|
<td> const<code> [inline, protected, virtual]</code></td>
|
105
95
|
</tr>
|
@@ -107,20 +97,19 @@ Abstract base class for watching agent processes. <hr><h2>Member Function Docume
|
|
107
97
|
</div>
|
108
98
|
<div class="memdoc">
|
109
99
|
|
110
|
-
<p>
|
111
|
-
|
112
|
-
|
113
|
-
|
100
|
+
<p>This method is to exec() the agent with the right arguments. </p>
|
101
|
+
<p>It is called from within a forked child process, so don't do any dynamic memory allocations in here. It must also not throw any exceptions. It must also preserve the value of errno after exec() is called. </p>
|
102
|
+
|
103
|
+
</div>
|
114
104
|
</div>
|
115
|
-
|
116
|
-
<a class="anchor" name="e65876d2cc680b739dfee02378233340"></a><!-- doxytag: member="AgentWatcher::forceShutdown" ref="e65876d2cc680b739dfee02378233340" args="()" -->
|
105
|
+
<a class="anchor" id="ae65876d2cc680b739dfee02378233340"></a><!-- doxytag: member="AgentWatcher::forceShutdown" ref="ae65876d2cc680b739dfee02378233340" args="()" -->
|
117
106
|
<div class="memitem">
|
118
107
|
<div class="memproto">
|
119
108
|
<table class="memname">
|
120
109
|
<tr>
|
121
|
-
<td class="memname">virtual bool AgentWatcher::forceShutdown
|
110
|
+
<td class="memname">virtual bool AgentWatcher::forceShutdown </td>
|
122
111
|
<td>(</td>
|
123
|
-
<td class="paramname"
|
112
|
+
<td class="paramname"></td>
|
124
113
|
<td> ) </td>
|
125
114
|
<td><code> [inline, virtual]</code></td>
|
126
115
|
</tr>
|
@@ -128,20 +117,19 @@ It is called from within a forked child process, so don't do any dynamic memory
|
|
128
117
|
</div>
|
129
118
|
<div class="memdoc">
|
130
119
|
|
131
|
-
<p>
|
132
|
-
|
133
|
-
|
134
|
-
|
120
|
+
<p>Force the agent process to shut down. </p>
|
121
|
+
<p>Returns true if it was shut down, or false if it wasn't started. </p>
|
122
|
+
|
123
|
+
</div>
|
135
124
|
</div>
|
136
|
-
|
137
|
-
<a class="anchor" name="b99d4346d7b69d86db1b14206e7caadb"></a><!-- doxytag: member="AgentWatcher::getErrorMessage" ref="b99d4346d7b69d86db1b14206e7caadb" args="() const " -->
|
125
|
+
<a class="anchor" id="ab99d4346d7b69d86db1b14206e7caadb"></a><!-- doxytag: member="AgentWatcher::getErrorMessage" ref="ab99d4346d7b69d86db1b14206e7caadb" args="() const " -->
|
138
126
|
<div class="memitem">
|
139
127
|
<div class="memproto">
|
140
128
|
<table class="memname">
|
141
129
|
<tr>
|
142
|
-
<td class="memname">string AgentWatcher::getErrorMessage
|
130
|
+
<td class="memname">string AgentWatcher::getErrorMessage </td>
|
143
131
|
<td>(</td>
|
144
|
-
<td class="paramname"
|
132
|
+
<td class="paramname"></td>
|
145
133
|
<td> ) </td>
|
146
134
|
<td> const<code> [inline]</code></td>
|
147
135
|
</tr>
|
@@ -149,20 +137,19 @@ Returns true if it was shut down, or false if it wasn't started.
|
|
149
137
|
</div>
|
150
138
|
<div class="memdoc">
|
151
139
|
|
152
|
-
<p>
|
153
|
-
If the
|
154
|
-
|
155
|
-
|
140
|
+
<p>If the watcher thread has encountered an error, then the error message will be stored here. </p>
|
141
|
+
<p>If the error message is empty then it means everything is still OK. </p>
|
142
|
+
|
143
|
+
</div>
|
156
144
|
</div>
|
157
|
-
|
158
|
-
<a class="anchor" name="77279925d786a774bdf097468c36af96"></a><!-- doxytag: member="AgentWatcher::getExeFilename" ref="77279925d786a774bdf097468c36af96" args="() const =0" -->
|
145
|
+
<a class="anchor" id="a77279925d786a774bdf097468c36af96"></a><!-- doxytag: member="AgentWatcher::getExeFilename" ref="a77279925d786a774bdf097468c36af96" args="() const =0" -->
|
159
146
|
<div class="memitem">
|
160
147
|
<div class="memproto">
|
161
148
|
<table class="memname">
|
162
149
|
<tr>
|
163
|
-
<td class="memname">virtual string AgentWatcher::getExeFilename
|
150
|
+
<td class="memname">virtual string AgentWatcher::getExeFilename </td>
|
164
151
|
<td>(</td>
|
165
|
-
<td class="paramname"
|
152
|
+
<td class="paramname"></td>
|
166
153
|
<td> ) </td>
|
167
154
|
<td> const<code> [protected, pure virtual]</code></td>
|
168
155
|
</tr>
|
@@ -170,20 +157,19 @@ If the error message is empty then it means everything is still OK.
|
|
170
157
|
</div>
|
171
158
|
<div class="memdoc">
|
172
159
|
|
173
|
-
<p>
|
174
|
-
|
175
|
-
|
176
|
-
This method may be called in a forked child process and may therefore not allocate memory.
|
160
|
+
<p>Returns the filename of the agent process's executable. </p>
|
161
|
+
<p>This method may be called in a forked child process and may therefore not allocate memory. </p>
|
162
|
+
|
177
163
|
</div>
|
178
|
-
</div
|
179
|
-
<a class="anchor"
|
164
|
+
</div>
|
165
|
+
<a class="anchor" id="ac0749ab103ed5d1adc81b53a7ddc93d8"></a><!-- doxytag: member="AgentWatcher::getFeedbackFd" ref="ac0749ab103ed5d1adc81b53a7ddc93d8" args="() const " -->
|
180
166
|
<div class="memitem">
|
181
167
|
<div class="memproto">
|
182
168
|
<table class="memname">
|
183
169
|
<tr>
|
184
|
-
<td class="memname">const <a class="el" href="classPassenger_1_1FileDescriptor.html">FileDescriptor</a> AgentWatcher::getFeedbackFd
|
170
|
+
<td class="memname">const <a class="el" href="classPassenger_1_1FileDescriptor.html">FileDescriptor</a> AgentWatcher::getFeedbackFd </td>
|
185
171
|
<td>(</td>
|
186
|
-
<td class="paramname"
|
172
|
+
<td class="paramname"></td>
|
187
173
|
<td> ) </td>
|
188
174
|
<td> const<code> [inline]</code></td>
|
189
175
|
</tr>
|
@@ -191,42 +177,40 @@ This method may be called in a forked child process and may therefore not alloca
|
|
191
177
|
</div>
|
192
178
|
<div class="memdoc">
|
193
179
|
|
194
|
-
<p>
|
195
|
-
|
196
|
-
|
197
|
-
|
180
|
+
<p>Returns the agent process feedback fd, or NULL if the agent process hasn't been started yet. </p>
|
181
|
+
<p>Can be used to check whether this agent process has exited without using waitpid(). </p>
|
182
|
+
|
183
|
+
</div>
|
198
184
|
</div>
|
199
|
-
|
200
|
-
<a class="anchor" name="a358a05d41db4ddab9696727849e0d4c"></a><!-- doxytag: member="AgentWatcher::killAndWait" ref="a358a05d41db4ddab9696727849e0d4c" args="(pid_t pid)" -->
|
185
|
+
<a class="anchor" id="a9c50694046e32a8b900420cb473e9e16"></a><!-- doxytag: member="AgentWatcher::killAndWait" ref="a9c50694046e32a8b900420cb473e9e16" args="(pid_t pid)" -->
|
201
186
|
<div class="memitem">
|
202
187
|
<div class="memproto">
|
203
188
|
<table class="memname">
|
204
189
|
<tr>
|
205
|
-
<td class="memname">void AgentWatcher::killAndWait
|
190
|
+
<td class="memname">static void AgentWatcher::killAndWait </td>
|
206
191
|
<td>(</td>
|
207
192
|
<td class="paramtype">pid_t </td>
|
208
|
-
<td class="paramname"> <em>pid</em
|
193
|
+
<td class="paramname"> <em>pid</em></td>
|
209
194
|
<td> ) </td>
|
210
|
-
<td><code> [inline, protected]</code></td>
|
195
|
+
<td><code> [inline, static, protected]</code></td>
|
211
196
|
</tr>
|
212
197
|
</table>
|
213
198
|
</div>
|
214
199
|
<div class="memdoc">
|
215
200
|
|
216
|
-
<p>
|
217
|
-
|
218
|
-
|
219
|
-
|
201
|
+
<p>Kill a process with SIGKILL, and attempt to kill its children too. </p>
|
202
|
+
<p>Then wait until it has quit. </p>
|
203
|
+
|
204
|
+
</div>
|
220
205
|
</div>
|
221
|
-
|
222
|
-
<a class="anchor" name="982a388ed5c485ab9615c5bc0abbc71e"></a><!-- doxytag: member="AgentWatcher::name" ref="982a388ed5c485ab9615c5bc0abbc71e" args="() const =0" -->
|
206
|
+
<a class="anchor" id="a982a388ed5c485ab9615c5bc0abbc71e"></a><!-- doxytag: member="AgentWatcher::name" ref="a982a388ed5c485ab9615c5bc0abbc71e" args="() const =0" -->
|
223
207
|
<div class="memitem">
|
224
208
|
<div class="memproto">
|
225
209
|
<table class="memname">
|
226
210
|
<tr>
|
227
|
-
<td class="memname">virtual const char* AgentWatcher::name
|
211
|
+
<td class="memname">virtual const char* AgentWatcher::name </td>
|
228
212
|
<td>(</td>
|
229
|
-
<td class="paramname"
|
213
|
+
<td class="paramname"></td>
|
230
214
|
<td> ) </td>
|
231
215
|
<td> const<code> [pure virtual]</code></td>
|
232
216
|
</tr>
|
@@ -234,18 +218,16 @@ Then wait until it has quit.
|
|
234
218
|
</div>
|
235
219
|
<div class="memdoc">
|
236
220
|
|
237
|
-
<p>
|
238
|
-
Returns the name of the agent that this class is watching.
|
239
|
-
<p>
|
221
|
+
<p>Returns the name of the agent that this class is watching. </p>
|
240
222
|
|
241
223
|
</div>
|
242
|
-
</div
|
243
|
-
<a class="anchor"
|
224
|
+
</div>
|
225
|
+
<a class="anchor" id="a4c1c454374c8916788fee166beacfb05"></a><!-- doxytag: member="AgentWatcher::processStartupInfo" ref="a4c1c454374c8916788fee166beacfb05" args="(pid_t pid, FileDescriptor &fd, const vector< string > &args)=0" -->
|
244
226
|
<div class="memitem">
|
245
227
|
<div class="memproto">
|
246
228
|
<table class="memname">
|
247
229
|
<tr>
|
248
|
-
<td class="memname">virtual bool AgentWatcher::processStartupInfo
|
230
|
+
<td class="memname">virtual bool AgentWatcher::processStartupInfo </td>
|
249
231
|
<td>(</td>
|
250
232
|
<td class="paramtype">pid_t </td>
|
251
233
|
<td class="paramname"> <em>pid</em>, </td>
|
@@ -271,18 +253,17 @@ Returns the name of the agent that this class is watching.
|
|
271
253
|
</div>
|
272
254
|
<div class="memdoc">
|
273
255
|
|
274
|
-
<p>
|
275
|
-
|
276
|
-
|
277
|
-
|
256
|
+
<p>This method is to process the startup info that the agent process has sent back. </p>
|
257
|
+
<p>May throw arbitrary exceptions. </p>
|
258
|
+
|
259
|
+
</div>
|
278
260
|
</div>
|
279
|
-
|
280
|
-
<a class="anchor" name="45bc0e41253a0c287e14f708f7dba1e6"></a><!-- doxytag: member="AgentWatcher::sendStartupArguments" ref="45bc0e41253a0c287e14f708f7dba1e6" args="(pid_t pid, FileDescriptor &fd)=0" -->
|
261
|
+
<a class="anchor" id="a45bc0e41253a0c287e14f708f7dba1e6"></a><!-- doxytag: member="AgentWatcher::sendStartupArguments" ref="a45bc0e41253a0c287e14f708f7dba1e6" args="(pid_t pid, FileDescriptor &fd)=0" -->
|
281
262
|
<div class="memitem">
|
282
263
|
<div class="memproto">
|
283
264
|
<table class="memname">
|
284
265
|
<tr>
|
285
|
-
<td class="memname">virtual void AgentWatcher::sendStartupArguments
|
266
|
+
<td class="memname">virtual void AgentWatcher::sendStartupArguments </td>
|
286
267
|
<td>(</td>
|
287
268
|
<td class="paramtype">pid_t </td>
|
288
269
|
<td class="paramname"> <em>pid</em>, </td>
|
@@ -302,21 +283,20 @@ May throw arbitrary exceptions.
|
|
302
283
|
</div>
|
303
284
|
<div class="memdoc">
|
304
285
|
|
305
|
-
<p>
|
306
|
-
|
307
|
-
|
308
|
-
|
286
|
+
<p>This method is to send startup arguments to the agent process through the given file descriptor, which is the agent process's feedback fd. </p>
|
287
|
+
<p>May throw arbitrary exceptions. </p>
|
288
|
+
|
289
|
+
</div>
|
309
290
|
</div>
|
310
|
-
|
311
|
-
<a class="anchor" name="a9f83ed13b06ef80d0417f9c313cf61e"></a><!-- doxytag: member="AgentWatcher::sendStartupInfo" ref="a9f83ed13b06ef80d0417f9c313cf61e" args="(MessageChannel &channel)=0" -->
|
291
|
+
<a class="anchor" id="aa9f83ed13b06ef80d0417f9c313cf61e"></a><!-- doxytag: member="AgentWatcher::sendStartupInfo" ref="aa9f83ed13b06ef80d0417f9c313cf61e" args="(MessageChannel &channel)=0" -->
|
312
292
|
<div class="memitem">
|
313
293
|
<div class="memproto">
|
314
294
|
<table class="memname">
|
315
295
|
<tr>
|
316
|
-
<td class="memname">virtual void AgentWatcher::sendStartupInfo
|
296
|
+
<td class="memname">virtual void AgentWatcher::sendStartupInfo </td>
|
317
297
|
<td>(</td>
|
318
298
|
<td class="paramtype"><a class="el" href="classPassenger_1_1MessageChannel.html">MessageChannel</a> & </td>
|
319
|
-
<td class="paramname"> <em>channel</em
|
299
|
+
<td class="paramname"> <em>channel</em></td>
|
320
300
|
<td> ) </td>
|
321
301
|
<td><code> [pure virtual]</code></td>
|
322
302
|
</tr>
|
@@ -324,22 +304,20 @@ May throw arbitrary exceptions.
|
|
324
304
|
</div>
|
325
305
|
<div class="memdoc">
|
326
306
|
|
327
|
-
<p>
|
328
|
-
|
329
|
-
<
|
330
|
-
May throw arbitrary exceptions.<p>
|
331
|
-
<dl class="pre" compact><dt><b>Precondition:</b></dt><dd><a class="el" href="classAgentWatcher.html#daf1c0a7104aea662d90f639066b8247" title="Starts the agent process.">start()</a> has been called and succeeded. </dd></dl>
|
307
|
+
<p>Send the started agent process's startup information over the given channel, to the starter process. </p>
|
308
|
+
<p>May throw arbitrary exceptions.</p>
|
309
|
+
<dl class="pre"><dt><b>Precondition:</b></dt><dd><a class="el" href="classAgentWatcher.html#adaf1c0a7104aea662d90f639066b8247" title="Starts the agent process.">start()</a> has been called and succeeded. </dd></dl>
|
332
310
|
|
333
311
|
</div>
|
334
|
-
</div
|
335
|
-
<a class="anchor"
|
312
|
+
</div>
|
313
|
+
<a class="anchor" id="adaf1c0a7104aea662d90f639066b8247"></a><!-- doxytag: member="AgentWatcher::start" ref="adaf1c0a7104aea662d90f639066b8247" args="()" -->
|
336
314
|
<div class="memitem">
|
337
315
|
<div class="memproto">
|
338
316
|
<table class="memname">
|
339
317
|
<tr>
|
340
|
-
<td class="memname">virtual pid_t AgentWatcher::start
|
318
|
+
<td class="memname">virtual pid_t AgentWatcher::start </td>
|
341
319
|
<td>(</td>
|
342
|
-
<td class="paramname"
|
320
|
+
<td class="paramname"></td>
|
343
321
|
<td> ) </td>
|
344
322
|
<td><code> [inline, virtual]</code></td>
|
345
323
|
</tr>
|
@@ -347,20 +325,19 @@ May throw arbitrary exceptions.<p>
|
|
347
325
|
</div>
|
348
326
|
<div class="memdoc">
|
349
327
|
|
350
|
-
<p>
|
351
|
-
|
352
|
-
|
353
|
-
|
328
|
+
<p>Starts the agent process. </p>
|
329
|
+
<p>May throw arbitrary exceptions. </p>
|
330
|
+
|
331
|
+
</div>
|
354
332
|
</div>
|
355
|
-
|
356
|
-
<a class="anchor" name="3da11d23ed3b1210a24844856b7f3159"></a><!-- doxytag: member="AgentWatcher::startWatching" ref="3da11d23ed3b1210a24844856b7f3159" args="()" -->
|
333
|
+
<a class="anchor" id="a3da11d23ed3b1210a24844856b7f3159"></a><!-- doxytag: member="AgentWatcher::startWatching" ref="a3da11d23ed3b1210a24844856b7f3159" args="()" -->
|
357
334
|
<div class="memitem">
|
358
335
|
<div class="memproto">
|
359
336
|
<table class="memname">
|
360
337
|
<tr>
|
361
|
-
<td class="memname">virtual void AgentWatcher::startWatching
|
338
|
+
<td class="memname">virtual void AgentWatcher::startWatching </td>
|
362
339
|
<td>(</td>
|
363
|
-
<td class="paramname"
|
340
|
+
<td class="paramname"></td>
|
364
341
|
<td> ) </td>
|
365
342
|
<td><code> [inline, virtual]</code></td>
|
366
343
|
</tr>
|
@@ -368,78 +345,75 @@ May throw arbitrary exceptions.
|
|
368
345
|
</div>
|
369
346
|
<div class="memdoc">
|
370
347
|
|
371
|
-
<p>
|
372
|
-
|
373
|
-
<
|
374
|
-
<dl class="pre" compact><dt><b>Precondition:</b></dt><dd><a class="el" href="classAgentWatcher.html#daf1c0a7104aea662d90f639066b8247" title="Starts the agent process.">start()</a> has been called and succeeded. <p>
|
348
|
+
<p>Start watching the agent process. </p>
|
349
|
+
<dl class="pre"><dt><b>Precondition:</b></dt><dd><a class="el" href="classAgentWatcher.html#adaf1c0a7104aea662d90f639066b8247" title="Starts the agent process.">start()</a> has been called and succeeded. </dd>
|
350
|
+
<dd>
|
375
351
|
This watcher isn't already watching. </dd></dl>
|
376
|
-
<dl
|
352
|
+
<dl><dt><b>Exceptions:</b></dt><dd>
|
377
353
|
<table border="0" cellspacing="2" cellpadding="0">
|
378
354
|
<tr><td valign="top"></td><td valign="top"><em>RuntimeException</em> </td><td>If a precondition failed. </td></tr>
|
379
355
|
<tr><td valign="top"></td><td valign="top"><em>thread_interrupted</em> </td><td></td></tr>
|
380
356
|
<tr><td valign="top"></td><td valign="top"><em>thread_resource_error</em> </td><td></td></tr>
|
381
357
|
</table>
|
358
|
+
</dd>
|
382
359
|
</dl>
|
383
360
|
|
384
361
|
</div>
|
385
|
-
</div
|
386
|
-
<hr
|
387
|
-
<a class="anchor"
|
362
|
+
</div>
|
363
|
+
<hr/><h2>Member Data Documentation</h2>
|
364
|
+
<a class="anchor" id="aa3eba8fe19117a84764f5f653a03612d"></a><!-- doxytag: member="AgentWatcher::feedbackFd" ref="aa3eba8fe19117a84764f5f653a03612d" args="" -->
|
388
365
|
<div class="memitem">
|
389
366
|
<div class="memproto">
|
390
367
|
<table class="memname">
|
391
368
|
<tr>
|
392
|
-
<td class="memname"><a class="el" href="classPassenger_1_1FileDescriptor.html">FileDescriptor</a> <a class="el" href="classAgentWatcher.html#
|
369
|
+
<td class="memname"><a class="el" href="classPassenger_1_1FileDescriptor.html">FileDescriptor</a> <a class="el" href="classAgentWatcher.html#aa3eba8fe19117a84764f5f653a03612d">AgentWatcher::feedbackFd</a><code> [protected]</code></td>
|
393
370
|
</tr>
|
394
371
|
</table>
|
395
372
|
</div>
|
396
373
|
<div class="memdoc">
|
397
374
|
|
398
|
-
<p>
|
399
|
-
The agent process's feedback fd.
|
400
|
-
<p>
|
375
|
+
<p>The agent process's feedback fd. </p>
|
401
376
|
|
402
377
|
</div>
|
403
|
-
</div
|
404
|
-
<a class="anchor"
|
378
|
+
</div>
|
379
|
+
<a class="anchor" id="a76de201bbc7111c01c31668211494fa8"></a><!-- doxytag: member="AgentWatcher::pid" ref="a76de201bbc7111c01c31668211494fa8" args="" -->
|
405
380
|
<div class="memitem">
|
406
381
|
<div class="memproto">
|
407
382
|
<table class="memname">
|
408
383
|
<tr>
|
409
|
-
<td class="memname">pid_t <a class="el" href="classAgentWatcher.html#
|
384
|
+
<td class="memname">pid_t <a class="el" href="classAgentWatcher.html#a76de201bbc7111c01c31668211494fa8">AgentWatcher::pid</a><code> [protected]</code></td>
|
410
385
|
</tr>
|
411
386
|
</table>
|
412
387
|
</div>
|
413
388
|
<div class="memdoc">
|
414
389
|
|
415
|
-
<p>
|
416
|
-
|
417
|
-
|
418
|
-
|
390
|
+
<p>PID of the process we're watching. </p>
|
391
|
+
<p>0 if no process is started at this time. </p>
|
392
|
+
|
393
|
+
</div>
|
419
394
|
</div>
|
420
|
-
|
421
|
-
<a class="anchor" name="c4fa4122858073a1e3e1d96ce2ade6f2"></a><!-- doxytag: member="AgentWatcher::threadExceptionMessage" ref="c4fa4122858073a1e3e1d96ce2ade6f2" args="" -->
|
395
|
+
<a class="anchor" id="ac4fa4122858073a1e3e1d96ce2ade6f2"></a><!-- doxytag: member="AgentWatcher::threadExceptionMessage" ref="ac4fa4122858073a1e3e1d96ce2ade6f2" args="" -->
|
422
396
|
<div class="memitem">
|
423
397
|
<div class="memproto">
|
424
398
|
<table class="memname">
|
425
399
|
<tr>
|
426
|
-
<td class="memname">string <a class="el" href="classAgentWatcher.html#
|
400
|
+
<td class="memname">string <a class="el" href="classAgentWatcher.html#ac4fa4122858073a1e3e1d96ce2ade6f2">AgentWatcher::threadExceptionMessage</a><code> [protected]</code></td>
|
427
401
|
</tr>
|
428
402
|
</table>
|
429
403
|
</div>
|
430
404
|
<div class="memdoc">
|
431
405
|
|
432
|
-
<p>
|
433
|
-
|
434
|
-
|
435
|
-
|
406
|
+
<p>If the watcher thread threw an uncaught exception then its information will be stored here so that the main thread can check whether a watcher encountered an error. </p>
|
407
|
+
<p>These are empty strings if everything is OK. </p>
|
408
|
+
|
409
|
+
</div>
|
436
410
|
</div>
|
437
|
-
|
438
|
-
<
|
439
|
-
|
411
|
+
<hr/>The documentation for this class was generated from the following file:<ul>
|
412
|
+
<li>Watchdog.cpp</li>
|
413
|
+
</ul>
|
440
414
|
</div>
|
441
|
-
<hr size="1"
|
415
|
+
<hr size="1"/><address style="text-align: right;"><small>Generated by
|
442
416
|
<a href="http://www.doxygen.org/index.html">
|
443
|
-
<img src="doxygen.png" alt="doxygen"
|
417
|
+
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2 </small></address>
|
444
418
|
</body>
|
445
419
|
</html>
|