passenger 2.1.3 → 2.2.0
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 +2 -0
- data/INSTALL +3 -1
- data/LICENSE +19 -355
- data/NEWS +3 -0
- data/README +11 -4
- data/Rakefile +435 -236
- data/bin/passenger-config +20 -14
- data/bin/passenger-install-apache2-module +67 -201
- data/bin/passenger-install-nginx-module +477 -0
- data/bin/passenger-make-enterprisey +17 -12
- data/bin/passenger-memory-stats +33 -23
- data/bin/passenger-spawn-server +17 -12
- data/bin/passenger-status +18 -13
- data/bin/passenger-stress-test +17 -12
- data/doc/{Users guide.html → Users guide Apache.html } +79 -61
- data/doc/{Users guide.txt → Users guide Apache.txt } +43 -939
- data/doc/Users guide Nginx.html +2276 -0
- data/doc/Users guide Nginx.txt +776 -0
- data/doc/cxxapi/ApplicationPoolServer_8h-source.html +9 -4
- data/doc/cxxapi/ApplicationPool_8h-source.html +9 -4
- data/doc/cxxapi/Application_8h-source.html +26 -21
- data/doc/cxxapi/Bucket_8h-source.html +54 -44
- data/doc/cxxapi/CachedFileStat_8h-source.html +9 -4
- data/doc/cxxapi/Configuration_8h-source.html +357 -339
- data/doc/cxxapi/DirectoryMapper_8h-source.html +294 -280
- data/doc/cxxapi/DummySpawnManager_8h-source.html +9 -4
- data/doc/cxxapi/Exceptions_8h-source.html +9 -4
- data/doc/cxxapi/FileChecker_8h-source.html +9 -4
- data/doc/cxxapi/Hooks_8h-source.html +50 -40
- data/doc/cxxapi/Logging_8h-source.html +9 -4
- data/doc/cxxapi/MessageChannel_8h-source.html +20 -15
- data/doc/cxxapi/PoolOptions_8h-source.html +10 -5
- data/doc/cxxapi/SpawnManager_8h-source.html +9 -4
- data/doc/cxxapi/StandardApplicationPool_8h-source.html +10 -5
- data/doc/cxxapi/SystemTime_8h-source.html +9 -4
- data/doc/cxxapi/Utils_8h-source.html +242 -214
- data/doc/cxxapi/annotated.html +4 -28
- data/doc/cxxapi/classClient-members.html +4 -4
- data/doc/cxxapi/classClient.html +14 -11
- data/doc/cxxapi/classHooks-members.html +4 -5
- data/doc/cxxapi/classHooks.html +26 -24
- data/doc/cxxapi/classPassenger_1_1Application-members.html +4 -4
- data/doc/cxxapi/classPassenger_1_1Application.html +40 -37
- data/doc/cxxapi/classPassenger_1_1ApplicationPool-members.html +4 -4
- data/doc/cxxapi/classPassenger_1_1ApplicationPool.html +95 -92
- data/doc/cxxapi/classPassenger_1_1ApplicationPoolServer-members.html +4 -4
- data/doc/cxxapi/classPassenger_1_1ApplicationPoolServer.html +26 -23
- data/doc/cxxapi/classPassenger_1_1ApplicationPool__inherit__graph.map +1 -1
- data/doc/cxxapi/classPassenger_1_1ApplicationPool__inherit__graph.md5 +1 -1
- data/doc/cxxapi/classPassenger_1_1ApplicationPool__inherit__graph.png +0 -0
- data/doc/cxxapi/classPassenger_1_1Application_1_1Session-members.html +17 -17
- data/doc/cxxapi/classPassenger_1_1Application_1_1Session.html +139 -136
- data/doc/cxxapi/classPassenger_1_1BufferedUpload-members.html +4 -4
- data/doc/cxxapi/classPassenger_1_1BufferedUpload.html +13 -10
- data/doc/cxxapi/classPassenger_1_1BusyException-members.html +4 -4
- data/doc/cxxapi/classPassenger_1_1BusyException.html +11 -8
- data/doc/cxxapi/classPassenger_1_1ConfigurationException-members.html +4 -4
- data/doc/cxxapi/classPassenger_1_1ConfigurationException.html +11 -8
- data/doc/cxxapi/classPassenger_1_1DirectoryMapper-members.html +4 -5
- data/doc/cxxapi/classPassenger_1_1DirectoryMapper.html +45 -43
- data/doc/cxxapi/classPassenger_1_1DummySpawnManager-members.html +4 -4
- data/doc/cxxapi/classPassenger_1_1DummySpawnManager.html +13 -10
- data/doc/cxxapi/classPassenger_1_1FileChecker-members.html +4 -4
- data/doc/cxxapi/classPassenger_1_1FileChecker.html +22 -19
- data/doc/cxxapi/classPassenger_1_1FileNotFoundException-members.html +4 -4
- data/doc/cxxapi/classPassenger_1_1FileNotFoundException.html +12 -9
- data/doc/cxxapi/classPassenger_1_1FileNotFoundException__inherit__graph.map +1 -1
- data/doc/cxxapi/classPassenger_1_1FileNotFoundException__inherit__graph.md5 +1 -1
- data/doc/cxxapi/classPassenger_1_1FileNotFoundException__inherit__graph.png +0 -0
- data/doc/cxxapi/classPassenger_1_1FileSystemException-members.html +4 -4
- data/doc/cxxapi/classPassenger_1_1FileSystemException.html +14 -11
- data/doc/cxxapi/classPassenger_1_1FileSystemException__inherit__graph.map +1 -1
- data/doc/cxxapi/classPassenger_1_1FileSystemException__inherit__graph.md5 +1 -1
- data/doc/cxxapi/classPassenger_1_1FileSystemException__inherit__graph.png +0 -0
- data/doc/cxxapi/classPassenger_1_1IOException-members.html +4 -4
- data/doc/cxxapi/classPassenger_1_1IOException.html +12 -9
- data/doc/cxxapi/classPassenger_1_1IOException__inherit__graph.map +1 -1
- data/doc/cxxapi/classPassenger_1_1IOException__inherit__graph.md5 +1 -1
- data/doc/cxxapi/classPassenger_1_1IOException__inherit__graph.png +0 -0
- data/doc/cxxapi/classPassenger_1_1MessageChannel-members.html +4 -4
- data/doc/cxxapi/classPassenger_1_1MessageChannel.html +228 -225
- data/doc/cxxapi/classPassenger_1_1RuntimeException-members.html +4 -4
- data/doc/cxxapi/classPassenger_1_1RuntimeException.html +11 -8
- data/doc/cxxapi/classPassenger_1_1SpawnException-members.html +4 -4
- data/doc/cxxapi/classPassenger_1_1SpawnException.html +14 -11
- data/doc/cxxapi/classPassenger_1_1SpawnManager-members.html +4 -4
- data/doc/cxxapi/classPassenger_1_1SpawnManager.html +50 -47
- data/doc/cxxapi/classPassenger_1_1StandardApplicationPool-members.html +4 -4
- data/doc/cxxapi/classPassenger_1_1StandardApplicationPool.html +73 -70
- data/doc/cxxapi/classPassenger_1_1StandardApplicationPool__inherit__graph.map +1 -1
- data/doc/cxxapi/classPassenger_1_1StandardApplicationPool__inherit__graph.md5 +1 -1
- data/doc/cxxapi/classPassenger_1_1StandardApplicationPool__inherit__graph.png +0 -0
- data/doc/cxxapi/classPassenger_1_1SystemException-members.html +4 -4
- data/doc/cxxapi/classPassenger_1_1SystemException.html +17 -14
- data/doc/cxxapi/classPassenger_1_1SystemException__inherit__graph.map +1 -1
- data/doc/cxxapi/classPassenger_1_1SystemException__inherit__graph.md5 +1 -1
- data/doc/cxxapi/classPassenger_1_1SystemException__inherit__graph.png +0 -0
- data/doc/cxxapi/classPassenger_1_1SystemTime-members.html +4 -4
- data/doc/cxxapi/classPassenger_1_1SystemTime.html +14 -11
- data/doc/cxxapi/classes.html +35 -0
- data/doc/cxxapi/definitions_8h-source.html +9 -4
- data/doc/cxxapi/doxygen.css +311 -303
- data/doc/cxxapi/files.html +9 -18
- data/doc/cxxapi/functions.html +5 -224
- data/doc/cxxapi/functions_func.html +5 -185
- data/doc/cxxapi/functions_type.html +4 -4
- data/doc/cxxapi/functions_vars.html +4 -4
- data/doc/cxxapi/graph_legend.dot +19 -19
- data/doc/cxxapi/graph_legend.html +5 -5
- data/doc/cxxapi/graph_legend.png +0 -0
- data/doc/cxxapi/group__Configuration.html +11 -13
- data/doc/cxxapi/group__Configuration.png +0 -0
- data/doc/cxxapi/group__Core.html +10 -12
- data/doc/cxxapi/group__Core.png +0 -0
- data/doc/cxxapi/group__Exceptions.html +5 -7
- data/doc/cxxapi/group__Hooks.html +5 -7
- data/doc/cxxapi/group__Hooks.png +0 -0
- data/doc/cxxapi/group__Support.html +5 -624
- data/doc/cxxapi/hierarchy.html +6 -6
- data/doc/cxxapi/inherit__graph__0.map +1 -1
- data/doc/cxxapi/inherit__graph__0.md5 +1 -1
- data/doc/cxxapi/inherit__graph__0.png +0 -0
- data/doc/cxxapi/inherit__graph__1.map +1 -1
- data/doc/cxxapi/inherit__graph__1.md5 +1 -1
- data/doc/cxxapi/inherit__graph__1.png +0 -0
- data/doc/cxxapi/inherit__graph__10.map +1 -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 +1 -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 +1 -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 +1 -2
- 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 +2 -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 +1 -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 +1 -1
- 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 +1 -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 +1 -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 +1 -1
- data/doc/cxxapi/inherit__graph__19.md5 +1 -1
- data/doc/cxxapi/inherit__graph__19.png +0 -0
- data/doc/cxxapi/inherit__graph__2.map +1 -1
- data/doc/cxxapi/inherit__graph__2.md5 +1 -1
- data/doc/cxxapi/inherit__graph__2.png +0 -0
- data/doc/cxxapi/inherit__graph__20.map +2 -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 +1 -1
- data/doc/cxxapi/inherit__graph__21.md5 +1 -1
- data/doc/cxxapi/inherit__graph__21.png +0 -0
- data/doc/cxxapi/inherit__graph__3.map +1 -1
- data/doc/cxxapi/inherit__graph__3.md5 +1 -1
- data/doc/cxxapi/inherit__graph__3.png +0 -0
- data/doc/cxxapi/inherit__graph__4.map +1 -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 +1 -2
- 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 +2 -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 +1 -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 +1 -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 +1 -1
- data/doc/cxxapi/inherit__graph__9.md5 +1 -1
- data/doc/cxxapi/inherit__graph__9.png +0 -0
- data/doc/cxxapi/inherits.html +41 -41
- data/doc/cxxapi/main.html +4 -4
- data/doc/cxxapi/modules.html +4 -5
- data/doc/cxxapi/structPassenger_1_1AnythingToString-members.html +4 -4
- data/doc/cxxapi/structPassenger_1_1AnythingToString.html +13 -10
- data/doc/cxxapi/structPassenger_1_1AnythingToString_3_01vector_3_01string_01_4_01_4-members.html +5 -5
- data/doc/cxxapi/structPassenger_1_1AnythingToString_3_01vector_3_01string_01_4_01_4.html +16 -13
- data/doc/cxxapi/structPassenger_1_1PoolOptions-members.html +4 -4
- data/doc/cxxapi/structPassenger_1_1PoolOptions.html +63 -60
- data/doc/cxxapi/tabs.css +5 -2
- data/doc/cxxapi/tree.html +7 -81
- data/doc/rdoc/classes/ConditionVariable.html +59 -59
- data/doc/rdoc/classes/Exception.html +11 -11
- data/doc/rdoc/classes/GC.html +4 -4
- data/doc/rdoc/classes/IO.html +14 -14
- data/doc/rdoc/classes/PhusionPassenger.html +75 -20
- data/doc/rdoc/classes/PhusionPassenger/AbstractInstaller.html +153 -0
- data/doc/rdoc/classes/PhusionPassenger/AbstractRequestHandler.html +125 -130
- data/doc/rdoc/classes/PhusionPassenger/AbstractServer.html +236 -236
- data/doc/rdoc/classes/PhusionPassenger/AbstractServerCollection.html +213 -213
- data/doc/rdoc/classes/PhusionPassenger/AdminTools.html +28 -28
- data/doc/rdoc/classes/PhusionPassenger/AdminTools/ControlProcess.html +91 -75
- data/doc/rdoc/classes/PhusionPassenger/AppInitError.html +10 -10
- data/doc/rdoc/classes/PhusionPassenger/Application.html +64 -64
- data/doc/rdoc/classes/PhusionPassenger/ConsoleTextTemplate.html +34 -34
- data/doc/rdoc/classes/PhusionPassenger/FrameworkInitError.html +13 -13
- data/doc/rdoc/classes/PhusionPassenger/HTMLTemplate.html +30 -30
- data/doc/rdoc/classes/PhusionPassenger/InitializationError.html +10 -10
- data/doc/rdoc/classes/PhusionPassenger/MessageChannel.html +136 -136
- data/doc/rdoc/classes/PhusionPassenger/NativeSupport.html +24 -24
- data/doc/rdoc/classes/PhusionPassenger/Rack/ApplicationSpawner.html +42 -42
- data/doc/rdoc/classes/PhusionPassenger/Rack/RequestHandler.html +55 -53
- data/doc/rdoc/classes/PhusionPassenger/Railz.html +1 -1
- data/doc/rdoc/classes/PhusionPassenger/Railz/ApplicationSpawner.html +25 -30
- data/doc/rdoc/classes/PhusionPassenger/Railz/CGIFixed.html +23 -23
- data/doc/rdoc/classes/PhusionPassenger/Railz/FrameworkSpawner.html +116 -117
- data/doc/rdoc/classes/PhusionPassenger/Railz/RequestHandler.html +22 -22
- data/doc/rdoc/classes/PhusionPassenger/SpawnManager.html +118 -124
- data/doc/rdoc/classes/PhusionPassenger/UnknownError.html +10 -10
- data/doc/rdoc/classes/PhusionPassenger/Utils.html +354 -354
- data/doc/rdoc/classes/PhusionPassenger/VersionNotFound.html +9 -9
- data/doc/rdoc/classes/PhusionPassenger/WSGI/ApplicationSpawner.html +37 -37
- data/doc/rdoc/classes/PlatformInfo.html +282 -261
- data/doc/rdoc/classes/RakeExtensions.html +7 -7
- data/doc/rdoc/classes/Signal.html +26 -26
- data/doc/rdoc/created.rid +1 -1
- data/doc/rdoc/files/DEVELOPERS_TXT.html +6 -1
- data/doc/rdoc/files/README.html +15 -6
- data/doc/rdoc/files/ext/phusion_passenger/native_support_c.html +1 -1
- data/doc/rdoc/files/lib/phusion_passenger/abstract_installer_rb.html +129 -0
- data/doc/rdoc/files/lib/phusion_passenger/abstract_request_handler_rb.html +20 -13
- data/doc/rdoc/files/lib/phusion_passenger/abstract_server_collection_rb.html +19 -13
- data/doc/rdoc/files/lib/phusion_passenger/abstract_server_rb.html +19 -13
- data/doc/rdoc/files/lib/phusion_passenger/admin_tools/control_process_rb.html +31 -1
- data/doc/rdoc/files/lib/phusion_passenger/admin_tools_rb.html +31 -1
- data/doc/rdoc/files/lib/phusion_passenger/application_rb.html +19 -13
- data/doc/rdoc/files/lib/phusion_passenger/console_text_template_rb.html +19 -13
- data/doc/rdoc/files/lib/phusion_passenger/constants_rb.html +21 -12
- data/doc/rdoc/files/lib/phusion_passenger/dependencies_rb.html +19 -13
- data/doc/rdoc/files/lib/phusion_passenger/events_rb.html +19 -13
- data/doc/rdoc/files/lib/phusion_passenger/exceptions_rb.html +19 -13
- data/doc/rdoc/files/lib/phusion_passenger/html_template_rb.html +19 -13
- data/doc/rdoc/files/lib/phusion_passenger/message_channel_rb.html +19 -13
- data/doc/rdoc/files/lib/phusion_passenger/packaging_rb.html +122 -0
- data/doc/rdoc/files/lib/phusion_passenger/platform_info_rb.html +19 -13
- data/doc/rdoc/files/lib/phusion_passenger/rack/application_spawner_rb.html +22 -12
- data/doc/rdoc/files/lib/phusion_passenger/rack/request_handler_rb.html +21 -12
- data/doc/rdoc/files/lib/phusion_passenger/railz/application_spawner_rb.html +19 -13
- data/doc/rdoc/files/lib/phusion_passenger/railz/cgi_fixed_rb.html +1 -1
- data/doc/rdoc/files/lib/phusion_passenger/railz/framework_spawner_rb.html +19 -13
- data/doc/rdoc/files/lib/phusion_passenger/railz/request_handler_rb.html +21 -12
- data/doc/rdoc/files/lib/phusion_passenger/simple_benchmarking_rb.html +19 -13
- data/doc/rdoc/files/lib/phusion_passenger/spawn_manager_rb.html +19 -13
- data/doc/rdoc/files/lib/phusion_passenger/utils_rb.html +27 -21
- data/doc/rdoc/files/lib/phusion_passenger/wsgi/application_spawner_rb.html +21 -12
- data/doc/rdoc/files/misc/rake/extensions_rb.html +21 -12
- data/doc/rdoc/fr_class_index.html +1 -0
- data/doc/rdoc/fr_file_index.html +2 -0
- data/doc/rdoc/fr_method_index.html +116 -112
- data/doc/users_guide_snippets/analysis_and_system_maintenance_tools.txt +144 -0
- data/doc/users_guide_snippets/appendix_a_about.txt +13 -0
- data/doc/users_guide_snippets/appendix_b_terminology.txt +63 -0
- data/doc/users_guide_snippets/appendix_c_spawning_methods.txt +304 -0
- data/doc/users_guide_snippets/global_queueing_explained.txt +78 -0
- data/doc/users_guide_snippets/rackup_specifications.txt +75 -0
- data/doc/users_guide_snippets/rails_spawn_method.txt +48 -0
- data/doc/users_guide_snippets/tips.txt +173 -0
- data/ext/apache2/Bucket.cpp +17 -12
- data/ext/apache2/Bucket.h +17 -12
- data/ext/apache2/Configuration.cpp +17 -12
- data/ext/apache2/Configuration.h +27 -14
- data/ext/apache2/DirectoryMapper.h +21 -12
- data/ext/apache2/Hooks.cpp +67 -21
- data/ext/apache2/Hooks.h +17 -12
- data/ext/apache2/mod_passenger.c +17 -12
- data/ext/{apache2 → common}/Application.h +19 -14
- data/ext/{apache2 → common}/ApplicationPool.h +17 -12
- data/ext/{apache2 → common}/ApplicationPoolServer.h +18 -72
- data/ext/{apache2 → common}/ApplicationPoolServerExecutable.cpp +45 -104
- data/ext/common/ApplicationPoolStatusReporter.h +212 -0
- data/ext/{apache2 → common}/CachedFileStat.cpp +17 -12
- data/ext/{apache2 → common}/CachedFileStat.h +17 -12
- data/ext/{apache2 → common}/DummySpawnManager.h +17 -12
- data/ext/{apache2 → common}/Exceptions.h +17 -12
- data/ext/{apache2 → common}/FileChecker.h +17 -12
- data/ext/common/Logging.cpp +65 -0
- data/ext/{apache2 → common}/Logging.h +17 -12
- data/ext/{apache2 → common}/MessageChannel.h +17 -12
- data/ext/{apache2 → common}/PoolOptions.h +17 -12
- data/ext/{apache2 → common}/SpawnManager.h +17 -12
- data/ext/{apache2 → common}/StandardApplicationPool.h +17 -12
- data/ext/common/StaticString.h +147 -0
- data/ext/common/SystemTime.cpp +33 -0
- data/ext/{apache2 → common}/SystemTime.h +17 -12
- data/ext/{apache2 → common}/Utils.cpp +69 -12
- data/ext/{apache2 → common}/Utils.h +41 -12
- data/ext/nginx/Configuration.c +1091 -0
- data/ext/nginx/Configuration.h +71 -0
- data/ext/nginx/ContentHandler.c +1154 -0
- data/ext/nginx/ContentHandler.h +64 -0
- data/ext/nginx/HelperServer.cpp +857 -0
- data/ext/nginx/HttpStatusExtractor.h +161 -0
- data/ext/nginx/ScgiRequestParser.h +317 -0
- data/ext/nginx/StaticContentHandler.c +222 -0
- data/ext/nginx/StaticContentHandler.h +37 -0
- data/ext/nginx/config +41 -0
- data/ext/nginx/ngx_http_passenger_module.c +572 -0
- data/ext/nginx/ngx_http_passenger_module.h +72 -0
- data/ext/oxt/backtrace.cpp +8 -1
- data/ext/oxt/system_calls.cpp +40 -0
- data/ext/oxt/system_calls.hpp +14 -7
- data/ext/phusion_passenger/extconf.rb +17 -12
- data/ext/phusion_passenger/native_support.c +19 -12
- data/lib/phusion_passenger/abstract_installer.rb +196 -0
- data/lib/phusion_passenger/abstract_request_handler.rb +19 -24
- data/lib/phusion_passenger/abstract_server.rb +17 -12
- data/lib/phusion_passenger/abstract_server_collection.rb +17 -12
- data/lib/phusion_passenger/admin_tools.rb +23 -0
- data/lib/phusion_passenger/admin_tools/control_process.rb +39 -13
- data/lib/phusion_passenger/application.rb +17 -12
- data/lib/phusion_passenger/console_text_template.rb +17 -12
- data/lib/phusion_passenger/constants.rb +22 -11
- data/lib/phusion_passenger/dependencies.rb +47 -12
- data/lib/phusion_passenger/events.rb +17 -12
- data/lib/phusion_passenger/exceptions.rb +17 -12
- data/lib/phusion_passenger/html_template.rb +17 -12
- data/lib/phusion_passenger/message_channel.rb +17 -12
- data/lib/phusion_passenger/packaging.rb +39 -0
- data/lib/phusion_passenger/platform_info.rb +48 -22
- data/lib/phusion_passenger/rack/application_spawner.rb +22 -11
- data/lib/phusion_passenger/rack/request_handler.rb +21 -12
- data/lib/phusion_passenger/railz/application_spawner.rb +23 -23
- data/lib/phusion_passenger/railz/framework_spawner.rb +18 -14
- data/lib/phusion_passenger/railz/request_handler.rb +18 -11
- data/lib/phusion_passenger/simple_benchmarking.rb +17 -12
- data/lib/phusion_passenger/spawn_manager.rb +17 -20
- data/lib/phusion_passenger/templates/{apache_must_be_compiled_with_compatible_mpm.txt.erb → apache2/apache_must_be_compiled_with_compatible_mpm.txt.erb} +0 -0
- data/lib/phusion_passenger/templates/{apache2_config_snippets.txt.erb → apache2/config_snippets.txt.erb} +0 -0
- data/lib/phusion_passenger/templates/{deployment_example.txt.erb → apache2/deployment_example.txt.erb} +0 -0
- data/lib/phusion_passenger/templates/{no_write_permission_to_passenger_root.txt.erb → apache2/no_write_permission_to_passenger_root.txt.erb} +0 -0
- data/lib/phusion_passenger/templates/{possible_solutions_for_compilation_and_installation_problems.txt.erb → apache2/possible_solutions_for_compilation_and_installation_problems.txt.erb} +0 -0
- data/lib/phusion_passenger/templates/{run_installer_as_root.txt.erb → apache2/run_installer_as_root.txt.erb} +0 -0
- data/lib/phusion_passenger/templates/{welcome.txt.erb → apache2/welcome.txt.erb} +0 -0
- data/lib/phusion_passenger/templates/nginx/ask_for_extra_configure_flags.txt.erb +8 -0
- data/lib/phusion_passenger/templates/nginx/cannot_write_to_dir.txt.erb +11 -0
- data/lib/phusion_passenger/templates/nginx/config_snippets.txt.erb +17 -0
- data/lib/phusion_passenger/templates/nginx/config_snippets_inserted.txt.erb +20 -0
- data/lib/phusion_passenger/templates/nginx/confirm_extra_configure_flags.txt.erb +5 -0
- data/lib/phusion_passenger/templates/nginx/deployment_example.txt.erb +22 -0
- data/lib/phusion_passenger/templates/nginx/pcre_could_not_be_downloaded.txt.erb +11 -0
- data/lib/phusion_passenger/templates/nginx/pcre_could_not_be_extracted.txt.erb +11 -0
- data/lib/phusion_passenger/templates/nginx/possible_solutions_for_compilation_and_installation_problems.txt.erb +11 -0
- data/lib/phusion_passenger/templates/nginx/possible_solutions_for_download_and_extraction_problems.txt.erb +20 -0
- data/lib/phusion_passenger/templates/nginx/query_download_and_install.txt.erb +21 -0
- data/lib/phusion_passenger/templates/nginx/run_installer_as_root.txt.erb +8 -0
- data/lib/phusion_passenger/templates/nginx/welcome.txt.erb +15 -0
- data/lib/phusion_passenger/utils.rb +20 -15
- data/lib/phusion_passenger/wsgi/application_spawner.rb +18 -11
- data/lib/phusion_passenger/wsgi/request_handler.py +23 -0
- data/misc/copy_boost_headers.rb +23 -0
- data/misc/find_owner_pipe_leaks.rb +18 -11
- data/misc/rake/cplusplus.rb +18 -11
- data/misc/rake/extensions.rb +21 -14
- data/misc/render_error_pages.rb +18 -11
- data/test/ApplicationPoolServerTest.cpp +1 -3
- data/test/ApplicationPoolServer_ApplicationPoolTest.cpp +1 -1
- data/test/CxxTestMain.cpp +19 -3
- data/test/HttpStatusExtractorTest.cpp +181 -0
- data/test/ScgiRequestParserTest.cpp +337 -0
- data/test/StaticStringTest.cpp +51 -0
- data/test/UtilsTest.cpp +32 -0
- data/test/config.yml.example +5 -0
- data/test/{integration_tests.rb → integration_tests/apache2_tests.rb} +7 -299
- data/test/integration_tests/hello_world_rack_spec.rb +36 -0
- data/test/integration_tests/hello_world_wsgi_spec.rb +41 -0
- data/test/integration_tests/mycook_spec.rb +192 -0
- data/test/integration_tests/nginx_tests.rb +98 -0
- data/test/ruby/rack/application_spawner_spec.rb +40 -0
- data/test/stub/nginx/koi-utf +109 -0
- data/test/stub/nginx/koi-win +103 -0
- data/test/stub/nginx/mime.types +70 -0
- data/test/stub/nginx/nginx.conf.erb +57 -0
- data/test/stub/nginx/win-utf +126 -0
- data/test/stub/rails_apps/mycook/app/controllers/uploads_controller.rb +4 -0
- data/test/stub/rails_apps/mycook/config/routes.rb +1 -1
- data/test/stub/wsgi/passenger_wsgi.pyc +0 -0
- data/test/support/Support.h +40 -0
- data/test/support/nginx_controller.rb +98 -0
- data/test/support/test_helper.rb +79 -0
- metadata +1091 -1028
- data/benchmark/DummyRequestHandler.cpp +0 -101
- data/ext/apache2/Logging.cpp +0 -60
- data/ext/apache2/SystemTime.cpp +0 -28
@@ -1,10 +1,10 @@
|
|
1
1
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
2
2
|
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
3
3
|
<title>Passenger: Member List</title>
|
4
|
-
<link href="doxygen.css" rel="stylesheet" type="text/css">
|
5
4
|
<link href="tabs.css" rel="stylesheet" type="text/css">
|
5
|
+
<link href="doxygen.css" rel="stylesheet" type="text/css">
|
6
6
|
</head><body>
|
7
|
-
<!-- Generated by Doxygen 1.5.
|
7
|
+
<!-- Generated by Doxygen 1.5.8 -->
|
8
8
|
<div class="navigation" id="top">
|
9
9
|
<div class="tabs">
|
10
10
|
<ul>
|
@@ -25,8 +25,8 @@
|
|
25
25
|
<div class="contents">
|
26
26
|
<h1>Passenger::RuntimeException Member List</h1>This is the complete list of members for <a class="el" href="classPassenger_1_1RuntimeException.html">Passenger::RuntimeException</a>, including all inherited members.<p><table>
|
27
27
|
</table></div>
|
28
|
-
<hr size="1"><address style="text-align: right;"><small>Generated on
|
28
|
+
<hr size="1"><address style="text-align: right;"><small>Generated on Wed Apr 8 22:35:12 2009 for Passenger by
|
29
29
|
<a href="http://www.doxygen.org/index.html">
|
30
|
-
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.
|
30
|
+
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.8 </small></address>
|
31
31
|
</body>
|
32
32
|
</html>
|
@@ -1,10 +1,10 @@
|
|
1
1
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
2
2
|
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
3
3
|
<title>Passenger: Passenger::RuntimeException Class Reference</title>
|
4
|
-
<link href="doxygen.css" rel="stylesheet" type="text/css">
|
5
4
|
<link href="tabs.css" rel="stylesheet" type="text/css">
|
5
|
+
<link href="doxygen.css" rel="stylesheet" type="text/css">
|
6
6
|
</head><body>
|
7
|
-
<!-- Generated by Doxygen 1.5.
|
7
|
+
<!-- Generated by Doxygen 1.5.8 -->
|
8
8
|
<div class="navigation" id="top">
|
9
9
|
<div class="tabs">
|
10
10
|
<ul>
|
@@ -28,19 +28,22 @@
|
|
28
28
|
<h1>Passenger::RuntimeException Class Reference<br>
|
29
29
|
<small>
|
30
30
|
[<a class="el" href="group__Exceptions.html">Exceptions</a>]</small>
|
31
|
-
</h1><!-- doxytag: class="Passenger::RuntimeException"
|
31
|
+
</h1><!-- doxytag: class="Passenger::RuntimeException" -->A generic runtime exception.
|
32
|
+
<a href="#_details">More...</a>
|
33
|
+
<p>
|
34
|
+
<code>#include <<a class="el" href="Exceptions_8h-source.html">Exceptions.h</a>></code>
|
32
35
|
<p>
|
33
36
|
|
34
37
|
<p>
|
35
|
-
<a href="classPassenger_1_1RuntimeException-members.html">List of all members.</a><
|
36
|
-
A generic runtime exception. <table border="0" cellpadding="0" cellspacing="0">
|
38
|
+
<a href="classPassenger_1_1RuntimeException-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
|
37
39
|
<tr><td></td></tr>
|
38
40
|
</table>
|
39
|
-
<hr>
|
41
|
+
<hr><a name="_details"></a><h2>Detailed Description</h2>
|
42
|
+
A generic runtime exception. <hr>The documentation for this class was generated from the following file:<ul>
|
40
43
|
<li><a class="el" href="Exceptions_8h-source.html">Exceptions.h</a></ul>
|
41
44
|
</div>
|
42
|
-
<hr size="1"><address style="text-align: right;"><small>Generated on
|
45
|
+
<hr size="1"><address style="text-align: right;"><small>Generated on Wed Apr 8 22:35:12 2009 for Passenger by
|
43
46
|
<a href="http://www.doxygen.org/index.html">
|
44
|
-
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.
|
47
|
+
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.8 </small></address>
|
45
48
|
</body>
|
46
49
|
</html>
|
@@ -1,10 +1,10 @@
|
|
1
1
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
2
2
|
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
3
3
|
<title>Passenger: Member List</title>
|
4
|
-
<link href="doxygen.css" rel="stylesheet" type="text/css">
|
5
4
|
<link href="tabs.css" rel="stylesheet" type="text/css">
|
5
|
+
<link href="doxygen.css" rel="stylesheet" type="text/css">
|
6
6
|
</head><body>
|
7
|
-
<!-- Generated by Doxygen 1.5.
|
7
|
+
<!-- Generated by Doxygen 1.5.8 -->
|
8
8
|
<div class="navigation" id="top">
|
9
9
|
<div class="tabs">
|
10
10
|
<ul>
|
@@ -27,8 +27,8 @@
|
|
27
27
|
<tr class="memlist"><td><a class="el" href="classPassenger_1_1SpawnException.html#6f675a37edd7070875d0744e7dd010a1">getErrorPage</a>() const </td><td><a class="el" href="classPassenger_1_1SpawnException.html">Passenger::SpawnException</a></td><td><code> [inline]</code></td></tr>
|
28
28
|
<tr class="memlist"><td><a class="el" href="classPassenger_1_1SpawnException.html#e65dc272e183fd9e5637a4091cc6bbf4">hasErrorPage</a>() const </td><td><a class="el" href="classPassenger_1_1SpawnException.html">Passenger::SpawnException</a></td><td><code> [inline]</code></td></tr>
|
29
29
|
</table></div>
|
30
|
-
<hr size="1"><address style="text-align: right;"><small>Generated on
|
30
|
+
<hr size="1"><address style="text-align: right;"><small>Generated on Wed Apr 8 22:35:12 2009 for Passenger by
|
31
31
|
<a href="http://www.doxygen.org/index.html">
|
32
|
-
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.
|
32
|
+
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.8 </small></address>
|
33
33
|
</body>
|
34
34
|
</html>
|
@@ -1,10 +1,10 @@
|
|
1
1
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
2
2
|
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
3
3
|
<title>Passenger: Passenger::SpawnException Class Reference</title>
|
4
|
-
<link href="doxygen.css" rel="stylesheet" type="text/css">
|
5
4
|
<link href="tabs.css" rel="stylesheet" type="text/css">
|
5
|
+
<link href="doxygen.css" rel="stylesheet" type="text/css">
|
6
6
|
</head><body>
|
7
|
-
<!-- Generated by Doxygen 1.5.
|
7
|
+
<!-- Generated by Doxygen 1.5.8 -->
|
8
8
|
<div class="navigation" id="top">
|
9
9
|
<div class="tabs">
|
10
10
|
<ul>
|
@@ -25,14 +25,14 @@
|
|
25
25
|
</div>
|
26
26
|
</div>
|
27
27
|
<div class="contents">
|
28
|
-
<h1>Passenger::SpawnException Class Reference</h1><!-- doxytag: class="Passenger::SpawnException"
|
28
|
+
<h1>Passenger::SpawnException Class Reference</h1><!-- doxytag: class="Passenger::SpawnException" -->Thrown when <a class="el" href="classPassenger_1_1SpawnManager.html" title="Spawning of Ruby on Rails/Rack application instances.">SpawnManager</a> or <a class="el" href="classPassenger_1_1ApplicationPool.html" title="A persistent pool of Applications.">ApplicationPool</a> fails to spawn an application instance.
|
29
|
+
<a href="#_details">More...</a>
|
29
30
|
<p>
|
30
|
-
|
31
|
+
<code>#include <<a class="el" href="Exceptions_8h-source.html">Exceptions.h</a>></code>
|
31
32
|
<p>
|
32
|
-
|
33
|
-
Thrown when <a class="el" href="classPassenger_1_1SpawnManager.html" title="Spawning of Ruby on Rails/Rack application instances.">SpawnManager</a> or <a class="el" href="classPassenger_1_1ApplicationPool.html" title="A persistent pool of Applications.">ApplicationPool</a> fails to spawn an application instance.
|
33
|
+
|
34
34
|
<p>
|
35
|
-
|
35
|
+
<a href="classPassenger_1_1SpawnException-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
|
36
36
|
<tr><td></td></tr>
|
37
37
|
<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
|
38
38
|
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="e65dc272e183fd9e5637a4091cc6bbf4"></a><!-- doxytag: member="Passenger::SpawnException::hasErrorPage" ref="e65dc272e183fd9e5637a4091cc6bbf4" args="() const " -->
|
@@ -43,7 +43,10 @@ bool </td><td class="memItemRight" valign="bottom"><a class="el" href="clas
|
|
43
43
|
|
44
44
|
<tr><td class="mdescLeft"> </td><td class="mdescRight">Return the error page content. <a href="#6f675a37edd7070875d0744e7dd010a1"></a><br></td></tr>
|
45
45
|
</table>
|
46
|
-
<hr><h2>
|
46
|
+
<hr><a name="_details"></a><h2>Detailed Description</h2>
|
47
|
+
Thrown when <a class="el" href="classPassenger_1_1SpawnManager.html" title="Spawning of Ruby on Rails/Rack application instances.">SpawnManager</a> or <a class="el" href="classPassenger_1_1ApplicationPool.html" title="A persistent pool of Applications.">ApplicationPool</a> fails to spawn an application instance.
|
48
|
+
<p>
|
49
|
+
The exception may contain an error page, which is a user-friendly HTML page with details about the error. <hr><h2>Member Function Documentation</h2>
|
47
50
|
<a class="anchor" name="6f675a37edd7070875d0744e7dd010a1"></a><!-- doxytag: member="Passenger::SpawnException::getErrorPage" ref="6f675a37edd7070875d0744e7dd010a1" args="() const " -->
|
48
51
|
<div class="memitem">
|
49
52
|
<div class="memproto">
|
@@ -53,7 +56,7 @@ bool </td><td class="memItemRight" valign="bottom"><a class="el" href="clas
|
|
53
56
|
<td>(</td>
|
54
57
|
<td class="paramname"> </td>
|
55
58
|
<td> ) </td>
|
56
|
-
<td
|
59
|
+
<td> const<code> [inline]</code></td>
|
57
60
|
</tr>
|
58
61
|
</table>
|
59
62
|
</div>
|
@@ -69,8 +72,8 @@ Return the error page content.
|
|
69
72
|
<hr>The documentation for this class was generated from the following file:<ul>
|
70
73
|
<li><a class="el" href="Exceptions_8h-source.html">Exceptions.h</a></ul>
|
71
74
|
</div>
|
72
|
-
<hr size="1"><address style="text-align: right;"><small>Generated on
|
75
|
+
<hr size="1"><address style="text-align: right;"><small>Generated on Wed Apr 8 22:35:12 2009 for Passenger by
|
73
76
|
<a href="http://www.doxygen.org/index.html">
|
74
|
-
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.
|
77
|
+
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.8 </small></address>
|
75
78
|
</body>
|
76
79
|
</html>
|
@@ -1,10 +1,10 @@
|
|
1
1
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
2
2
|
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
3
3
|
<title>Passenger: Member List</title>
|
4
|
-
<link href="doxygen.css" rel="stylesheet" type="text/css">
|
5
4
|
<link href="tabs.css" rel="stylesheet" type="text/css">
|
5
|
+
<link href="doxygen.css" rel="stylesheet" type="text/css">
|
6
6
|
</head><body>
|
7
|
-
<!-- Generated by Doxygen 1.5.
|
7
|
+
<!-- Generated by Doxygen 1.5.8 -->
|
8
8
|
<div class="navigation" id="top">
|
9
9
|
<div class="tabs">
|
10
10
|
<ul>
|
@@ -29,8 +29,8 @@
|
|
29
29
|
<tr class="memlist"><td><a class="el" href="classPassenger_1_1SpawnManager.html#af035d564cc4e6683508939c9d6dbb64">spawn</a>(const PoolOptions &PoolOptions)</td><td><a class="el" href="classPassenger_1_1SpawnManager.html">Passenger::SpawnManager</a></td><td><code> [inline]</code></td></tr>
|
30
30
|
<tr class="memlist"><td><a class="el" href="classPassenger_1_1SpawnManager.html#fdefbbbad39833912ae7f9f106083099">SpawnManager</a>(const string &spawnServerCommand, const string &logFile="", const string &rubyCommand="ruby", const string &user="")</td><td><a class="el" href="classPassenger_1_1SpawnManager.html">Passenger::SpawnManager</a></td><td><code> [inline]</code></td></tr>
|
31
31
|
</table></div>
|
32
|
-
<hr size="1"><address style="text-align: right;"><small>Generated on
|
32
|
+
<hr size="1"><address style="text-align: right;"><small>Generated on Wed Apr 8 22:35:12 2009 for Passenger by
|
33
33
|
<a href="http://www.doxygen.org/index.html">
|
34
|
-
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.
|
34
|
+
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.8 </small></address>
|
35
35
|
</body>
|
36
36
|
</html>
|
@@ -1,10 +1,10 @@
|
|
1
1
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
2
2
|
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
3
3
|
<title>Passenger: Passenger::SpawnManager Class Reference</title>
|
4
|
-
<link href="doxygen.css" rel="stylesheet" type="text/css">
|
5
4
|
<link href="tabs.css" rel="stylesheet" type="text/css">
|
5
|
+
<link href="doxygen.css" rel="stylesheet" type="text/css">
|
6
6
|
</head><body>
|
7
|
-
<!-- Generated by Doxygen 1.5.
|
7
|
+
<!-- Generated by Doxygen 1.5.8 -->
|
8
8
|
<div class="navigation" id="top">
|
9
9
|
<div class="tabs">
|
10
10
|
<ul>
|
@@ -28,22 +28,14 @@
|
|
28
28
|
<h1>Passenger::SpawnManager Class Reference<br>
|
29
29
|
<small>
|
30
30
|
[<a class="el" href="group__Support.html">Apache-independent support classes and function</a>]</small>
|
31
|
-
</h1><!-- doxytag: class="Passenger::SpawnManager"
|
31
|
+
</h1><!-- doxytag: class="Passenger::SpawnManager" -->Spawning of Ruby on Rails/Rack application instances.
|
32
|
+
<a href="#_details">More...</a>
|
32
33
|
<p>
|
33
|
-
|
34
|
-
<p>
|
35
|
-
<a href="classPassenger_1_1SpawnManager-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>
|
36
|
-
Spawning of Ruby on Rails/Rack application instances.
|
34
|
+
<code>#include <<a class="el" href="SpawnManager_8h-source.html">SpawnManager.h</a>></code>
|
37
35
|
<p>
|
38
|
-
|
39
|
-
<dl class="note" compact><dt><b>Note:</b></dt><dd>This class is fully thread-safe.</dd></dl>
|
40
|
-
<h2>Implementation details</h2>
|
36
|
+
|
41
37
|
<p>
|
42
|
-
|
43
|
-
If the spawn server dies during the middle of an operation, it will be restarted. See <a class="el" href="classPassenger_1_1SpawnManager.html#af035d564cc4e6683508939c9d6dbb64" title="Spawn a new instance of an application.">spawn()</a> for full details.<p>
|
44
|
-
The communication channel with the server is anonymous, i.e. no other processes can access the communication channel, so communication is guaranteed to be safe (unless, of course, if the spawn server itself is a trojan).<p>
|
45
|
-
The server will try to keep the spawning time as small as possible, by keeping corresponding Ruby on Rails frameworks and application code in memory. So the second time an instance of the same application is spawned, the spawn time is significantly lower than the first time. Nevertheless, spawning is a relatively expensive operation (compared to the processing of a typical HTTP request/response), and so should be avoided whenever possible.<p>
|
46
|
-
See the documentation of the spawn server for full implementation details. <table border="0" cellpadding="0" cellspacing="0">
|
38
|
+
<a href="classPassenger_1_1SpawnManager-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
|
47
39
|
<tr><td></td></tr>
|
48
40
|
<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
|
49
41
|
<tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1SpawnManager.html#fdefbbbad39833912ae7f9f106083099">SpawnManager</a> (const string &spawnServerCommand, const string &logFile="", const string &rubyCommand="ruby", const string &user="")</td></tr>
|
@@ -59,7 +51,18 @@ See the documentation of the spawn server for full implementation details. <tabl
|
|
59
51
|
|
60
52
|
<tr><td class="mdescLeft"> </td><td class="mdescRight">Get the Process ID of the spawn server. <a href="#1f77e2e7e6cb464028c13a29f983ad8e"></a><br></td></tr>
|
61
53
|
</table>
|
62
|
-
<hr><h2>
|
54
|
+
<hr><a name="_details"></a><h2>Detailed Description</h2>
|
55
|
+
Spawning of Ruby on Rails/Rack application instances.
|
56
|
+
<p>
|
57
|
+
This class is responsible for spawning new instances of Ruby on Rails or Rack applications. Use the <a class="el" href="classPassenger_1_1SpawnManager.html#af035d564cc4e6683508939c9d6dbb64" title="Spawn a new instance of an application.">spawn()</a> method to do so.<p>
|
58
|
+
<dl class="note" compact><dt><b>Note:</b></dt><dd>This class is fully thread-safe.</dd></dl>
|
59
|
+
<h2>Implementation details</h2>
|
60
|
+
<p>
|
61
|
+
Internally, this class makes use of a spawn server, which is written in Ruby. This server is automatically started when a <a class="el" href="classPassenger_1_1SpawnManager.html" title="Spawning of Ruby on Rails/Rack application instances.">SpawnManager</a> instance is created, and automatically shutdown when that instance is destroyed. The existance of the spawn server is almost totally transparent to users of this class. Spawn requests are sent to the server, and details about the spawned process is returned.<p>
|
62
|
+
If the spawn server dies during the middle of an operation, it will be restarted. See <a class="el" href="classPassenger_1_1SpawnManager.html#af035d564cc4e6683508939c9d6dbb64" title="Spawn a new instance of an application.">spawn()</a> for full details.<p>
|
63
|
+
The communication channel with the server is anonymous, i.e. no other processes can access the communication channel, so communication is guaranteed to be safe (unless, of course, if the spawn server itself is a trojan).<p>
|
64
|
+
The server will try to keep the spawning time as small as possible, by keeping corresponding Ruby on Rails frameworks and application code in memory. So the second time an instance of the same application is spawned, the spawn time is significantly lower than the first time. Nevertheless, spawning is a relatively expensive operation (compared to the processing of a typical HTTP request/response), and so should be avoided whenever possible.<p>
|
65
|
+
See the documentation of the spawn server for full implementation details. <hr><h2>Constructor & Destructor Documentation</h2>
|
63
66
|
<a class="anchor" name="fdefbbbad39833912ae7f9f106083099"></a><!-- doxytag: member="Passenger::SpawnManager::SpawnManager" ref="fdefbbbad39833912ae7f9f106083099" args="(const string &spawnServerCommand, const string &logFile="", const string &rubyCommand="ruby", const string &user="")" -->
|
64
67
|
<div class="memitem">
|
65
68
|
<div class="memproto">
|
@@ -91,7 +94,7 @@ See the documentation of the spawn server for full implementation details. <tabl
|
|
91
94
|
<tr>
|
92
95
|
<td></td>
|
93
96
|
<td>)</td>
|
94
|
-
<td></td><td></td><td
|
97
|
+
<td></td><td></td><td><code> [inline]</code></td>
|
95
98
|
</tr>
|
96
99
|
</table>
|
97
100
|
</div>
|
@@ -118,40 +121,25 @@ Construct a new <a class="el" href="classPassenger_1_1SpawnManager.html" title="
|
|
118
121
|
</div>
|
119
122
|
</div><p>
|
120
123
|
<hr><h2>Member Function Documentation</h2>
|
121
|
-
<a class="anchor" name="
|
124
|
+
<a class="anchor" name="1f77e2e7e6cb464028c13a29f983ad8e"></a><!-- doxytag: member="Passenger::SpawnManager::getServerPid" ref="1f77e2e7e6cb464028c13a29f983ad8e" args="() const " -->
|
122
125
|
<div class="memitem">
|
123
126
|
<div class="memproto">
|
124
127
|
<table class="memname">
|
125
128
|
<tr>
|
126
|
-
<td class="memname">
|
129
|
+
<td class="memname">pid_t Passenger::SpawnManager::getServerPid </td>
|
127
130
|
<td>(</td>
|
128
|
-
<td class="
|
129
|
-
<td class="paramname"> <em>PoolOptions</em> </td>
|
131
|
+
<td class="paramname"> </td>
|
130
132
|
<td> ) </td>
|
131
|
-
<td
|
133
|
+
<td> const<code> [inline]</code></td>
|
132
134
|
</tr>
|
133
135
|
</table>
|
134
136
|
</div>
|
135
137
|
<div class="memdoc">
|
136
138
|
|
137
139
|
<p>
|
138
|
-
|
140
|
+
Get the Process ID of the spawn server.
|
139
141
|
<p>
|
140
|
-
|
141
|
-
If the spawn server died during the spawning process, then the server will be automatically restarted, and another spawn attempt will be made. If restarting the server fails, or if the second spawn attempt fails, then an exception will be thrown.<p>
|
142
|
-
<dl compact><dt><b>Parameters:</b></dt><dd>
|
143
|
-
<table border="0" cellspacing="2" cellpadding="0">
|
144
|
-
<tr><td valign="top"></td><td valign="top"><em><a class="el" href="structPassenger_1_1PoolOptions.html" title="This struct encapsulates information for ApplicationPool::get() and for SpawnManager::spawn()...">PoolOptions</a></em> </td><td>An object containing the details for this spawn operation, such as which application to spawn. See <a class="el" href="structPassenger_1_1PoolOptions.html" title="This struct encapsulates information for ApplicationPool::get() and for SpawnManager::spawn()...">PoolOptions</a> for details. </td></tr>
|
145
|
-
</table>
|
146
|
-
</dl>
|
147
|
-
<dl class="return" compact><dt><b>Returns:</b></dt><dd>A smart pointer to an <a class="el" href="classPassenger_1_1Application.html" title="Represents a single Ruby on Rails or Rack application instance.">Application</a> object, which represents the application instance that has been spawned. Use this object to communicate with the spawned application. </dd></dl>
|
148
|
-
<dl compact><dt><b>Exceptions:</b></dt><dd>
|
149
|
-
<table border="0" cellspacing="2" cellpadding="0">
|
150
|
-
<tr><td valign="top"></td><td valign="top"><em><a class="el" href="classPassenger_1_1SpawnException.html" title="Thrown when SpawnManager or ApplicationPool fails to spawn an application instance...">SpawnException</a></em> </td><td>Something went wrong. </td></tr>
|
151
|
-
<tr><td valign="top"></td><td valign="top"><em>boost::thread_interrupted</em> </td><td></td></tr>
|
152
|
-
</table>
|
153
|
-
</dl>
|
154
|
-
|
142
|
+
This method is used in the unit tests and should not be used directly.
|
155
143
|
</div>
|
156
144
|
</div><p>
|
157
145
|
<a class="anchor" name="2e85c43042b9556ca2fd74b8d28956ce"></a><!-- doxytag: member="Passenger::SpawnManager::reload" ref="2e85c43042b9556ca2fd74b8d28956ce" args="(const string &appRoot)" -->
|
@@ -164,7 +152,7 @@ If the spawn server died during the spawning process, then the server will be au
|
|
164
152
|
<td class="paramtype">const string & </td>
|
165
153
|
<td class="paramname"> <em>appRoot</em> </td>
|
166
154
|
<td> ) </td>
|
167
|
-
<td
|
155
|
+
<td><code> [inline]</code></td>
|
168
156
|
</tr>
|
169
157
|
</table>
|
170
158
|
</div>
|
@@ -183,32 +171,47 @@ Remove the cached application instances at the given application root.
|
|
183
171
|
|
184
172
|
</div>
|
185
173
|
</div><p>
|
186
|
-
<a class="anchor" name="
|
174
|
+
<a class="anchor" name="af035d564cc4e6683508939c9d6dbb64"></a><!-- doxytag: member="Passenger::SpawnManager::spawn" ref="af035d564cc4e6683508939c9d6dbb64" args="(const PoolOptions &PoolOptions)" -->
|
187
175
|
<div class="memitem">
|
188
176
|
<div class="memproto">
|
189
177
|
<table class="memname">
|
190
178
|
<tr>
|
191
|
-
<td class="memname">
|
179
|
+
<td class="memname">ApplicationPtr Passenger::SpawnManager::spawn </td>
|
192
180
|
<td>(</td>
|
193
|
-
<td class="
|
181
|
+
<td class="paramtype">const <a class="el" href="structPassenger_1_1PoolOptions.html">PoolOptions</a> & </td>
|
182
|
+
<td class="paramname"> <em>PoolOptions</em> </td>
|
194
183
|
<td> ) </td>
|
195
|
-
<td
|
184
|
+
<td><code> [inline]</code></td>
|
196
185
|
</tr>
|
197
186
|
</table>
|
198
187
|
</div>
|
199
188
|
<div class="memdoc">
|
200
189
|
|
201
190
|
<p>
|
202
|
-
|
191
|
+
Spawn a new instance of an application.
|
203
192
|
<p>
|
204
|
-
|
193
|
+
Spawning details are to be passed via the <code><a class="el" href="structPassenger_1_1PoolOptions.html" title="This struct encapsulates information for ApplicationPool::get() and for SpawnManager::spawn()...">PoolOptions</a></code> parameter.<p>
|
194
|
+
If the spawn server died during the spawning process, then the server will be automatically restarted, and another spawn attempt will be made. If restarting the server fails, or if the second spawn attempt fails, then an exception will be thrown.<p>
|
195
|
+
<dl compact><dt><b>Parameters:</b></dt><dd>
|
196
|
+
<table border="0" cellspacing="2" cellpadding="0">
|
197
|
+
<tr><td valign="top"></td><td valign="top"><em><a class="el" href="structPassenger_1_1PoolOptions.html" title="This struct encapsulates information for ApplicationPool::get() and for SpawnManager::spawn()...">PoolOptions</a></em> </td><td>An object containing the details for this spawn operation, such as which application to spawn. See <a class="el" href="structPassenger_1_1PoolOptions.html" title="This struct encapsulates information for ApplicationPool::get() and for SpawnManager::spawn()...">PoolOptions</a> for details. </td></tr>
|
198
|
+
</table>
|
199
|
+
</dl>
|
200
|
+
<dl class="return" compact><dt><b>Returns:</b></dt><dd>A smart pointer to an <a class="el" href="classPassenger_1_1Application.html" title="Represents a single Ruby on Rails or Rack application instance.">Application</a> object, which represents the application instance that has been spawned. Use this object to communicate with the spawned application. </dd></dl>
|
201
|
+
<dl compact><dt><b>Exceptions:</b></dt><dd>
|
202
|
+
<table border="0" cellspacing="2" cellpadding="0">
|
203
|
+
<tr><td valign="top"></td><td valign="top"><em><a class="el" href="classPassenger_1_1SpawnException.html" title="Thrown when SpawnManager or ApplicationPool fails to spawn an application instance...">SpawnException</a></em> </td><td>Something went wrong. </td></tr>
|
204
|
+
<tr><td valign="top"></td><td valign="top"><em>boost::thread_interrupted</em> </td><td></td></tr>
|
205
|
+
</table>
|
206
|
+
</dl>
|
207
|
+
|
205
208
|
</div>
|
206
209
|
</div><p>
|
207
210
|
<hr>The documentation for this class was generated from the following file:<ul>
|
208
211
|
<li><a class="el" href="SpawnManager_8h-source.html">SpawnManager.h</a></ul>
|
209
212
|
</div>
|
210
|
-
<hr size="1"><address style="text-align: right;"><small>Generated on
|
213
|
+
<hr size="1"><address style="text-align: right;"><small>Generated on Wed Apr 8 22:35:12 2009 for Passenger by
|
211
214
|
<a href="http://www.doxygen.org/index.html">
|
212
|
-
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.
|
215
|
+
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.8 </small></address>
|
213
216
|
</body>
|
214
217
|
</html>
|
@@ -1,10 +1,10 @@
|
|
1
1
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
2
2
|
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
3
3
|
<title>Passenger: Member List</title>
|
4
|
-
<link href="doxygen.css" rel="stylesheet" type="text/css">
|
5
4
|
<link href="tabs.css" rel="stylesheet" type="text/css">
|
5
|
+
<link href="doxygen.css" rel="stylesheet" type="text/css">
|
6
6
|
</head><body>
|
7
|
-
<!-- Generated by Doxygen 1.5.
|
7
|
+
<!-- Generated by Doxygen 1.5.8 -->
|
8
8
|
<div class="navigation" id="top">
|
9
9
|
<div class="tabs">
|
10
10
|
<ul>
|
@@ -37,8 +37,8 @@
|
|
37
37
|
<tr class="memlist"><td><a class="el" href="classPassenger_1_1StandardApplicationPool.html#22b4149ca8256c3042fc342e681b0383">toString</a>(bool lockMutex=true) const </td><td><a class="el" href="classPassenger_1_1StandardApplicationPool.html">Passenger::StandardApplicationPool</a></td><td><code> [inline, virtual]</code></td></tr>
|
38
38
|
<tr class="memlist"><td><a class="el" href="classPassenger_1_1StandardApplicationPool.html#d153c41a1d0aca91d17cf36ed6fdda19">toXml</a>() const </td><td><a class="el" href="classPassenger_1_1StandardApplicationPool.html">Passenger::StandardApplicationPool</a></td><td><code> [inline, virtual]</code></td></tr>
|
39
39
|
</table></div>
|
40
|
-
<hr size="1"><address style="text-align: right;"><small>Generated on
|
40
|
+
<hr size="1"><address style="text-align: right;"><small>Generated on Wed Apr 8 22:35:12 2009 for Passenger by
|
41
41
|
<a href="http://www.doxygen.org/index.html">
|
42
|
-
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.
|
42
|
+
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.8 </small></address>
|
43
43
|
</body>
|
44
44
|
</html>
|
@@ -1,10 +1,10 @@
|
|
1
1
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
2
2
|
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
3
3
|
<title>Passenger: Passenger::StandardApplicationPool Class Reference</title>
|
4
|
-
<link href="doxygen.css" rel="stylesheet" type="text/css">
|
5
4
|
<link href="tabs.css" rel="stylesheet" type="text/css">
|
5
|
+
<link href="doxygen.css" rel="stylesheet" type="text/css">
|
6
6
|
</head><body>
|
7
|
-
<!-- Generated by Doxygen 1.5.
|
7
|
+
<!-- Generated by Doxygen 1.5.8 -->
|
8
8
|
<div class="navigation" id="top">
|
9
9
|
<div class="tabs">
|
10
10
|
<ul>
|
@@ -28,26 +28,21 @@
|
|
28
28
|
<h1>Passenger::StandardApplicationPool Class Reference<br>
|
29
29
|
<small>
|
30
30
|
[<a class="el" href="group__Support.html">Apache-independent support classes and function</a>]</small>
|
31
|
-
</h1><!-- doxytag: class="Passenger::StandardApplicationPool" --><!-- doxytag: inherits="Passenger::ApplicationPool"
|
31
|
+
</h1><!-- doxytag: class="Passenger::StandardApplicationPool" --><!-- doxytag: inherits="Passenger::ApplicationPool" -->A standard implementation of <a class="el" href="classPassenger_1_1ApplicationPool.html" title="A persistent pool of Applications.">ApplicationPool</a> for single-process environments.
|
32
|
+
<a href="#_details">More...</a>
|
33
|
+
<p>
|
34
|
+
<code>#include <<a class="el" href="StandardApplicationPool_8h-source.html">StandardApplicationPool.h</a>></code>
|
32
35
|
<p>
|
33
36
|
<div class="dynheader">
|
34
37
|
Inheritance diagram for Passenger::StandardApplicationPool:</div>
|
35
38
|
<div class="dynsection">
|
36
39
|
<p><center><img src="classPassenger_1_1StandardApplicationPool__inherit__graph.png" border="0" usemap="#Passenger_1_1StandardApplicationPool__inherit__map" alt="Inheritance graph"></center>
|
37
40
|
<map name="Passenger_1_1StandardApplicationPool__inherit__map">
|
38
|
-
<area shape="rect" href="classPassenger_1_1ApplicationPool.html" title="A persistent pool of Applications." alt="" coords="
|
41
|
+
<area shape="rect" href="classPassenger_1_1ApplicationPool.html" title="A persistent pool of Applications." alt="" coords="33,5,223,32"></map>
|
39
42
|
<center><font size="2">[<a target="top" href="graph_legend.html">legend</a>]</font></center></div>
|
40
43
|
|
41
44
|
<p>
|
42
|
-
<a href="classPassenger_1_1StandardApplicationPool-members.html">List of all members.</a><
|
43
|
-
A standard implementation of <a class="el" href="classPassenger_1_1ApplicationPool.html" title="A persistent pool of Applications.">ApplicationPool</a> for single-process environments.
|
44
|
-
<p>
|
45
|
-
The environment may or may not be multithreaded - <a class="el" href="classPassenger_1_1StandardApplicationPool.html" title="A standard implementation of ApplicationPool for single-process environments.">StandardApplicationPool</a> is completely thread-safe. Apache with the threading MPM is an example of a multithreaded single-process environment.<p>
|
46
|
-
This class is unusable in multi-process environments such as Apache with the prefork MPM. The reasons are as follows:<ul>
|
47
|
-
<li><a class="el" href="classPassenger_1_1StandardApplicationPool.html" title="A standard implementation of ApplicationPool for single-process environments.">StandardApplicationPool</a> uses threads internally. Because threads disappear after a fork(), a <a class="el" href="classPassenger_1_1StandardApplicationPool.html" title="A standard implementation of ApplicationPool for single-process environments.">StandardApplicationPool</a> object will become unusable after a fork().</li><li><a class="el" href="classPassenger_1_1StandardApplicationPool.html" title="A standard implementation of ApplicationPool for single-process environments.">StandardApplicationPool</a> stores its internal cache on the heap. Different processes cannot share their heaps, so they will not be able to access each others' pool cache.</li><li><a class="el" href="classPassenger_1_1StandardApplicationPool.html" title="A standard implementation of ApplicationPool for single-process environments.">StandardApplicationPool</a> has a connection to the spawn server. If there are multiple processes, and they all use the spawn servers's connection at the same time without some sort of synchronization, then bad things will happen.</li></ul>
|
48
|
-
<p>
|
49
|
-
(Of course, <a class="el" href="classPassenger_1_1StandardApplicationPool.html" title="A standard implementation of ApplicationPool for single-process environments.">StandardApplicationPool</a> <em>is</em> usable if each process creates its own <a class="el" href="classPassenger_1_1StandardApplicationPool.html" title="A standard implementation of ApplicationPool for single-process environments.">StandardApplicationPool</a> object, but that would defeat the point of having a shared pool.)<p>
|
50
|
-
For multi-process environments, one should use <a class="el" href="classPassenger_1_1ApplicationPoolServer.html" title="Multi-process usage support for ApplicationPool.">ApplicationPoolServer</a> instead. <table border="0" cellpadding="0" cellspacing="0">
|
45
|
+
<a href="classPassenger_1_1StandardApplicationPool-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
|
51
46
|
<tr><td></td></tr>
|
52
47
|
<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
|
53
48
|
<tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1StandardApplicationPool.html#f175704fc477f37ba1d387be09fa2e6b">StandardApplicationPool</a> (const string &spawnServerCommand, const string &logFile="", const string &rubyCommand="ruby", const string &user="")</td></tr>
|
@@ -87,7 +82,15 @@ virtual string </td><td class="memItemRight" valign="bottom"><a class="el"
|
|
87
82
|
|
88
83
|
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns an XML description of the internal state of the application pool. <br></td></tr>
|
89
84
|
</table>
|
90
|
-
<hr><h2>
|
85
|
+
<hr><a name="_details"></a><h2>Detailed Description</h2>
|
86
|
+
A standard implementation of <a class="el" href="classPassenger_1_1ApplicationPool.html" title="A persistent pool of Applications.">ApplicationPool</a> for single-process environments.
|
87
|
+
<p>
|
88
|
+
The environment may or may not be multithreaded - <a class="el" href="classPassenger_1_1StandardApplicationPool.html" title="A standard implementation of ApplicationPool for single-process environments.">StandardApplicationPool</a> is completely thread-safe. Apache with the threading MPM is an example of a multithreaded single-process environment.<p>
|
89
|
+
This class is unusable in multi-process environments such as Apache with the prefork MPM. The reasons are as follows:<ul>
|
90
|
+
<li><a class="el" href="classPassenger_1_1StandardApplicationPool.html" title="A standard implementation of ApplicationPool for single-process environments.">StandardApplicationPool</a> uses threads internally. Because threads disappear after a fork(), a <a class="el" href="classPassenger_1_1StandardApplicationPool.html" title="A standard implementation of ApplicationPool for single-process environments.">StandardApplicationPool</a> object will become unusable after a fork().</li><li><a class="el" href="classPassenger_1_1StandardApplicationPool.html" title="A standard implementation of ApplicationPool for single-process environments.">StandardApplicationPool</a> stores its internal cache on the heap. Different processes cannot share their heaps, so they will not be able to access each others' pool cache.</li><li><a class="el" href="classPassenger_1_1StandardApplicationPool.html" title="A standard implementation of ApplicationPool for single-process environments.">StandardApplicationPool</a> has a connection to the spawn server. If there are multiple processes, and they all use the spawn servers's connection at the same time without some sort of synchronization, then bad things will happen.</li></ul>
|
91
|
+
<p>
|
92
|
+
(Of course, <a class="el" href="classPassenger_1_1StandardApplicationPool.html" title="A standard implementation of ApplicationPool for single-process environments.">StandardApplicationPool</a> <em>is</em> usable if each process creates its own <a class="el" href="classPassenger_1_1StandardApplicationPool.html" title="A standard implementation of ApplicationPool for single-process environments.">StandardApplicationPool</a> object, but that would defeat the point of having a shared pool.)<p>
|
93
|
+
For multi-process environments, one should use <a class="el" href="classPassenger_1_1ApplicationPoolServer.html" title="Multi-process usage support for ApplicationPool.">ApplicationPoolServer</a> instead. <hr><h2>Constructor & Destructor Documentation</h2>
|
91
94
|
<a class="anchor" name="f175704fc477f37ba1d387be09fa2e6b"></a><!-- doxytag: member="Passenger::StandardApplicationPool::StandardApplicationPool" ref="f175704fc477f37ba1d387be09fa2e6b" args="(const string &spawnServerCommand, const string &logFile="", const string &rubyCommand="ruby", const string &user="")" -->
|
92
95
|
<div class="memitem">
|
93
96
|
<div class="memproto">
|
@@ -119,7 +122,7 @@ virtual string </td><td class="memItemRight" valign="bottom"><a class="el"
|
|
119
122
|
<tr>
|
120
123
|
<td></td>
|
121
124
|
<td>)</td>
|
122
|
-
<td></td><td></td><td
|
125
|
+
<td></td><td></td><td><code> [inline]</code></td>
|
123
126
|
</tr>
|
124
127
|
</table>
|
125
128
|
</div>
|
@@ -146,6 +149,29 @@ Create a new <a class="el" href="classPassenger_1_1StandardApplicationPool.html"
|
|
146
149
|
</div>
|
147
150
|
</div><p>
|
148
151
|
<hr><h2>Member Function Documentation</h2>
|
152
|
+
<a class="anchor" name="bcf8faeb4f431ae07ea0e20270661d08"></a><!-- doxytag: member="Passenger::StandardApplicationPool::clear" ref="bcf8faeb4f431ae07ea0e20270661d08" args="()" -->
|
153
|
+
<div class="memitem">
|
154
|
+
<div class="memproto">
|
155
|
+
<table class="memname">
|
156
|
+
<tr>
|
157
|
+
<td class="memname">virtual void Passenger::StandardApplicationPool::clear </td>
|
158
|
+
<td>(</td>
|
159
|
+
<td class="paramname"> </td>
|
160
|
+
<td> ) </td>
|
161
|
+
<td><code> [inline, virtual]</code></td>
|
162
|
+
</tr>
|
163
|
+
</table>
|
164
|
+
</div>
|
165
|
+
<div class="memdoc">
|
166
|
+
|
167
|
+
<p>
|
168
|
+
Clear all application instances that are currently in the pool.
|
169
|
+
<p>
|
170
|
+
This method is used by unit tests to verify that the implementation is correct, and thus should not be called directly.
|
171
|
+
<p>Implements <a class="el" href="classPassenger_1_1ApplicationPool.html#74db4d7a693d45b16320b2296a0c0997">Passenger::ApplicationPool</a>.</p>
|
172
|
+
|
173
|
+
</div>
|
174
|
+
</div><p>
|
149
175
|
<a class="anchor" name="ffc8f3ef8b1d925d203794d191d7fef4"></a><!-- doxytag: member="Passenger::StandardApplicationPool::get" ref="ffc8f3ef8b1d925d203794d191d7fef4" args="(const PoolOptions &options)" -->
|
150
176
|
<div class="memitem">
|
151
177
|
<div class="memproto">
|
@@ -156,7 +182,7 @@ Create a new <a class="el" href="classPassenger_1_1StandardApplicationPool.html"
|
|
156
182
|
<td class="paramtype">const <a class="el" href="structPassenger_1_1PoolOptions.html">PoolOptions</a> & </td>
|
157
183
|
<td class="paramname"> <em>options</em> </td>
|
158
184
|
<td> ) </td>
|
159
|
-
<td
|
185
|
+
<td><code> [inline, virtual]</code></td>
|
160
186
|
</tr>
|
161
187
|
</table>
|
162
188
|
</div>
|
@@ -187,97 +213,97 @@ Internally, this method may either spawn a new application instance, or use an e
|
|
187
213
|
|
188
214
|
</div>
|
189
215
|
</div><p>
|
190
|
-
<a class="anchor" name="
|
216
|
+
<a class="anchor" name="7773c4a3dfbd88eac72401d063831788"></a><!-- doxytag: member="Passenger::StandardApplicationPool::getActive" ref="7773c4a3dfbd88eac72401d063831788" args="() const " -->
|
191
217
|
<div class="memitem">
|
192
218
|
<div class="memproto">
|
193
219
|
<table class="memname">
|
194
220
|
<tr>
|
195
|
-
<td class="memname">virtual
|
221
|
+
<td class="memname">virtual unsigned int Passenger::StandardApplicationPool::getActive </td>
|
196
222
|
<td>(</td>
|
197
223
|
<td class="paramname"> </td>
|
198
224
|
<td> ) </td>
|
199
|
-
<td
|
225
|
+
<td> const<code> [inline, virtual]</code></td>
|
200
226
|
</tr>
|
201
227
|
</table>
|
202
228
|
</div>
|
203
229
|
<div class="memdoc">
|
204
230
|
|
205
231
|
<p>
|
206
|
-
|
232
|
+
Get the number of active applications in the pool.
|
207
233
|
<p>
|
208
|
-
This method is used by unit tests to verify that the implementation is correct, and thus should not be called directly.
|
209
|
-
<p>Implements <a class="el" href="classPassenger_1_1ApplicationPool.html#
|
234
|
+
This method exposes an implementation detail of the underlying pooling algorithm. It is used by unit tests to verify that the implementation is correct, and thus should not be called directly.
|
235
|
+
<p>Implements <a class="el" href="classPassenger_1_1ApplicationPool.html#06d1eae044d4d761ce77cf09049df8c8">Passenger::ApplicationPool</a>.</p>
|
210
236
|
|
211
237
|
</div>
|
212
238
|
</div><p>
|
213
|
-
<a class="anchor" name="
|
239
|
+
<a class="anchor" name="cdbfe2b9ffacdab4438c879c2411bf02"></a><!-- doxytag: member="Passenger::StandardApplicationPool::getCount" ref="cdbfe2b9ffacdab4438c879c2411bf02" args="() const " -->
|
214
240
|
<div class="memitem">
|
215
241
|
<div class="memproto">
|
216
242
|
<table class="memname">
|
217
243
|
<tr>
|
218
|
-
<td class="memname">virtual
|
244
|
+
<td class="memname">virtual unsigned int Passenger::StandardApplicationPool::getCount </td>
|
219
245
|
<td>(</td>
|
220
|
-
<td class="
|
221
|
-
<td class="paramname"> <em>max</em> </td>
|
246
|
+
<td class="paramname"> </td>
|
222
247
|
<td> ) </td>
|
223
|
-
<td
|
248
|
+
<td> const<code> [inline, virtual]</code></td>
|
224
249
|
</tr>
|
225
250
|
</table>
|
226
251
|
</div>
|
227
252
|
<div class="memdoc">
|
228
253
|
|
229
254
|
<p>
|
230
|
-
|
255
|
+
Get the number of active applications in the pool.
|
231
256
|
<p>
|
232
|
-
|
233
|
-
|
234
|
-
<p>Implements <a class="el" href="classPassenger_1_1ApplicationPool.html#0e0f21972ab130c9c0f90c2212328794">Passenger::ApplicationPool</a>.</p>
|
257
|
+
This method exposes an implementation detail of the underlying pooling algorithm. It is used by unit tests to verify that the implementation is correct, and thus should not be called directly.
|
258
|
+
<p>Implements <a class="el" href="classPassenger_1_1ApplicationPool.html#93b0277beb510855f85fee5de5c369bb">Passenger::ApplicationPool</a>.</p>
|
235
259
|
|
236
260
|
</div>
|
237
261
|
</div><p>
|
238
|
-
<a class="anchor" name="
|
262
|
+
<a class="anchor" name="6955152d237920988d20297d2fff5660"></a><!-- doxytag: member="Passenger::StandardApplicationPool::getSpawnServerPid" ref="6955152d237920988d20297d2fff5660" args="() const " -->
|
239
263
|
<div class="memitem">
|
240
264
|
<div class="memproto">
|
241
265
|
<table class="memname">
|
242
266
|
<tr>
|
243
|
-
<td class="memname">virtual
|
267
|
+
<td class="memname">virtual pid_t Passenger::StandardApplicationPool::getSpawnServerPid </td>
|
244
268
|
<td>(</td>
|
245
269
|
<td class="paramname"> </td>
|
246
270
|
<td> ) </td>
|
247
|
-
<td
|
271
|
+
<td> const<code> [inline, virtual]</code></td>
|
248
272
|
</tr>
|
249
273
|
</table>
|
250
274
|
</div>
|
251
275
|
<div class="memdoc">
|
252
276
|
|
253
277
|
<p>
|
254
|
-
Get the
|
278
|
+
Get the process ID of the spawn server that is used.
|
255
279
|
<p>
|
256
|
-
This method exposes an implementation detail
|
257
|
-
<p>Implements <a class="el" href="classPassenger_1_1ApplicationPool.html#
|
280
|
+
This method exposes an implementation detail. It is used by unit tests to verify that the implementation is correct, and thus should not be used directly.
|
281
|
+
<p>Implements <a class="el" href="classPassenger_1_1ApplicationPool.html#d9149c3b434ef8e18fd15a77af1a6c2c">Passenger::ApplicationPool</a>.</p>
|
258
282
|
|
259
283
|
</div>
|
260
284
|
</div><p>
|
261
|
-
<a class="anchor" name="
|
285
|
+
<a class="anchor" name="04ef8c92da189520ad2022f4f82e9553"></a><!-- doxytag: member="Passenger::StandardApplicationPool::setMax" ref="04ef8c92da189520ad2022f4f82e9553" args="(unsigned int max)" -->
|
262
286
|
<div class="memitem">
|
263
287
|
<div class="memproto">
|
264
288
|
<table class="memname">
|
265
289
|
<tr>
|
266
|
-
<td class="memname">virtual
|
290
|
+
<td class="memname">virtual void Passenger::StandardApplicationPool::setMax </td>
|
267
291
|
<td>(</td>
|
268
|
-
<td class="
|
292
|
+
<td class="paramtype">unsigned int </td>
|
293
|
+
<td class="paramname"> <em>max</em> </td>
|
269
294
|
<td> ) </td>
|
270
|
-
<td
|
295
|
+
<td><code> [inline, virtual]</code></td>
|
271
296
|
</tr>
|
272
297
|
</table>
|
273
298
|
</div>
|
274
299
|
<div class="memdoc">
|
275
300
|
|
276
301
|
<p>
|
277
|
-
|
302
|
+
Set a hard limit on the number of application instances that this <a class="el" href="classPassenger_1_1ApplicationPool.html" title="A persistent pool of Applications.">ApplicationPool</a> may spawn.
|
278
303
|
<p>
|
279
|
-
|
280
|
-
|
304
|
+
The exact behavior depends on the used algorithm, and is not specified by these API docs.<p>
|
305
|
+
It is allowed to set a limit lower than the current number of spawned applications.
|
306
|
+
<p>Implements <a class="el" href="classPassenger_1_1ApplicationPool.html#0e0f21972ab130c9c0f90c2212328794">Passenger::ApplicationPool</a>.</p>
|
281
307
|
|
282
308
|
</div>
|
283
309
|
</div><p>
|
@@ -291,7 +317,7 @@ This method exposes an implementation detail of the underlying pooling algorithm
|
|
291
317
|
<td class="paramtype">unsigned int </td>
|
292
318
|
<td class="paramname"> <em>max</em> </td>
|
293
319
|
<td> ) </td>
|
294
|
-
<td
|
320
|
+
<td><code> [inline, virtual]</code></td>
|
295
321
|
</tr>
|
296
322
|
</table>
|
297
323
|
</div>
|
@@ -304,36 +330,13 @@ The exact behavior depends on the used algorithm, and is not specified by these
|
|
304
330
|
It is allowed to set a limit lower than the current number of spawned applications.
|
305
331
|
<p>Implements <a class="el" href="classPassenger_1_1ApplicationPool.html#b0437434c79b5444ac0faf768f1410e8">Passenger::ApplicationPool</a>.</p>
|
306
332
|
|
307
|
-
</div>
|
308
|
-
</div><p>
|
309
|
-
<a class="anchor" name="6955152d237920988d20297d2fff5660"></a><!-- doxytag: member="Passenger::StandardApplicationPool::getSpawnServerPid" ref="6955152d237920988d20297d2fff5660" args="() const " -->
|
310
|
-
<div class="memitem">
|
311
|
-
<div class="memproto">
|
312
|
-
<table class="memname">
|
313
|
-
<tr>
|
314
|
-
<td class="memname">virtual pid_t Passenger::StandardApplicationPool::getSpawnServerPid </td>
|
315
|
-
<td>(</td>
|
316
|
-
<td class="paramname"> </td>
|
317
|
-
<td> ) </td>
|
318
|
-
<td width="100%"> const<code> [inline, virtual]</code></td>
|
319
|
-
</tr>
|
320
|
-
</table>
|
321
|
-
</div>
|
322
|
-
<div class="memdoc">
|
323
|
-
|
324
|
-
<p>
|
325
|
-
Get the process ID of the spawn server that is used.
|
326
|
-
<p>
|
327
|
-
This method exposes an implementation detail. It is used by unit tests to verify that the implementation is correct, and thus should not be used directly.
|
328
|
-
<p>Implements <a class="el" href="classPassenger_1_1ApplicationPool.html#d9149c3b434ef8e18fd15a77af1a6c2c">Passenger::ApplicationPool</a>.</p>
|
329
|
-
|
330
333
|
</div>
|
331
334
|
</div><p>
|
332
335
|
<hr>The documentation for this class was generated from the following file:<ul>
|
333
336
|
<li><a class="el" href="StandardApplicationPool_8h-source.html">StandardApplicationPool.h</a></ul>
|
334
337
|
</div>
|
335
|
-
<hr size="1"><address style="text-align: right;"><small>Generated on
|
338
|
+
<hr size="1"><address style="text-align: right;"><small>Generated on Wed Apr 8 22:35:12 2009 for Passenger by
|
336
339
|
<a href="http://www.doxygen.org/index.html">
|
337
|
-
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.
|
340
|
+
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.8 </small></address>
|
338
341
|
</body>
|
339
342
|
</html>
|