passenger 2.0.6 → 2.1.2
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of passenger might be problematic. Click here for more details.
- data/DEVELOPERS.TXT +10 -4
- data/LICENSE +1 -1
- data/NEWS +0 -0
- data/Rakefile +183 -117
- data/benchmark/dispatcher.rb +5 -9
- data/bin/passenger-install-apache2-module +52 -18
- data/bin/passenger-memory-stats +67 -13
- data/bin/passenger-spawn-server +8 -4
- data/bin/passenger-status +21 -46
- data/bin/passenger-stress-test +5 -5
- data/debian/postinst +1 -1
- data/doc/ApplicationPool algorithm.txt +180 -128
- data/doc/Architectural overview.html +1 -778
- data/doc/Security of user switching support.html +1 -643
- data/doc/Users guide Apache.html +3127 -0
- data/doc/Users guide Nginx.html +1458 -0
- data/doc/Users guide.html +1404 -467
- data/doc/Users guide.txt +843 -105
- data/doc/cxxapi/ApplicationPoolServer_8h-source.html +751 -641
- data/doc/cxxapi/ApplicationPool_8h-source.html +168 -171
- data/doc/cxxapi/Application_8h-source.html +494 -394
- data/doc/cxxapi/Bucket_8h-source.html +21 -15
- data/doc/cxxapi/CachedFileStat_8h-source.html +191 -0
- data/doc/cxxapi/Configuration_8h-source.html +311 -149
- data/doc/cxxapi/DirectoryMapper_8h-source.html +309 -0
- data/doc/cxxapi/DummySpawnManager_8h-source.html +3 -4
- data/doc/cxxapi/Exceptions_8h-source.html +182 -165
- data/doc/cxxapi/FileChecker_8h-source.html +130 -0
- data/doc/cxxapi/Hooks_8h-source.html +2 -3
- data/doc/cxxapi/Logging_8h-source.html +92 -89
- data/doc/cxxapi/MessageChannel_8h-source.html +585 -477
- data/doc/cxxapi/PoolOptions_8h-source.html +305 -0
- data/doc/cxxapi/SpawnManager_8h-source.html +515 -540
- data/doc/cxxapi/StandardApplicationPool_8h-source.html +779 -679
- data/doc/cxxapi/SystemTime_8h-source.html +104 -0
- data/doc/cxxapi/Utils_8h-source.html +331 -227
- data/doc/cxxapi/annotated.html +6 -7
- data/doc/cxxapi/classClient-members.html +1 -2
- data/doc/cxxapi/classClient.html +1 -2
- data/doc/cxxapi/classHooks-members.html +5 -2
- data/doc/cxxapi/classHooks.html +112 -2
- data/doc/cxxapi/classPassenger_1_1Application-members.html +2 -3
- data/doc/cxxapi/classPassenger_1_1Application.html +8 -9
- data/doc/cxxapi/classPassenger_1_1ApplicationPool-members.html +4 -4
- data/doc/cxxapi/classPassenger_1_1ApplicationPool.html +42 -81
- data/doc/cxxapi/classPassenger_1_1ApplicationPoolServer-members.html +1 -2
- data/doc/cxxapi/classPassenger_1_1ApplicationPoolServer.html +3 -4
- data/doc/cxxapi/classPassenger_1_1ApplicationPool__inherit__graph.png +0 -0
- data/doc/cxxapi/classPassenger_1_1Application_1_1Session-members.html +3 -2
- data/doc/cxxapi/classPassenger_1_1Application_1_1Session.html +74 -3
- data/doc/cxxapi/classPassenger_1_1BusyException-members.html +1 -2
- data/doc/cxxapi/classPassenger_1_1BusyException.html +2 -3
- data/doc/cxxapi/classPassenger_1_1ConfigurationException-members.html +1 -2
- data/doc/cxxapi/classPassenger_1_1ConfigurationException.html +2 -3
- data/doc/cxxapi/classPassenger_1_1DirectoryMapper-members.html +38 -0
- data/doc/cxxapi/classPassenger_1_1DirectoryMapper.html +256 -0
- data/doc/cxxapi/classPassenger_1_1DummySpawnManager-members.html +1 -2
- data/doc/cxxapi/classPassenger_1_1DummySpawnManager.html +2 -3
- data/doc/cxxapi/{classPassenger_1_1Thread-members.html → classPassenger_1_1FileChecker-members.html} +4 -5
- data/doc/cxxapi/classPassenger_1_1FileChecker.html +121 -0
- data/doc/cxxapi/classPassenger_1_1FileNotFoundException-members.html +1 -2
- data/doc/cxxapi/classPassenger_1_1FileNotFoundException.html +2 -3
- data/doc/cxxapi/classPassenger_1_1FileNotFoundException__inherit__graph.png +0 -0
- data/doc/cxxapi/classPassenger_1_1FileSystemException-members.html +2 -3
- data/doc/cxxapi/classPassenger_1_1FileSystemException.html +2 -3
- data/doc/cxxapi/classPassenger_1_1FileSystemException__inherit__graph.png +0 -0
- data/doc/cxxapi/classPassenger_1_1IOException-members.html +1 -2
- data/doc/cxxapi/classPassenger_1_1IOException.html +2 -3
- data/doc/cxxapi/classPassenger_1_1IOException__inherit__graph.png +0 -0
- data/doc/cxxapi/classPassenger_1_1MessageChannel-members.html +5 -2
- data/doc/cxxapi/classPassenger_1_1MessageChannel.html +155 -5
- data/doc/cxxapi/{classboost_1_1this__thread_1_1enable__syscall__interruption-members.html → classPassenger_1_1RuntimeException-members.html} +2 -3
- data/doc/cxxapi/{classboost_1_1this__thread_1_1enable__syscall__interruption.html → classPassenger_1_1RuntimeException.html} +10 -8
- data/doc/cxxapi/classPassenger_1_1SpawnException-members.html +1 -2
- data/doc/cxxapi/classPassenger_1_1SpawnException.html +2 -3
- data/doc/cxxapi/classPassenger_1_1SpawnManager-members.html +2 -3
- data/doc/cxxapi/classPassenger_1_1SpawnManager.html +15 -56
- data/doc/cxxapi/classPassenger_1_1StandardApplicationPool-members.html +5 -4
- data/doc/cxxapi/classPassenger_1_1StandardApplicationPool.html +20 -81
- data/doc/cxxapi/classPassenger_1_1StandardApplicationPool__inherit__graph.png +0 -0
- data/doc/cxxapi/classPassenger_1_1SystemException-members.html +2 -3
- data/doc/cxxapi/classPassenger_1_1SystemException.html +9 -10
- data/doc/cxxapi/classPassenger_1_1SystemException__inherit__graph.png +0 -0
- data/doc/cxxapi/{classboost_1_1this__thread_1_1disable__syscall__interruption-members.html → classPassenger_1_1SystemTime-members.html} +5 -3
- data/doc/cxxapi/classPassenger_1_1SystemTime.html +86 -0
- data/doc/cxxapi/classPassenger_1_1TempFile-members.html +2 -3
- data/doc/cxxapi/classPassenger_1_1TempFile.html +17 -9
- data/doc/cxxapi/definitions_8h-source.html +1 -2
- data/doc/cxxapi/files.html +6 -3
- data/doc/cxxapi/functions.html +98 -35
- data/doc/cxxapi/functions_func.html +60 -32
- data/doc/cxxapi/functions_type.html +1 -2
- data/doc/cxxapi/functions_vars.html +27 -2
- data/doc/cxxapi/graph_legend.html +1 -2
- data/doc/cxxapi/graph_legend.png +0 -0
- data/doc/cxxapi/group__Configuration.html +3 -4
- data/doc/cxxapi/group__Configuration.png +0 -0
- data/doc/cxxapi/group__Core.html +3 -4
- data/doc/cxxapi/group__Core.png +0 -0
- data/doc/cxxapi/group__Exceptions.html +4 -2
- data/doc/cxxapi/group__Hooks.html +1 -6
- data/doc/cxxapi/group__Hooks.png +0 -0
- data/doc/cxxapi/group__Support.html +259 -36
- data/doc/cxxapi/hierarchy.html +6 -7
- 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 +2 -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 -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 +1 -2
- 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.png +0 -0
- data/doc/cxxapi/inherit__graph__18.png +0 -0
- 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 +1 -1
- 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 +2 -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 +1 -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 -2
- data/doc/cxxapi/inherit__graph__9.md5 +1 -1
- data/doc/cxxapi/inherit__graph__9.png +0 -0
- data/doc/cxxapi/inherits.html +30 -31
- data/doc/cxxapi/main.html +1 -2
- data/doc/cxxapi/modules.html +1 -2
- data/doc/cxxapi/structPassenger_1_1AnythingToString-members.html +1 -2
- data/doc/cxxapi/structPassenger_1_1AnythingToString.html +2 -3
- data/doc/cxxapi/structPassenger_1_1AnythingToString_3_01vector_3_01string_01_4_01_4-members.html +1 -2
- data/doc/cxxapi/structPassenger_1_1AnythingToString_3_01vector_3_01string_01_4_01_4.html +2 -3
- data/doc/cxxapi/structPassenger_1_1PoolOptions-members.html +49 -0
- data/doc/cxxapi/structPassenger_1_1PoolOptions.html +404 -0
- data/doc/cxxapi/tree.html +18 -20
- data/doc/images/conservative_spawning.png +0 -0
- data/doc/images/conservative_spawning.svg +248 -0
- data/doc/images/smart-lv2.png +0 -0
- data/doc/images/smart-lv2.svg +320 -0
- data/doc/rdoc/classes/ConditionVariable.html +68 -34
- data/doc/rdoc/classes/Exception.html +16 -16
- data/doc/rdoc/classes/GC.html +9 -9
- data/doc/rdoc/classes/IO.html +36 -17
- data/doc/rdoc/classes/PhusionPassenger.html +183 -0
- data/doc/rdoc/classes/PhusionPassenger/AbstractRequestHandler.html +511 -0
- data/doc/rdoc/classes/{Passenger → PhusionPassenger}/AbstractServer.html +285 -242
- data/doc/rdoc/classes/{Passenger → PhusionPassenger}/AbstractServer/ServerAlreadyStarted.html +3 -3
- data/doc/rdoc/classes/{Passenger → PhusionPassenger}/AbstractServer/ServerError.html +3 -3
- data/doc/rdoc/classes/{Passenger → PhusionPassenger}/AbstractServer/ServerNotStarted.html +3 -3
- data/doc/rdoc/classes/{Passenger → PhusionPassenger}/AbstractServer/UnknownMessage.html +3 -3
- data/doc/rdoc/classes/PhusionPassenger/AbstractServerCollection.html +598 -0
- data/doc/rdoc/classes/PhusionPassenger/AdminTools.html +140 -0
- data/doc/rdoc/classes/PhusionPassenger/AdminTools/ControlProcess.html +247 -0
- data/doc/rdoc/classes/PhusionPassenger/AdminTools/ControlProcess/Instance.html +138 -0
- data/doc/rdoc/classes/{Passenger → PhusionPassenger}/AppInitError.html +36 -19
- data/doc/rdoc/classes/{Passenger → PhusionPassenger}/Application.html +81 -96
- data/doc/rdoc/classes/{Passenger → PhusionPassenger}/ConsoleTextTemplate.html +18 -18
- data/doc/rdoc/classes/{Passenger → PhusionPassenger}/FrameworkInitError.html +20 -18
- data/doc/rdoc/classes/{Passenger → PhusionPassenger}/HTMLTemplate.html +18 -18
- data/doc/rdoc/classes/{Passenger → PhusionPassenger}/InitializationError.html +9 -9
- data/doc/rdoc/classes/PhusionPassenger/InvalidPath.html +92 -0
- data/doc/rdoc/classes/{Passenger → PhusionPassenger}/MessageChannel.html +93 -92
- data/doc/rdoc/classes/{Passenger → PhusionPassenger}/NativeSupport.html +55 -25
- data/doc/rdoc/classes/PhusionPassenger/Rack.html +91 -0
- data/doc/rdoc/classes/PhusionPassenger/Rack/ApplicationSpawner.html +185 -0
- data/doc/rdoc/classes/PhusionPassenger/Rack/RequestHandler.html +182 -0
- data/doc/rdoc/classes/PhusionPassenger/Railz.html +95 -0
- data/doc/rdoc/classes/PhusionPassenger/Railz/ApplicationSpawner.html +424 -0
- data/doc/rdoc/classes/PhusionPassenger/Railz/ApplicationSpawner/Error.html +98 -0
- data/doc/rdoc/classes/PhusionPassenger/Railz/CGIFixed.html +200 -0
- data/doc/rdoc/classes/PhusionPassenger/Railz/FrameworkSpawner.html +444 -0
- data/doc/rdoc/classes/PhusionPassenger/Railz/FrameworkSpawner/Error.html +98 -0
- data/doc/rdoc/classes/PhusionPassenger/Railz/RequestHandler.html +154 -0
- data/doc/rdoc/classes/PhusionPassenger/SpawnManager.html +408 -0
- data/doc/rdoc/classes/{Passenger → PhusionPassenger}/UnknownError.html +13 -13
- data/doc/rdoc/classes/PhusionPassenger/Utils.html +687 -0
- data/doc/rdoc/classes/{Passenger → PhusionPassenger}/VersionNotFound.html +8 -8
- data/doc/rdoc/classes/PhusionPassenger/WSGI.html +89 -0
- data/doc/rdoc/classes/PhusionPassenger/WSGI/ApplicationSpawner.html +188 -0
- data/doc/rdoc/classes/PlatformInfo.html +663 -159
- data/doc/rdoc/classes/RakeExtensions.html +4 -4
- data/doc/rdoc/classes/Signal.html +134 -0
- data/doc/rdoc/created.rid +1 -1
- data/doc/rdoc/files/DEVELOPERS_TXT.html +15 -10
- data/doc/rdoc/files/README.html +5 -7
- data/doc/rdoc/files/ext/{passenger → phusion_passenger}/native_support_c.html +2 -2
- data/doc/rdoc/files/lib/{passenger → phusion_passenger}/abstract_request_handler_rb.html +7 -9
- data/doc/rdoc/files/lib/phusion_passenger/abstract_server_collection_rb.html +120 -0
- data/doc/rdoc/files/lib/{passenger → phusion_passenger}/abstract_server_rb.html +7 -10
- data/doc/rdoc/files/lib/phusion_passenger/admin_tools/control_process_rb.html +99 -0
- data/doc/rdoc/files/lib/phusion_passenger/admin_tools_rb.html +92 -0
- data/doc/rdoc/files/lib/{passenger → phusion_passenger}/application_rb.html +6 -8
- data/doc/rdoc/files/lib/{passenger → phusion_passenger}/console_text_template_rb.html +5 -7
- data/doc/rdoc/files/lib/{passenger → phusion_passenger}/constants_rb.html +4 -5
- data/doc/rdoc/files/lib/{passenger → phusion_passenger}/dependencies_rb.html +6 -8
- data/doc/rdoc/files/lib/phusion_passenger/events_rb.html +116 -0
- data/doc/rdoc/files/lib/{passenger → phusion_passenger}/exceptions_rb.html +5 -7
- data/doc/rdoc/files/lib/{passenger → phusion_passenger}/html_template_rb.html +5 -7
- data/doc/rdoc/files/lib/{passenger → phusion_passenger}/message_channel_rb.html +5 -7
- data/doc/rdoc/files/lib/{passenger → phusion_passenger}/platform_info_rb.html +6 -7
- data/doc/rdoc/files/lib/phusion_passenger/rack/application_spawner_rb.html +123 -0
- data/doc/rdoc/files/lib/phusion_passenger/rack/request_handler_rb.html +117 -0
- data/doc/rdoc/files/lib/{passenger/utils_rb.html → phusion_passenger/railz/application_spawner_rb.html} +24 -17
- data/doc/rdoc/files/lib/phusion_passenger/railz/cgi_fixed_rb.html +126 -0
- data/doc/rdoc/files/lib/phusion_passenger/railz/framework_spawner_rb.html +139 -0
- data/doc/rdoc/files/lib/phusion_passenger/railz/request_handler_rb.html +118 -0
- data/doc/rdoc/files/lib/{passenger → phusion_passenger}/simple_benchmarking_rb.html +5 -7
- data/doc/rdoc/files/lib/{passenger → phusion_passenger}/spawn_manager_rb.html +40 -24
- data/doc/rdoc/files/lib/phusion_passenger/utils_rb.html +169 -0
- data/doc/rdoc/files/lib/phusion_passenger/wsgi/application_spawner_rb.html +120 -0
- data/doc/rdoc/files/lib/rake/extensions_rb.html +3 -4
- data/doc/rdoc/fr_class_index.html +37 -19
- data/doc/rdoc/fr_file_index.html +25 -14
- data/doc/rdoc/fr_method_index.html +145 -74
- data/ext/apache2/Application.h +145 -44
- data/ext/apache2/ApplicationPool.h +27 -29
- data/ext/apache2/ApplicationPoolServer.h +183 -72
- data/ext/apache2/ApplicationPoolServerExecutable.cpp +249 -42
- data/ext/apache2/Bucket.cpp +61 -9
- data/ext/apache2/Bucket.h +15 -8
- data/ext/apache2/CachedFileStat.cpp +114 -0
- data/ext/apache2/CachedFileStat.h +169 -0
- data/ext/apache2/Configuration.cpp +213 -22
- data/ext/apache2/Configuration.h +176 -13
- data/ext/apache2/DirectoryMapper.h +287 -0
- data/ext/apache2/Exceptions.h +30 -12
- data/ext/apache2/FileChecker.h +108 -0
- data/ext/apache2/Hooks.cpp +709 -493
- data/ext/apache2/LICENSE-CNRI.TXT +15 -0
- data/ext/apache2/Logging.h +26 -22
- data/ext/apache2/MessageChannel.h +124 -15
- data/ext/apache2/PoolOptions.h +283 -0
- data/ext/apache2/SpawnManager.h +75 -99
- data/ext/apache2/StandardApplicationPool.h +296 -195
- data/ext/apache2/SystemTime.cpp +28 -0
- data/ext/apache2/SystemTime.h +82 -0
- data/ext/apache2/Utils.cpp +172 -18
- data/ext/apache2/Utils.h +124 -19
- data/ext/boost/cstdint.hpp +4 -2
- data/ext/boost/current_function.hpp +67 -0
- data/ext/boost/detail/sp_counted_base.hpp +4 -4
- data/ext/boost/thread/exceptions.hpp +2 -1
- data/ext/boost/thread/pthread/thread.hpp +11 -3
- data/ext/boost/thread/pthread/thread_data.hpp +2 -1
- data/ext/oxt/backtrace.cpp +172 -0
- data/ext/oxt/backtrace.hpp +135 -0
- data/ext/oxt/detail/backtrace_disabled.hpp +39 -0
- data/ext/oxt/detail/backtrace_enabled.hpp +155 -0
- data/ext/oxt/detail/spin_lock_gcc_x86.hpp +82 -0
- data/ext/oxt/detail/spin_lock_portable.hpp +38 -0
- data/ext/oxt/detail/spin_lock_pthreads.hpp +97 -0
- data/ext/oxt/detail/tracable_exception_disabled.hpp +46 -0
- data/ext/oxt/detail/tracable_exception_enabled.hpp +48 -0
- data/ext/oxt/macros.hpp +58 -0
- data/ext/oxt/spin_lock.hpp +55 -0
- data/ext/{apache2/System.cpp → oxt/system_calls.cpp} +87 -52
- data/ext/oxt/system_calls.hpp +234 -0
- data/ext/oxt/thread.cpp +32 -0
- data/ext/oxt/thread.hpp +223 -0
- data/ext/oxt/tracable_exception.cpp +87 -0
- data/ext/oxt/tracable_exception.hpp +35 -0
- data/{lib/passenger/constants.rb → ext/phusion_passenger/extconf.rb} +14 -9
- data/ext/{passenger → phusion_passenger}/native_support.c +33 -6
- data/lib/{passenger → phusion_passenger}/abstract_request_handler.rb +209 -93
- data/lib/{passenger → phusion_passenger}/abstract_server.rb +23 -8
- data/lib/phusion_passenger/abstract_server_collection.rb +301 -0
- data/lib/phusion_passenger/admin_tools.rb +25 -0
- data/lib/phusion_passenger/admin_tools/control_process.rb +107 -0
- data/lib/{passenger → phusion_passenger}/application.rb +13 -16
- data/lib/{passenger → phusion_passenger}/console_text_template.rb +2 -2
- data/{ext/passenger/extconf.rb → lib/phusion_passenger/constants.rb} +5 -5
- data/lib/{passenger → phusion_passenger}/dependencies.rb +38 -32
- data/lib/phusion_passenger/events.rb +45 -0
- data/lib/{passenger → phusion_passenger}/exceptions.rb +12 -5
- data/lib/{passenger → phusion_passenger}/html_template.rb +2 -2
- data/lib/{passenger → phusion_passenger}/message_channel.rb +3 -2
- data/lib/phusion_passenger/platform_info.rb +500 -0
- data/lib/{passenger → phusion_passenger}/rack/application_spawner.rb +29 -22
- data/lib/{passenger → phusion_passenger}/rack/request_handler.rb +14 -9
- data/lib/{passenger → phusion_passenger}/railz/application_spawner.rb +94 -74
- data/lib/{passenger → phusion_passenger}/railz/cgi_fixed.rb +2 -2
- data/lib/{passenger → phusion_passenger}/railz/framework_spawner.rb +86 -98
- data/lib/{passenger → phusion_passenger}/railz/request_handler.rb +6 -6
- data/lib/{passenger → phusion_passenger}/simple_benchmarking.rb +0 -0
- data/lib/{passenger → phusion_passenger}/spawn_manager.rb +136 -128
- data/lib/{passenger → phusion_passenger}/templates/apache2_config_snippets.txt.erb +0 -0
- data/lib/{passenger → phusion_passenger}/templates/apache_must_be_compiled_with_compatible_mpm.txt.erb +0 -0
- data/lib/phusion_passenger/templates/app_exited_during_initialization.html.erb +38 -0
- data/lib/{passenger → phusion_passenger}/templates/app_init_error.html.erb +0 -0
- data/lib/{passenger → phusion_passenger}/templates/database_error.html.erb +0 -0
- data/lib/{passenger → phusion_passenger}/templates/deployment_example.txt.erb +1 -1
- data/lib/{passenger → phusion_passenger}/templates/error_layout.css +0 -0
- data/lib/{passenger → phusion_passenger}/templates/error_layout.html.erb +0 -0
- data/lib/{passenger → phusion_passenger}/templates/framework_init_error.html.erb +0 -0
- data/lib/{passenger → phusion_passenger}/templates/general_error.html.erb +0 -0
- data/lib/{passenger → phusion_passenger}/templates/invalid_app_root.html.erb +1 -1
- data/lib/{passenger → phusion_passenger}/templates/load_error.html.erb +0 -0
- data/lib/{passenger → phusion_passenger}/templates/no_write_permission_to_passenger_root.txt.erb +0 -0
- data/lib/{passenger → phusion_passenger}/templates/possible_solutions_for_compilation_and_installation_problems.txt.erb +0 -0
- data/lib/{passenger → phusion_passenger}/templates/run_installer_as_root.txt.erb +0 -0
- data/lib/{passenger → phusion_passenger}/templates/version_not_found.html.erb +0 -0
- data/lib/{passenger → phusion_passenger}/templates/welcome.txt.erb +0 -0
- data/lib/{passenger → phusion_passenger}/utils.rb +210 -44
- data/lib/{passenger → phusion_passenger}/wsgi/application_spawner.rb +18 -15
- data/lib/{passenger → phusion_passenger}/wsgi/request_handler.py +7 -1
- data/man/passenger-memory-stats.8 +1 -1
- data/misc/render_error_pages.rb +1 -1
- data/test/ApplicationPoolServerTest.cpp +0 -28
- data/test/ApplicationPoolServer_ApplicationPoolTest.cpp +4 -0
- data/test/ApplicationPoolTest.cpp +307 -69
- data/test/CachedFileStatTest.cpp +262 -0
- data/test/FileCheckerTest.cpp +79 -0
- data/test/MessageChannelTest.cpp +3 -3
- data/test/PoolOptionsTest.cpp +37 -0
- data/test/SpawnManagerTest.cpp +4 -4
- data/test/StandardApplicationPoolTest.cpp +4 -0
- data/test/SystemTimeTest.cpp +37 -0
- data/test/UtilsTest.cpp +137 -0
- data/test/integration_tests.rb +270 -23
- data/test/oxt/backtrace_test.cpp +128 -0
- data/test/oxt/oxt_test_main.cpp +25 -0
- data/test/oxt/syscall_interruption_test.cpp +50 -0
- data/test/ruby/abstract_request_handler_spec.rb +83 -0
- data/test/ruby/abstract_server_collection_spec.rb +246 -0
- data/test/ruby/application_spec.rb +3 -3
- data/test/ruby/message_channel_spec.rb +2 -2
- data/test/ruby/rack/application_spawner_spec.rb +3 -5
- data/test/ruby/rails/application_spawner_spec.rb +54 -15
- data/test/ruby/rails/framework_spawner_spec.rb +6 -8
- data/test/ruby/rails/minimal_spawner_spec.rb +29 -0
- data/test/ruby/rails/spawner_error_handling_spec.rb +1 -1
- data/test/ruby/rails/spawner_privilege_lowering_spec.rb +3 -3
- data/test/ruby/spawn_manager_spec.rb +23 -12
- data/test/ruby/utils_spec.rb +36 -2
- data/test/ruby/wsgi/application_spawner_spec.rb +47 -0
- data/test/stub/apache2/httpd.conf.erb +3 -5
- data/test/stub/message_channel.rb +2 -2
- data/test/stub/message_channel_2.rb +2 -2
- data/test/stub/message_channel_3.rb +3 -3
- data/test/stub/minimal-railsapp/README +0 -0
- data/test/stub/minimal-railsapp/config/application.rb +0 -0
- data/test/stub/minimal-railsapp/config/environment.rb +0 -0
- data/test/stub/minimal-railsapp/vendor/rails/actionmailer/lib/action_mailer.rb +0 -0
- data/test/stub/minimal-railsapp/vendor/rails/actionpack/lib/action_controller.rb +0 -0
- data/test/stub/minimal-railsapp/vendor/rails/actionpack/lib/action_pack.rb +0 -0
- data/test/stub/minimal-railsapp/vendor/rails/actionpack/lib/action_view.rb +0 -0
- data/test/stub/minimal-railsapp/vendor/rails/activerecord/lib/active_record.rb +0 -0
- data/test/stub/minimal-railsapp/vendor/rails/activeresource/lib/active_resource.rb +0 -0
- data/test/stub/minimal-railsapp/vendor/rails/activesupport/lib/active_support.rb +0 -0
- data/test/stub/minimal-railsapp/vendor/rails/activesupport/lib/active_support/whiny_nil.rb +0 -0
- data/test/stub/minimal-railsapp/vendor/rails/railties/lib/dispatcher.rb +0 -0
- data/test/stub/minimal-railsapp/vendor/rails/railties/lib/initializer.rb +0 -0
- data/test/stub/minimal-railsapp/vendor/rails/railties/lib/ruby_version_check.rb +0 -0
- data/test/stub/rails_apps/foobar/app/controllers/foo_controller.rb +8 -0
- data/test/stub/rails_apps/foobar/config/environments/development.rb +1 -2
- data/test/stub/rails_apps/mycook/app/controllers/welcome_controller.rb +21 -1
- data/test/stub/rails_apps/mycook/sites/some.site/public/uploads.html +26 -0
- data/test/stub/rails_apps/mycook/sites/some.site/public/welcome/cached.html +26 -0
- data/test/stub/railsapp/app/controllers/application.rb +0 -0
- data/test/stub/railsapp/app/controllers/bar_controller_1.rb +0 -0
- data/test/stub/railsapp/app/controllers/bar_controller_2.rb +1 -1
- data/test/stub/railsapp/app/controllers/foo_controller.rb +4 -0
- data/test/stub/railsapp/app/helpers/application_helper.rb +0 -0
- data/test/stub/railsapp/config/boot.rb +0 -0
- data/test/stub/railsapp/config/database.yml +0 -0
- data/test/stub/railsapp/config/environment.rb +0 -0
- data/test/stub/railsapp/config/environments/development.rb +0 -0
- data/test/stub/railsapp/config/environments/production.rb +0 -0
- data/test/stub/railsapp/config/initializers/inflections.rb +0 -0
- data/test/stub/railsapp/config/initializers/mime_types.rb +0 -0
- data/test/stub/railsapp/config/routes.rb +0 -0
- data/test/stub/railsapp/public/useless.txt +0 -0
- data/test/stub/spawn_server.rb +3 -4
- data/test/stub/wsgi/passenger_wsgi.pyc +0 -0
- data/test/support/apache2_controller.rb +57 -7
- data/test/support/tut.h +15 -0
- data/vendor/README +12 -0
- data/vendor/README_FOR_PACKAGERS +1 -0
- data/vendor/rack-0.9.1/AUTHORS +8 -0
- data/vendor/rack-0.9.1/COPYING +18 -0
- data/vendor/rack-0.9.1/ChangeLog +1423 -0
- data/vendor/rack-0.9.1/KNOWN-ISSUES +18 -0
- data/vendor/rack-0.9.1/README +306 -0
- data/vendor/rack-0.9.1/Rakefile +188 -0
- data/vendor/rack-0.9.1/SPEC +129 -0
- data/vendor/rack-0.9.1/lib/rack.rb +86 -0
- data/vendor/rack-0.9.1/lib/rack/adapter/camping.rb +22 -0
- data/vendor/rack-0.9.1/lib/rack/auth/abstract/handler.rb +28 -0
- data/vendor/rack-0.9.1/lib/rack/auth/abstract/request.rb +37 -0
- data/vendor/rack-0.9.1/lib/rack/auth/basic.rb +58 -0
- data/vendor/rack-0.9.1/lib/rack/auth/digest/md5.rb +124 -0
- data/vendor/rack-0.9.1/lib/rack/auth/digest/nonce.rb +51 -0
- data/vendor/rack-0.9.1/lib/rack/auth/digest/params.rb +55 -0
- data/vendor/rack-0.9.1/lib/rack/auth/digest/request.rb +40 -0
- data/vendor/rack-0.9.1/lib/rack/auth/openid.rb +438 -0
- data/vendor/rack-0.9.1/lib/rack/builder.rb +67 -0
- data/vendor/rack-0.9.1/lib/rack/cascade.rb +36 -0
- data/vendor/rack-0.9.1/lib/rack/commonlogger.rb +61 -0
- data/vendor/rack-0.9.1/lib/rack/conditionalget.rb +43 -0
- data/vendor/rack-0.9.1/lib/rack/content_length.rb +25 -0
- data/vendor/rack-0.9.1/lib/rack/deflater.rb +87 -0
- data/vendor/rack-0.9.1/lib/rack/directory.rb +150 -0
- data/vendor/rack-0.9.1/lib/rack/file.rb +85 -0
- data/vendor/rack-0.9.1/lib/rack/handler.rb +48 -0
- data/vendor/rack-0.9.1/lib/rack/handler/cgi.rb +57 -0
- data/vendor/rack-0.9.1/lib/rack/handler/evented_mongrel.rb +8 -0
- data/vendor/rack-0.9.1/lib/rack/handler/fastcgi.rb +86 -0
- data/vendor/rack-0.9.1/lib/rack/handler/lsws.rb +52 -0
- data/vendor/rack-0.9.1/lib/rack/handler/mongrel.rb +82 -0
- data/vendor/rack-0.9.1/lib/rack/handler/scgi.rb +57 -0
- data/vendor/rack-0.9.1/lib/rack/handler/swiftiplied_mongrel.rb +8 -0
- data/vendor/rack-0.9.1/lib/rack/handler/thin.rb +15 -0
- data/vendor/rack-0.9.1/lib/rack/handler/webrick.rb +61 -0
- data/vendor/rack-0.9.1/lib/rack/head.rb +19 -0
- data/vendor/rack-0.9.1/lib/rack/lint.rb +465 -0
- data/vendor/rack-0.9.1/lib/rack/lobster.rb +65 -0
- data/vendor/rack-0.9.1/lib/rack/methodoverride.rb +27 -0
- data/vendor/rack-0.9.1/lib/rack/mime.rb +204 -0
- data/vendor/rack-0.9.1/lib/rack/mock.rb +160 -0
- data/vendor/rack-0.9.1/lib/rack/recursive.rb +57 -0
- data/vendor/rack-0.9.1/lib/rack/reloader.rb +64 -0
- data/vendor/rack-0.9.1/lib/rack/request.rb +218 -0
- data/vendor/rack-0.9.1/lib/rack/response.rb +171 -0
- data/vendor/rack-0.9.1/lib/rack/session/abstract/id.rb +153 -0
- data/vendor/rack-0.9.1/lib/rack/session/cookie.rb +89 -0
- data/vendor/rack-0.9.1/lib/rack/session/memcache.rb +97 -0
- data/vendor/rack-0.9.1/lib/rack/session/pool.rb +73 -0
- data/vendor/rack-0.9.1/lib/rack/showexceptions.rb +348 -0
- data/vendor/rack-0.9.1/lib/rack/showstatus.rb +106 -0
- data/vendor/rack-0.9.1/lib/rack/static.rb +38 -0
- data/vendor/rack-0.9.1/lib/rack/urlmap.rb +48 -0
- data/vendor/rack-0.9.1/lib/rack/utils.rb +347 -0
- metadata +1197 -1055
- data/doc/cxxapi/System_8h-source.html +0 -251
- data/doc/cxxapi/classDirectoryMapper-members.html +0 -38
- data/doc/cxxapi/classDirectoryMapper.html +0 -203
- data/doc/cxxapi/classPassenger_1_1Thread.html +0 -100
- data/doc/cxxapi/classboost_1_1this__thread_1_1disable__syscall__interruption.html +0 -46
- data/doc/cxxapi/classboost_1_1this__thread_1_1restore__syscall__interruption-members.html +0 -33
- data/doc/cxxapi/classboost_1_1this__thread_1_1restore__syscall__interruption.html +0 -44
- data/doc/cxxapi/namespacePassenger.html +0 -208
- data/doc/cxxapi/namespacePassenger_1_1InterruptableCalls.html +0 -43
- data/doc/cxxapi/namespacemembers.html +0 -70
- data/doc/cxxapi/namespacemembers_func.html +0 -66
- data/doc/cxxapi/namespacemembers_type.html +0 -46
- data/doc/cxxapi/namespaces.html +0 -35
- data/doc/rdoc/classes/Passenger.html +0 -136
- data/doc/rdoc/classes/Passenger/AbstractRequestHandler.html +0 -402
- data/doc/rdoc/classes/Passenger/SpawnManager.html +0 -379
- data/doc/rdoc/classes/Passenger/Utils.html +0 -578
- data/ext/apache2/System.h +0 -228
- data/lib/passenger/platform_info.rb +0 -302
- data/lib/passenger/templates/app_exited_during_initialization.html.erb +0 -19
- data/test/stub/apache2/httpd.conf +0 -75
- data/test/stub/rails_apps/foobar/config/environments/test.rb +0 -22
- data/test/stub/rails_apps/mycook/config/environments/test.rb +0 -22
- data/test/stub/railsapp/config/environments/test.rb +0 -22
- data/test/stub/railsapp2/config/environments/test.rb +0 -22
@@ -10,7 +10,6 @@
|
|
10
10
|
<ul>
|
11
11
|
<li><a href="main.html"><span>Main Page</span></a></li>
|
12
12
|
<li><a href="modules.html"><span>Modules</span></a></li>
|
13
|
-
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
|
14
13
|
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
|
15
14
|
<li><a href="files.html"><span>Files</span></a></li>
|
16
15
|
</ul>
|
@@ -24,9 +23,9 @@
|
|
24
23
|
</div>
|
25
24
|
</div>
|
26
25
|
<div class="contents">
|
27
|
-
<h1>
|
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>
|
28
27
|
</table></div>
|
29
|
-
<hr size="1"><address style="text-align: right;"><small>Generated on
|
28
|
+
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Mar 13 19:24:35 2009 for Passenger by
|
30
29
|
<a href="http://www.doxygen.org/index.html">
|
31
30
|
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
|
32
31
|
</body>
|
@@ -1,6 +1,6 @@
|
|
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
|
-
<title>Passenger:
|
3
|
+
<title>Passenger: Passenger::RuntimeException Class Reference</title>
|
4
4
|
<link href="doxygen.css" rel="stylesheet" type="text/css">
|
5
5
|
<link href="tabs.css" rel="stylesheet" type="text/css">
|
6
6
|
</head><body>
|
@@ -10,7 +10,6 @@
|
|
10
10
|
<ul>
|
11
11
|
<li><a href="main.html"><span>Main Page</span></a></li>
|
12
12
|
<li><a href="modules.html"><span>Modules</span></a></li>
|
13
|
-
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
|
14
13
|
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
|
15
14
|
<li><a href="files.html"><span>Files</span></a></li>
|
16
15
|
</ul>
|
@@ -22,22 +21,25 @@
|
|
22
21
|
<li><a href="functions.html"><span>Class Members</span></a></li>
|
23
22
|
</ul>
|
24
23
|
</div>
|
25
|
-
<div class="navpath"><b>
|
24
|
+
<div class="navpath"><b>Passenger</b>::<a class="el" href="classPassenger_1_1RuntimeException.html">RuntimeException</a>
|
26
25
|
</div>
|
27
26
|
</div>
|
28
27
|
<div class="contents">
|
29
|
-
<h1>
|
28
|
+
<h1>Passenger::RuntimeException Class Reference<br>
|
29
|
+
<small>
|
30
|
+
[<a class="el" href="group__Exceptions.html">Exceptions</a>]</small>
|
31
|
+
</h1><!-- doxytag: class="Passenger::RuntimeException" --><code>#include <<a class="el" href="Exceptions_8h-source.html">Exceptions.h</a>></code>
|
30
32
|
<p>
|
31
33
|
|
32
34
|
<p>
|
33
|
-
<a href="
|
34
|
-
|
35
|
+
<a href="classPassenger_1_1RuntimeException-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>
|
36
|
+
A generic runtime exception. <table border="0" cellpadding="0" cellspacing="0">
|
35
37
|
<tr><td></td></tr>
|
36
38
|
</table>
|
37
39
|
<hr>The documentation for this class was generated from the following file:<ul>
|
38
|
-
<li><a class="el" href="
|
40
|
+
<li><a class="el" href="Exceptions_8h-source.html">Exceptions.h</a></ul>
|
39
41
|
</div>
|
40
|
-
<hr size="1"><address style="text-align: right;"><small>Generated on
|
42
|
+
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Mar 13 19:24:35 2009 for Passenger by
|
41
43
|
<a href="http://www.doxygen.org/index.html">
|
42
44
|
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
|
43
45
|
</body>
|
@@ -10,7 +10,6 @@
|
|
10
10
|
<ul>
|
11
11
|
<li><a href="main.html"><span>Main Page</span></a></li>
|
12
12
|
<li><a href="modules.html"><span>Modules</span></a></li>
|
13
|
-
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
|
14
13
|
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
|
15
14
|
<li><a href="files.html"><span>Files</span></a></li>
|
16
15
|
</ul>
|
@@ -28,7 +27,7 @@
|
|
28
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>
|
29
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>
|
30
29
|
</table></div>
|
31
|
-
<hr size="1"><address style="text-align: right;"><small>Generated on
|
30
|
+
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Mar 13 19:24:35 2009 for Passenger by
|
32
31
|
<a href="http://www.doxygen.org/index.html">
|
33
32
|
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
|
34
33
|
</body>
|
@@ -10,7 +10,6 @@
|
|
10
10
|
<ul>
|
11
11
|
<li><a href="main.html"><span>Main Page</span></a></li>
|
12
12
|
<li><a href="modules.html"><span>Modules</span></a></li>
|
13
|
-
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
|
14
13
|
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
|
15
14
|
<li><a href="files.html"><span>Files</span></a></li>
|
16
15
|
</ul>
|
@@ -22,7 +21,7 @@
|
|
22
21
|
<li><a href="functions.html"><span>Class Members</span></a></li>
|
23
22
|
</ul>
|
24
23
|
</div>
|
25
|
-
<div class="navpath"><
|
24
|
+
<div class="navpath"><b>Passenger</b>::<a class="el" href="classPassenger_1_1SpawnException.html">SpawnException</a>
|
26
25
|
</div>
|
27
26
|
</div>
|
28
27
|
<div class="contents">
|
@@ -70,7 +69,7 @@ Return the error page content.
|
|
70
69
|
<hr>The documentation for this class was generated from the following file:<ul>
|
71
70
|
<li><a class="el" href="Exceptions_8h-source.html">Exceptions.h</a></ul>
|
72
71
|
</div>
|
73
|
-
<hr size="1"><address style="text-align: right;"><small>Generated on
|
72
|
+
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Mar 13 19:24:35 2009 for Passenger by
|
74
73
|
<a href="http://www.doxygen.org/index.html">
|
75
74
|
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
|
76
75
|
</body>
|
@@ -10,7 +10,6 @@
|
|
10
10
|
<ul>
|
11
11
|
<li><a href="main.html"><span>Main Page</span></a></li>
|
12
12
|
<li><a href="modules.html"><span>Modules</span></a></li>
|
13
|
-
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
|
14
13
|
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
|
15
14
|
<li><a href="files.html"><span>Files</span></a></li>
|
16
15
|
</ul>
|
@@ -27,10 +26,10 @@
|
|
27
26
|
<h1>Passenger::SpawnManager Member List</h1>This is the complete list of members for <a class="el" href="classPassenger_1_1SpawnManager.html">Passenger::SpawnManager</a>, including all inherited members.<p><table>
|
28
27
|
<tr class="memlist"><td><a class="el" href="classPassenger_1_1SpawnManager.html#1f77e2e7e6cb464028c13a29f983ad8e">getServerPid</a>() const </td><td><a class="el" href="classPassenger_1_1SpawnManager.html">Passenger::SpawnManager</a></td><td><code> [inline]</code></td></tr>
|
29
28
|
<tr class="memlist"><td><a class="el" href="classPassenger_1_1SpawnManager.html#2e85c43042b9556ca2fd74b8d28956ce">reload</a>(const string &appRoot)</td><td><a class="el" href="classPassenger_1_1SpawnManager.html">Passenger::SpawnManager</a></td><td><code> [inline]</code></td></tr>
|
30
|
-
<tr class="memlist"><td><a class="el" href="classPassenger_1_1SpawnManager.html#
|
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>
|
31
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>
|
32
31
|
</table></div>
|
33
|
-
<hr size="1"><address style="text-align: right;"><small>Generated on
|
32
|
+
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Mar 13 19:24:35 2009 for Passenger by
|
34
33
|
<a href="http://www.doxygen.org/index.html">
|
35
34
|
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
|
36
35
|
</body>
|
@@ -10,7 +10,6 @@
|
|
10
10
|
<ul>
|
11
11
|
<li><a href="main.html"><span>Main Page</span></a></li>
|
12
12
|
<li><a href="modules.html"><span>Modules</span></a></li>
|
13
|
-
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
|
14
13
|
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
|
15
14
|
<li><a href="files.html"><span>Files</span></a></li>
|
16
15
|
</ul>
|
@@ -22,7 +21,7 @@
|
|
22
21
|
<li><a href="functions.html"><span>Class Members</span></a></li>
|
23
22
|
</ul>
|
24
23
|
</div>
|
25
|
-
<div class="navpath"><
|
24
|
+
<div class="navpath"><b>Passenger</b>::<a class="el" href="classPassenger_1_1SpawnManager.html">SpawnManager</a>
|
26
25
|
</div>
|
27
26
|
</div>
|
28
27
|
<div class="contents">
|
@@ -36,12 +35,12 @@
|
|
36
35
|
<a href="classPassenger_1_1SpawnManager-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>
|
37
36
|
Spawning of Ruby on Rails/Rack application instances.
|
38
37
|
<p>
|
39
|
-
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#
|
38
|
+
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>
|
40
39
|
<dl class="note" compact><dt><b>Note:</b></dt><dd>This class is fully thread-safe.</dd></dl>
|
41
40
|
<h2>Implementation details</h2>
|
42
41
|
<p>
|
43
42
|
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>
|
44
|
-
If the spawn server dies during the middle of an operation, it will be restarted. See <a class="el" href="classPassenger_1_1SpawnManager.html#
|
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>
|
45
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>
|
46
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>
|
47
46
|
See the documentation of the spawn server for full implementation details. <table border="0" cellpadding="0" cellspacing="0">
|
@@ -50,9 +49,9 @@ See the documentation of the spawn server for full implementation details. <tabl
|
|
50
49
|
<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>
|
51
50
|
|
52
51
|
<tr><td class="mdescLeft"> </td><td class="mdescRight">Construct a new <a class="el" href="classPassenger_1_1SpawnManager.html" title="Spawning of Ruby on Rails/Rack application instances.">SpawnManager</a>. <a href="#fdefbbbad39833912ae7f9f106083099"></a><br></td></tr>
|
53
|
-
<tr><td class="memItemLeft" nowrap align="right" valign="top"
|
52
|
+
<tr><td class="memItemLeft" nowrap align="right" valign="top">ApplicationPtr </td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1SpawnManager.html#af035d564cc4e6683508939c9d6dbb64">spawn</a> (const <a class="el" href="structPassenger_1_1PoolOptions.html">PoolOptions</a> &<a class="el" href="structPassenger_1_1PoolOptions.html">PoolOptions</a>)</td></tr>
|
54
53
|
|
55
|
-
<tr><td class="mdescLeft"> </td><td class="mdescRight">Spawn a new instance of
|
54
|
+
<tr><td class="mdescLeft"> </td><td class="mdescRight">Spawn a new instance of an application. <a href="#af035d564cc4e6683508939c9d6dbb64"></a><br></td></tr>
|
56
55
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1SpawnManager.html#2e85c43042b9556ca2fd74b8d28956ce">reload</a> (const string &appRoot)</td></tr>
|
57
56
|
|
58
57
|
<tr><td class="mdescLeft"> </td><td class="mdescRight">Remove the cached application instances at the given application root. <a href="#2e85c43042b9556ca2fd74b8d28956ce"></a><br></td></tr>
|
@@ -119,70 +118,30 @@ Construct a new <a class="el" href="classPassenger_1_1SpawnManager.html" title="
|
|
119
118
|
</div>
|
120
119
|
</div><p>
|
121
120
|
<hr><h2>Member Function Documentation</h2>
|
122
|
-
<a class="anchor" name="
|
121
|
+
<a class="anchor" name="af035d564cc4e6683508939c9d6dbb64"></a><!-- doxytag: member="Passenger::SpawnManager::spawn" ref="af035d564cc4e6683508939c9d6dbb64" args="(const PoolOptions &PoolOptions)" -->
|
123
122
|
<div class="memitem">
|
124
123
|
<div class="memproto">
|
125
124
|
<table class="memname">
|
126
125
|
<tr>
|
127
|
-
<td class="memname"
|
126
|
+
<td class="memname">ApplicationPtr Passenger::SpawnManager::spawn </td>
|
128
127
|
<td>(</td>
|
129
|
-
<td class="paramtype">const
|
130
|
-
<td class="paramname"> <em>
|
131
|
-
|
132
|
-
|
133
|
-
<td class="paramkey"></td>
|
134
|
-
<td></td>
|
135
|
-
<td class="paramtype">bool </td>
|
136
|
-
<td class="paramname"> <em>lowerPrivilege</em> = <code>true</code>, </td>
|
137
|
-
</tr>
|
138
|
-
<tr>
|
139
|
-
<td class="paramkey"></td>
|
140
|
-
<td></td>
|
141
|
-
<td class="paramtype">const string & </td>
|
142
|
-
<td class="paramname"> <em>lowestUser</em> = <code>"nobody"</code>, </td>
|
143
|
-
</tr>
|
144
|
-
<tr>
|
145
|
-
<td class="paramkey"></td>
|
146
|
-
<td></td>
|
147
|
-
<td class="paramtype">const string & </td>
|
148
|
-
<td class="paramname"> <em>environment</em> = <code>"production"</code>, </td>
|
149
|
-
</tr>
|
150
|
-
<tr>
|
151
|
-
<td class="paramkey"></td>
|
152
|
-
<td></td>
|
153
|
-
<td class="paramtype">const string & </td>
|
154
|
-
<td class="paramname"> <em>spawnMethod</em> = <code>"smart"</code>, </td>
|
155
|
-
</tr>
|
156
|
-
<tr>
|
157
|
-
<td class="paramkey"></td>
|
158
|
-
<td></td>
|
159
|
-
<td class="paramtype">const string & </td>
|
160
|
-
<td class="paramname"> <em>appType</em> = <code>"rails"</code></td><td> </td>
|
161
|
-
</tr>
|
162
|
-
<tr>
|
163
|
-
<td></td>
|
164
|
-
<td>)</td>
|
165
|
-
<td></td><td></td><td width="100%"><code> [inline]</code></td>
|
128
|
+
<td class="paramtype">const <a class="el" href="structPassenger_1_1PoolOptions.html">PoolOptions</a> & </td>
|
129
|
+
<td class="paramname"> <em>PoolOptions</em> </td>
|
130
|
+
<td> ) </td>
|
131
|
+
<td width="100%"><code> [inline]</code></td>
|
166
132
|
</tr>
|
167
133
|
</table>
|
168
134
|
</div>
|
169
135
|
<div class="memdoc">
|
170
136
|
|
171
137
|
<p>
|
172
|
-
Spawn a new instance of
|
138
|
+
Spawn a new instance of an application.
|
173
139
|
<p>
|
140
|
+
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>
|
174
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>
|
175
|
-
If <code>lowerPrivilege</code> is true, then it will be attempt to switch the spawned application instance to the user who owns the application's <code>config/environment.rb</code>, and to the default group of that user.<p>
|
176
|
-
If that user doesn't exist on the system, or if that user is root, then it will be attempted to switch to the username given by <code>lowestUser</code> (and to the default group of that user). If <code>lowestUser</code> doesn't exist either, or if switching user failed (because the spawn server process does not have the privilege to do so), then the application will be spawned anyway, without reporting an error.<p>
|
177
|
-
It goes without saying that lowering privilege is only possible if the spawn server is running as root (and thus, by induction, that <a class="el" href="namespacePassenger.html" title="Support for interruption of blocking system calls and C library calls.">Passenger</a> and Apache's control process are also running as root). Note that if Apache is listening on port 80, then its control process must be running as root. See "doc/Security of user switching.txt" for a detailed explanation.<p>
|
178
142
|
<dl compact><dt><b>Parameters:</b></dt><dd>
|
179
143
|
<table border="0" cellspacing="2" cellpadding="0">
|
180
|
-
<tr><td valign="top"></td><td valign="top"><em>
|
181
|
-
<tr><td valign="top"></td><td valign="top"><em>lowerPrivilege</em> </td><td>Whether to lower the application's privileges. </td></tr>
|
182
|
-
<tr><td valign="top"></td><td valign="top"><em>lowestUser</em> </td><td>The user to fallback to if lowering privilege fails. </td></tr>
|
183
|
-
<tr><td valign="top"></td><td valign="top"><em>environment</em> </td><td>The RAILS_ENV/RACK_ENV environment that should be used. May not be empty. </td></tr>
|
184
|
-
<tr><td valign="top"></td><td valign="top"><em>spawnMethod</em> </td><td>The spawn method to use. Either "smart" or "conservative". See the Ruby class <a class="el" href="classPassenger_1_1SpawnManager.html" title="Spawning of Ruby on Rails/Rack application instances.">SpawnManager</a> for details. </td></tr>
|
185
|
-
<tr><td valign="top"></td><td valign="top"><em>appType</em> </td><td>The application type. Either "rails" or "rack". </td></tr>
|
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>
|
186
145
|
</table>
|
187
146
|
</dl>
|
188
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>
|
@@ -248,7 +207,7 @@ This method is used in the unit tests and should not be used directly.
|
|
248
207
|
<hr>The documentation for this class was generated from the following file:<ul>
|
249
208
|
<li><a class="el" href="SpawnManager_8h-source.html">SpawnManager.h</a></ul>
|
250
209
|
</div>
|
251
|
-
<hr size="1"><address style="text-align: right;"><small>Generated on
|
210
|
+
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Mar 13 19:24:35 2009 for Passenger by
|
252
211
|
<a href="http://www.doxygen.org/index.html">
|
253
212
|
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
|
254
213
|
</body>
|
@@ -10,7 +10,6 @@
|
|
10
10
|
<ul>
|
11
11
|
<li><a href="main.html"><span>Main Page</span></a></li>
|
12
12
|
<li><a href="modules.html"><span>Modules</span></a></li>
|
13
|
-
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
|
14
13
|
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
|
15
14
|
<li><a href="files.html"><span>Files</span></a></li>
|
16
15
|
</ul>
|
@@ -26,17 +25,19 @@
|
|
26
25
|
<div class="contents">
|
27
26
|
<h1>Passenger::StandardApplicationPool Member List</h1>This is the complete list of members for <a class="el" href="classPassenger_1_1StandardApplicationPool.html">Passenger::StandardApplicationPool</a>, including all inherited members.<p><table>
|
28
27
|
<tr class="memlist"><td><a class="el" href="classPassenger_1_1StandardApplicationPool.html#bcf8faeb4f431ae07ea0e20270661d08">clear</a>()</td><td><a class="el" href="classPassenger_1_1StandardApplicationPool.html">Passenger::StandardApplicationPool</a></td><td><code> [inline, virtual]</code></td></tr>
|
29
|
-
<tr class="memlist"><td><a class="el" href="
|
28
|
+
<tr class="memlist"><td><a class="el" href="classPassenger_1_1ApplicationPool.html#c811d261345fcf579f049a2377b4b56b">connected</a>() const </td><td><a class="el" href="classPassenger_1_1ApplicationPool.html">Passenger::ApplicationPool</a></td><td><code> [inline, virtual]</code></td></tr>
|
29
|
+
<tr class="memlist"><td><a class="el" href="classPassenger_1_1StandardApplicationPool.html#5a33f0766bbcfb2a48e08fc27bd1b684">get</a>(const string &appRoot)</td><td><a class="el" href="classPassenger_1_1StandardApplicationPool.html">Passenger::StandardApplicationPool</a></td><td><code> [inline, virtual]</code></td></tr>
|
30
|
+
<tr class="memlist"><td><a class="el" href="classPassenger_1_1StandardApplicationPool.html#ffc8f3ef8b1d925d203794d191d7fef4">get</a>(const PoolOptions &options)</td><td><a class="el" href="classPassenger_1_1StandardApplicationPool.html">Passenger::StandardApplicationPool</a></td><td><code> [inline, virtual]</code></td></tr>
|
30
31
|
<tr class="memlist"><td><a class="el" href="classPassenger_1_1StandardApplicationPool.html#7773c4a3dfbd88eac72401d063831788">getActive</a>() const </td><td><a class="el" href="classPassenger_1_1StandardApplicationPool.html">Passenger::StandardApplicationPool</a></td><td><code> [inline, virtual]</code></td></tr>
|
31
32
|
<tr class="memlist"><td><a class="el" href="classPassenger_1_1StandardApplicationPool.html#cdbfe2b9ffacdab4438c879c2411bf02">getCount</a>() const </td><td><a class="el" href="classPassenger_1_1StandardApplicationPool.html">Passenger::StandardApplicationPool</a></td><td><code> [inline, virtual]</code></td></tr>
|
32
33
|
<tr class="memlist"><td><a class="el" href="classPassenger_1_1StandardApplicationPool.html#6955152d237920988d20297d2fff5660">getSpawnServerPid</a>() const </td><td><a class="el" href="classPassenger_1_1StandardApplicationPool.html">Passenger::StandardApplicationPool</a></td><td><code> [inline, virtual]</code></td></tr>
|
33
34
|
<tr class="memlist"><td><a class="el" href="classPassenger_1_1StandardApplicationPool.html#04ef8c92da189520ad2022f4f82e9553">setMax</a>(unsigned int max)</td><td><a class="el" href="classPassenger_1_1StandardApplicationPool.html">Passenger::StandardApplicationPool</a></td><td><code> [inline, virtual]</code></td></tr>
|
34
35
|
<tr class="memlist"><td><a class="el" href="classPassenger_1_1StandardApplicationPool.html#3bafcda8d880f70561ad8a9da16e26ef">setMaxPerApp</a>(unsigned int maxPerApp)</td><td><a class="el" href="classPassenger_1_1StandardApplicationPool.html">Passenger::StandardApplicationPool</a></td><td><code> [inline, virtual]</code></td></tr>
|
35
|
-
<tr class="memlist"><td><a class="el" href="classPassenger_1_1StandardApplicationPool.html#e9c699b56f3a755ab10269c7fe585c2d">setUseGlobalQueue</a>(bool value)</td><td><a class="el" href="classPassenger_1_1StandardApplicationPool.html">Passenger::StandardApplicationPool</a></td><td><code> [inline, virtual]</code></td></tr>
|
36
36
|
<tr class="memlist"><td><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><td><a class="el" href="classPassenger_1_1StandardApplicationPool.html">Passenger::StandardApplicationPool</a></td><td><code> [inline]</code></td></tr>
|
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
|
+
<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>
|
38
39
|
</table></div>
|
39
|
-
<hr size="1"><address style="text-align: right;"><small>Generated on
|
40
|
+
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Mar 13 19:24:35 2009 for Passenger by
|
40
41
|
<a href="http://www.doxygen.org/index.html">
|
41
42
|
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
|
42
43
|
</body>
|
@@ -10,7 +10,6 @@
|
|
10
10
|
<ul>
|
11
11
|
<li><a href="main.html"><span>Main Page</span></a></li>
|
12
12
|
<li><a href="modules.html"><span>Modules</span></a></li>
|
13
|
-
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
|
14
13
|
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
|
15
14
|
<li><a href="files.html"><span>Files</span></a></li>
|
16
15
|
</ul>
|
@@ -22,7 +21,7 @@
|
|
22
21
|
<li><a href="functions.html"><span>Class Members</span></a></li>
|
23
22
|
</ul>
|
24
23
|
</div>
|
25
|
-
<div class="navpath"><
|
24
|
+
<div class="navpath"><b>Passenger</b>::<a class="el" href="classPassenger_1_1StandardApplicationPool.html">StandardApplicationPool</a>
|
26
25
|
</div>
|
27
26
|
</div>
|
28
27
|
<div class="contents">
|
@@ -54,9 +53,13 @@ For multi-process environments, one should use <a class="el" href="classPassenge
|
|
54
53
|
<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>
|
55
54
|
|
56
55
|
<tr><td class="mdescLeft"> </td><td class="mdescRight">Create a new <a class="el" href="classPassenger_1_1StandardApplicationPool.html" title="A standard implementation of ApplicationPool for single-process environments.">StandardApplicationPool</a> object. <a href="#f175704fc477f37ba1d387be09fa2e6b"></a><br></td></tr>
|
57
|
-
<tr><td class="memItemLeft" nowrap align="right" valign="top"
|
56
|
+
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="5a33f0766bbcfb2a48e08fc27bd1b684"></a><!-- doxytag: member="Passenger::StandardApplicationPool::get" ref="5a33f0766bbcfb2a48e08fc27bd1b684" args="(const string &appRoot)" -->
|
57
|
+
virtual <a class="el" href="classPassenger_1_1Application.html#d14f673494991460b16246a527ad8ad9">Application::SessionPtr</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1StandardApplicationPool.html#5a33f0766bbcfb2a48e08fc27bd1b684">get</a> (const string &appRoot)</td></tr>
|
58
58
|
|
59
|
-
<tr><td class="mdescLeft"> </td><td class="mdescRight">
|
59
|
+
<tr><td class="mdescLeft"> </td><td class="mdescRight">Convenience shortcut for calling <a class="el" href="classPassenger_1_1StandardApplicationPool.html#5a33f0766bbcfb2a48e08fc27bd1b684" title="Convenience shortcut for calling get() with default spawn options.">get()</a> with default spawn options. <br></td></tr>
|
60
|
+
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="classPassenger_1_1Application.html#d14f673494991460b16246a527ad8ad9">Application::SessionPtr</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1StandardApplicationPool.html#ffc8f3ef8b1d925d203794d191d7fef4">get</a> (const <a class="el" href="structPassenger_1_1PoolOptions.html">PoolOptions</a> &options)</td></tr>
|
61
|
+
|
62
|
+
<tr><td class="mdescLeft"> </td><td class="mdescRight">Open a new session with the application specified by <code><a class="el" href="structPassenger_1_1PoolOptions.html#822039d204b48d9ed49184646734acf3" title="The root directory of the application to spawn.">PoolOptions.appRoot</a></code>. <a href="#ffc8f3ef8b1d925d203794d191d7fef4"></a><br></td></tr>
|
60
63
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1StandardApplicationPool.html#bcf8faeb4f431ae07ea0e20270661d08">clear</a> ()</td></tr>
|
61
64
|
|
62
65
|
<tr><td class="mdescLeft"> </td><td class="mdescRight">Clear all application instances that are currently in the pool. <a href="#bcf8faeb4f431ae07ea0e20270661d08"></a><br></td></tr>
|
@@ -72,9 +75,6 @@ For multi-process environments, one should use <a class="el" href="classPassenge
|
|
72
75
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1StandardApplicationPool.html#3bafcda8d880f70561ad8a9da16e26ef">setMaxPerApp</a> (unsigned int maxPerApp)</td></tr>
|
73
76
|
|
74
77
|
<tr><td class="mdescLeft"> </td><td class="mdescRight">Set a hard limit on the number of application instances that a single application may spawn in this <a class="el" href="classPassenger_1_1ApplicationPool.html" title="A persistent pool of Applications.">ApplicationPool</a>. <a href="#3bafcda8d880f70561ad8a9da16e26ef"></a><br></td></tr>
|
75
|
-
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1StandardApplicationPool.html#e9c699b56f3a755ab10269c7fe585c2d">setUseGlobalQueue</a> (bool value)</td></tr>
|
76
|
-
|
77
|
-
<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets whether to use a global queue instead of a per-backend process queue. <a href="#e9c699b56f3a755ab10269c7fe585c2d"></a><br></td></tr>
|
78
78
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual pid_t </td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1StandardApplicationPool.html#6955152d237920988d20297d2fff5660">getSpawnServerPid</a> () const </td></tr>
|
79
79
|
|
80
80
|
<tr><td class="mdescLeft"> </td><td class="mdescRight">Get the process ID of the spawn server that is used. <a href="#6955152d237920988d20297d2fff5660"></a><br></td></tr>
|
@@ -82,6 +82,10 @@ For multi-process environments, one should use <a class="el" href="classPassenge
|
|
82
82
|
virtual string </td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1StandardApplicationPool.html#22b4149ca8256c3042fc342e681b0383">toString</a> (bool lockMutex=true) const </td></tr>
|
83
83
|
|
84
84
|
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns a textual description of the internal state of the application pool. <br></td></tr>
|
85
|
+
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="d153c41a1d0aca91d17cf36ed6fdda19"></a><!-- doxytag: member="Passenger::StandardApplicationPool::toXml" ref="d153c41a1d0aca91d17cf36ed6fdda19" args="() const " -->
|
86
|
+
virtual string </td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1StandardApplicationPool.html#d153c41a1d0aca91d17cf36ed6fdda19">toXml</a> () const </td></tr>
|
87
|
+
|
88
|
+
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns an XML description of the internal state of the application pool. <br></td></tr>
|
85
89
|
</table>
|
86
90
|
<hr><h2>Constructor & Destructor Documentation</h2>
|
87
91
|
<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="")" -->
|
@@ -130,7 +134,6 @@ Create a new <a class="el" href="classPassenger_1_1StandardApplicationPool.html"
|
|
130
134
|
<tr><td valign="top"></td><td valign="top"><em>logFile</em> </td><td>Specify a log file that the spawn server should use. Messages on its standard output and standard error channels will be written to this log file. If an empty string is specified, no log file will be used, and the spawn server will use the same standard output/error channels as the current process. </td></tr>
|
131
135
|
<tr><td valign="top"></td><td valign="top"><em>rubyCommand</em> </td><td>The Ruby interpreter's command. </td></tr>
|
132
136
|
<tr><td valign="top"></td><td valign="top"><em>user</em> </td><td>The user that the spawn manager should run as. This parameter only has effect if the current process is running as root. If the empty string is given, or if the <code>user</code> is not a valid username, then the spawn manager will be run as the current user. </td></tr>
|
133
|
-
<tr><td valign="top"></td><td valign="top"><em>rubyCommand</em> </td><td>The Ruby interpreter's command. </td></tr>
|
134
137
|
</table>
|
135
138
|
</dl>
|
136
139
|
<dl compact><dt><b>Exceptions:</b></dt><dd>
|
@@ -143,69 +146,30 @@ Create a new <a class="el" href="classPassenger_1_1StandardApplicationPool.html"
|
|
143
146
|
</div>
|
144
147
|
</div><p>
|
145
148
|
<hr><h2>Member Function Documentation</h2>
|
146
|
-
<a class="anchor" name="
|
149
|
+
<a class="anchor" name="ffc8f3ef8b1d925d203794d191d7fef4"></a><!-- doxytag: member="Passenger::StandardApplicationPool::get" ref="ffc8f3ef8b1d925d203794d191d7fef4" args="(const PoolOptions &options)" -->
|
147
150
|
<div class="memitem">
|
148
151
|
<div class="memproto">
|
149
152
|
<table class="memname">
|
150
153
|
<tr>
|
151
154
|
<td class="memname">virtual <a class="el" href="classPassenger_1_1Application.html#d14f673494991460b16246a527ad8ad9">Application::SessionPtr</a> Passenger::StandardApplicationPool::get </td>
|
152
155
|
<td>(</td>
|
153
|
-
<td class="paramtype">const
|
154
|
-
<td class="paramname"> <em>
|
155
|
-
|
156
|
-
|
157
|
-
<td class="paramkey"></td>
|
158
|
-
<td></td>
|
159
|
-
<td class="paramtype">bool </td>
|
160
|
-
<td class="paramname"> <em>lowerPrivilege</em> = <code>true</code>, </td>
|
161
|
-
</tr>
|
162
|
-
<tr>
|
163
|
-
<td class="paramkey"></td>
|
164
|
-
<td></td>
|
165
|
-
<td class="paramtype">const string & </td>
|
166
|
-
<td class="paramname"> <em>lowestUser</em> = <code>"nobody"</code>, </td>
|
167
|
-
</tr>
|
168
|
-
<tr>
|
169
|
-
<td class="paramkey"></td>
|
170
|
-
<td></td>
|
171
|
-
<td class="paramtype">const string & </td>
|
172
|
-
<td class="paramname"> <em>environment</em> = <code>"production"</code>, </td>
|
173
|
-
</tr>
|
174
|
-
<tr>
|
175
|
-
<td class="paramkey"></td>
|
176
|
-
<td></td>
|
177
|
-
<td class="paramtype">const string & </td>
|
178
|
-
<td class="paramname"> <em>spawnMethod</em> = <code>"smart"</code>, </td>
|
179
|
-
</tr>
|
180
|
-
<tr>
|
181
|
-
<td class="paramkey"></td>
|
182
|
-
<td></td>
|
183
|
-
<td class="paramtype">const string & </td>
|
184
|
-
<td class="paramname"> <em>appType</em> = <code>"rails"</code></td><td> </td>
|
185
|
-
</tr>
|
186
|
-
<tr>
|
187
|
-
<td></td>
|
188
|
-
<td>)</td>
|
189
|
-
<td></td><td></td><td width="100%"><code> [inline, virtual]</code></td>
|
156
|
+
<td class="paramtype">const <a class="el" href="structPassenger_1_1PoolOptions.html">PoolOptions</a> & </td>
|
157
|
+
<td class="paramname"> <em>options</em> </td>
|
158
|
+
<td> ) </td>
|
159
|
+
<td width="100%"><code> [inline, virtual]</code></td>
|
190
160
|
</tr>
|
191
161
|
</table>
|
192
162
|
</div>
|
193
163
|
<div class="memdoc">
|
194
164
|
|
195
165
|
<p>
|
196
|
-
Open a new session with the application specified by <code>appRoot</code>.
|
166
|
+
Open a new session with the application specified by <code><a class="el" href="structPassenger_1_1PoolOptions.html#822039d204b48d9ed49184646734acf3" title="The root directory of the application to spawn.">PoolOptions.appRoot</a></code>.
|
197
167
|
<p>
|
198
168
|
See the class description for <a class="el" href="classPassenger_1_1ApplicationPool.html" title="A persistent pool of Applications.">ApplicationPool</a>, as well as <a class="el" href="classPassenger_1_1Application.html#34636f796ff3924ad5ec142aaa581379" title="Connect to this application instance with the purpose of sending a request to the...">Application::connect()</a>, on how to use the returned session object.<p>
|
199
169
|
Internally, this method may either spawn a new application instance, or use an existing one.<p>
|
200
|
-
If <code>lowerPrivilege</code> is true, then any newly spawned application instances will have lower privileges. See <a class="el" href="classPassenger_1_1SpawnManager.html#fdefbbbad39833912ae7f9f106083099" title="Construct a new SpawnManager.">SpawnManager::SpawnManager()</a>'s description of <code>lowerPrivilege</code> and <code>lowestUser</code> for details.<p>
|
201
170
|
<dl compact><dt><b>Parameters:</b></dt><dd>
|
202
171
|
<table border="0" cellspacing="2" cellpadding="0">
|
203
|
-
<tr><td valign="top"></td><td valign="top"><em>
|
204
|
-
<tr><td valign="top"></td><td valign="top"><em>lowerPrivilege</em> </td><td>Whether to lower the application's privileges. </td></tr>
|
205
|
-
<tr><td valign="top"></td><td valign="top"><em>lowestUser</em> </td><td>The user to fallback to if lowering privilege fails. </td></tr>
|
206
|
-
<tr><td valign="top"></td><td valign="top"><em>environment</em> </td><td>The RAILS_ENV/RACK_ENV environment that should be used. May not be empty. </td></tr>
|
207
|
-
<tr><td valign="top"></td><td valign="top"><em>spawnMethod</em> </td><td>The spawn method to use. Either "smart" or "conservative". See the Ruby class <a class="el" href="classPassenger_1_1SpawnManager.html" title="Spawning of Ruby on Rails/Rack application instances.">SpawnManager</a> for details. </td></tr>
|
208
|
-
<tr><td valign="top"></td><td valign="top"><em>appType</em> </td><td>The application type. Either "rails" or "rack". </td></tr>
|
172
|
+
<tr><td valign="top"></td><td valign="top"><em>options</em> </td><td>An object containing information on which application to open a session with, as well as spawning details. Spawning details will be used if the pool decides that spawning a new application instance is necessary. See <a class="el" href="classPassenger_1_1SpawnManager.html" title="Spawning of Ruby on Rails/Rack application instances.">SpawnManager</a> and <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>
|
209
173
|
</table>
|
210
174
|
</dl>
|
211
175
|
<dl class="return" compact><dt><b>Returns:</b></dt><dd>A session object. </dd></dl>
|
@@ -219,7 +183,7 @@ If <code>lowerPrivilege</code> is true, then any newly spawned application insta
|
|
219
183
|
</dl>
|
220
184
|
<dl class="note" compact><dt><b>Note:</b></dt><dd>Applications are uniquely identified with the application root string. So although <code>appRoot</code> does not have to be absolute, it should be. If one calls <code>get("/home/foo")</code> and <code>get("/home/../home/foo")</code>, then <a class="el" href="classPassenger_1_1ApplicationPool.html" title="A persistent pool of Applications.">ApplicationPool</a> will think they're 2 different applications, and thus will spawn 2 application instances. </dd></dl>
|
221
185
|
|
222
|
-
<p>Implements <a class="el" href="classPassenger_1_1ApplicationPool.html#
|
186
|
+
<p>Implements <a class="el" href="classPassenger_1_1ApplicationPool.html#0b206eb4eb2869423d75c042a0653c67">Passenger::ApplicationPool</a>.</p>
|
223
187
|
|
224
188
|
</div>
|
225
189
|
</div><p>
|
@@ -340,31 +304,6 @@ The exact behavior depends on the used algorithm, and is not specified by these
|
|
340
304
|
It is allowed to set a limit lower than the current number of spawned applications.
|
341
305
|
<p>Implements <a class="el" href="classPassenger_1_1ApplicationPool.html#b0437434c79b5444ac0faf768f1410e8">Passenger::ApplicationPool</a>.</p>
|
342
306
|
|
343
|
-
</div>
|
344
|
-
</div><p>
|
345
|
-
<a class="anchor" name="e9c699b56f3a755ab10269c7fe585c2d"></a><!-- doxytag: member="Passenger::StandardApplicationPool::setUseGlobalQueue" ref="e9c699b56f3a755ab10269c7fe585c2d" args="(bool value)" -->
|
346
|
-
<div class="memitem">
|
347
|
-
<div class="memproto">
|
348
|
-
<table class="memname">
|
349
|
-
<tr>
|
350
|
-
<td class="memname">virtual void Passenger::StandardApplicationPool::setUseGlobalQueue </td>
|
351
|
-
<td>(</td>
|
352
|
-
<td class="paramtype">bool </td>
|
353
|
-
<td class="paramname"> <em>value</em> </td>
|
354
|
-
<td> ) </td>
|
355
|
-
<td width="100%"><code> [inline, virtual]</code></td>
|
356
|
-
</tr>
|
357
|
-
</table>
|
358
|
-
</div>
|
359
|
-
<div class="memdoc">
|
360
|
-
|
361
|
-
<p>
|
362
|
-
Sets whether to use a global queue instead of a per-backend process queue.
|
363
|
-
<p>
|
364
|
-
If enabled, when all backend processes are active, <a class="el" href="classPassenger_1_1StandardApplicationPool.html#0dcdd88c39d7f1a1d667e24c3cb9b243" title="Open a new session with the application specified by appRoot.">get()</a> will wait until there's at least one backend process that's idle, instead of queuing the request into a random process's private queue. This is especially useful if a website has one or more long-running requests.<p>
|
365
|
-
Defaults to false.
|
366
|
-
<p>Implements <a class="el" href="classPassenger_1_1ApplicationPool.html#b5faf64421313e1387c187f80b95d0e7">Passenger::ApplicationPool</a>.</p>
|
367
|
-
|
368
307
|
</div>
|
369
308
|
</div><p>
|
370
309
|
<a class="anchor" name="6955152d237920988d20297d2fff5660"></a><!-- doxytag: member="Passenger::StandardApplicationPool::getSpawnServerPid" ref="6955152d237920988d20297d2fff5660" args="() const " -->
|
@@ -393,7 +332,7 @@ This method exposes an implementation detail. It is used by unit tests to verify
|
|
393
332
|
<hr>The documentation for this class was generated from the following file:<ul>
|
394
333
|
<li><a class="el" href="StandardApplicationPool_8h-source.html">StandardApplicationPool.h</a></ul>
|
395
334
|
</div>
|
396
|
-
<hr size="1"><address style="text-align: right;"><small>Generated on
|
335
|
+
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Mar 13 19:24:35 2009 for Passenger by
|
397
336
|
<a href="http://www.doxygen.org/index.html">
|
398
337
|
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
|
399
338
|
</body>
|