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>
|
@@ -34,8 +34,8 @@
|
|
34
34
|
<tr class="memlist"><td><a class="el" href="classPassenger_1_1ApplicationPool.html#0e0f21972ab130c9c0f90c2212328794">setMax</a>(unsigned int max)=0</td><td><a class="el" href="classPassenger_1_1ApplicationPool.html">Passenger::ApplicationPool</a></td><td><code> [pure virtual]</code></td></tr>
|
35
35
|
<tr class="memlist"><td><a class="el" href="classPassenger_1_1ApplicationPool.html#b0437434c79b5444ac0faf768f1410e8">setMaxPerApp</a>(unsigned int max)=0</td><td><a class="el" href="classPassenger_1_1ApplicationPool.html">Passenger::ApplicationPool</a></td><td><code> [pure virtual]</code></td></tr>
|
36
36
|
</table></div>
|
37
|
-
<hr size="1"><address style="text-align: right;"><small>Generated on
|
37
|
+
<hr size="1"><address style="text-align: right;"><small>Generated on Wed Apr 8 22:35:12 2009 for Passenger by
|
38
38
|
<a href="http://www.doxygen.org/index.html">
|
39
|
-
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.
|
39
|
+
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.8 </small></address>
|
40
40
|
</body>
|
41
41
|
</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::ApplicationPool 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,18 +28,53 @@
|
|
28
28
|
<h1>Passenger::ApplicationPool 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::ApplicationPool"
|
31
|
+
</h1><!-- doxytag: class="Passenger::ApplicationPool" -->A persistent pool of Applications.
|
32
|
+
<a href="#_details">More...</a>
|
33
|
+
<p>
|
34
|
+
<code>#include <<a class="el" href="ApplicationPool_8h-source.html">ApplicationPool.h</a>></code>
|
32
35
|
<p>
|
33
36
|
<div class="dynheader">
|
34
37
|
Inheritance diagram for Passenger::ApplicationPool:</div>
|
35
38
|
<div class="dynsection">
|
36
39
|
<p><center><img src="classPassenger_1_1ApplicationPool__inherit__graph.png" border="0" usemap="#Passenger_1_1ApplicationPool__inherit__map" alt="Inheritance graph"></center>
|
37
40
|
<map name="Passenger_1_1ApplicationPool__inherit__map">
|
38
|
-
<area shape="rect" href="classPassenger_1_1StandardApplicationPool.html" title="A standard implementation of ApplicationPool for single-process environments." alt="" coords="5,
|
41
|
+
<area shape="rect" href="classPassenger_1_1StandardApplicationPool.html" title="A standard implementation of ApplicationPool for single-process environments." alt="" coords="5,80,251,107"></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_1ApplicationPool-members.html">List of all members.</a><
|
45
|
+
<a href="classPassenger_1_1ApplicationPool-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
|
46
|
+
<tr><td></td></tr>
|
47
|
+
<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
|
48
|
+
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1ApplicationPool.html#c811d261345fcf579f049a2377b4b56b">connected</a> () const </td></tr>
|
49
|
+
|
50
|
+
<tr><td class="mdescLeft"> </td><td class="mdescRight">Checks whether this <a class="el" href="classPassenger_1_1ApplicationPool.html" title="A persistent pool of Applications.">ApplicationPool</a> object is still connected to the <a class="el" href="classPassenger_1_1ApplicationPool.html" title="A persistent pool of Applications.">ApplicationPool</a> server. <a href="#c811d261345fcf579f049a2377b4b56b"></a><br></td></tr>
|
51
|
+
<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_1ApplicationPool.html#0b206eb4eb2869423d75c042a0653c67">get</a> (const <a class="el" href="structPassenger_1_1PoolOptions.html">PoolOptions</a> &options)=0</td></tr>
|
52
|
+
|
53
|
+
<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="#0b206eb4eb2869423d75c042a0653c67"></a><br></td></tr>
|
54
|
+
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="b5cc9a7f0c1e7acb9d5815d4420e25ea"></a><!-- doxytag: member="Passenger::ApplicationPool::get" ref="b5cc9a7f0c1e7acb9d5815d4420e25ea" args="(const string &appRoot)" -->
|
55
|
+
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_1ApplicationPool.html#b5cc9a7f0c1e7acb9d5815d4420e25ea">get</a> (const string &appRoot)</td></tr>
|
56
|
+
|
57
|
+
<tr><td class="mdescLeft"> </td><td class="mdescRight">Convenience shortcut for calling <a class="el" href="classPassenger_1_1ApplicationPool.html#0b206eb4eb2869423d75c042a0653c67" title="Open a new session with the application specified by PoolOptions.appRoot.">get()</a> with default spawn options. <br></td></tr>
|
58
|
+
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1ApplicationPool.html#74db4d7a693d45b16320b2296a0c0997">clear</a> ()=0</td></tr>
|
59
|
+
|
60
|
+
<tr><td class="mdescLeft"> </td><td class="mdescRight">Clear all application instances that are currently in the pool. <a href="#74db4d7a693d45b16320b2296a0c0997"></a><br></td></tr>
|
61
|
+
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1ApplicationPool.html#0e0f21972ab130c9c0f90c2212328794">setMax</a> (unsigned int max)=0</td></tr>
|
62
|
+
|
63
|
+
<tr><td class="mdescLeft"> </td><td class="mdescRight">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. <a href="#0e0f21972ab130c9c0f90c2212328794"></a><br></td></tr>
|
64
|
+
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1ApplicationPool.html#06d1eae044d4d761ce77cf09049df8c8">getActive</a> () const =0</td></tr>
|
65
|
+
|
66
|
+
<tr><td class="mdescLeft"> </td><td class="mdescRight">Get the number of active applications in the pool. <a href="#06d1eae044d4d761ce77cf09049df8c8"></a><br></td></tr>
|
67
|
+
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1ApplicationPool.html#93b0277beb510855f85fee5de5c369bb">getCount</a> () const =0</td></tr>
|
68
|
+
|
69
|
+
<tr><td class="mdescLeft"> </td><td class="mdescRight">Get the number of active applications in the pool. <a href="#93b0277beb510855f85fee5de5c369bb"></a><br></td></tr>
|
70
|
+
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1ApplicationPool.html#b0437434c79b5444ac0faf768f1410e8">setMaxPerApp</a> (unsigned int max)=0</td></tr>
|
71
|
+
|
72
|
+
<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="#b0437434c79b5444ac0faf768f1410e8"></a><br></td></tr>
|
73
|
+
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual pid_t </td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1ApplicationPool.html#d9149c3b434ef8e18fd15a77af1a6c2c">getSpawnServerPid</a> () const =0</td></tr>
|
74
|
+
|
75
|
+
<tr><td class="mdescLeft"> </td><td class="mdescRight">Get the process ID of the spawn server that is used. <a href="#d9149c3b434ef8e18fd15a77af1a6c2c"></a><br></td></tr>
|
76
|
+
</table>
|
77
|
+
<hr><a name="_details"></a><h2>Detailed Description</h2>
|
43
78
|
A persistent pool of Applications.
|
44
79
|
<p>
|
45
80
|
Spawning application instances, especially Ruby on Rails ones, is a very expensive operation. Despite best efforts to make the operation less expensive (see <a class="el" href="classPassenger_1_1SpawnManager.html" title="Spawning of Ruby on Rails/Rack application instances.">SpawnManager</a>), it remains expensive compared to the cost of processing an HTTP request/response. So, in order to solve this, some sort of caching/pooling mechanism will be required. <a class="el" href="classPassenger_1_1ApplicationPool.html" title="A persistent pool of Applications.">ApplicationPool</a> provides this.<p>
|
@@ -72,39 +107,30 @@ Internally, <a class="el" href="classPassenger_1_1ApplicationPool.html#0b206eb4e
|
|
72
107
|
<tr><td valign="top"></td><td valign="top"><em>l</em> </td><td>try to keep spawning to a minimum. Furthermore, if an application instance hasn't been used for a while, it will be automatically shutdown in order to save memory. Restart requests are honored: if an application has the file 'restart.txt' in its 'tmp' folder, then <a class="el" href="classPassenger_1_1ApplicationPool.html#0b206eb4eb2869423d75c042a0653c67" title="Open a new session with the application specified by PoolOptions.appRoot.">get()</a> will shutdown existing instances of that application and spawn a new instance (this is useful when a new version of an application has been deployed). And finally, one can set a hard limit on the maximum number of applications instances that may be spawned (see <a class="el" href="classPassenger_1_1ApplicationPool.html#0e0f21972ab130c9c0f90c2212328794" title="Set a hard limit on the number of application instances that this ApplicationPool...">ApplicationPool::setMax()</a>).</td></tr>
|
73
108
|
</table>
|
74
109
|
</dl>
|
75
|
-
Note that <a class="el" href="classPassenger_1_1ApplicationPool.html" title="A persistent pool of Applications.">ApplicationPool</a> is just an interface (i.e. a pure virtual class). For concrete classes, see <a class="el" href="classPassenger_1_1StandardApplicationPool.html" title="A standard implementation of ApplicationPool for single-process environments.">StandardApplicationPool</a> and <a class="el" href="classPassenger_1_1ApplicationPoolServer.html" title="Multi-process usage support for ApplicationPool.">ApplicationPoolServer</a>. The exact pooling algorithm depends on the implementation class. <
|
76
|
-
<
|
77
|
-
<
|
78
|
-
<
|
79
|
-
|
80
|
-
<tr
|
81
|
-
<
|
82
|
-
|
83
|
-
<
|
84
|
-
<
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
<tr><td class="mdescLeft"> </td><td class="mdescRight">Clear all application instances that are currently in the pool. <a href="#74db4d7a693d45b16320b2296a0c0997"></a><br></td></tr>
|
91
|
-
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1ApplicationPool.html#0e0f21972ab130c9c0f90c2212328794">setMax</a> (unsigned int max)=0</td></tr>
|
92
|
-
|
93
|
-
<tr><td class="mdescLeft"> </td><td class="mdescRight">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. <a href="#0e0f21972ab130c9c0f90c2212328794"></a><br></td></tr>
|
94
|
-
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1ApplicationPool.html#06d1eae044d4d761ce77cf09049df8c8">getActive</a> () const =0</td></tr>
|
95
|
-
|
96
|
-
<tr><td class="mdescLeft"> </td><td class="mdescRight">Get the number of active applications in the pool. <a href="#06d1eae044d4d761ce77cf09049df8c8"></a><br></td></tr>
|
97
|
-
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1ApplicationPool.html#93b0277beb510855f85fee5de5c369bb">getCount</a> () const =0</td></tr>
|
98
|
-
|
99
|
-
<tr><td class="mdescLeft"> </td><td class="mdescRight">Get the number of active applications in the pool. <a href="#93b0277beb510855f85fee5de5c369bb"></a><br></td></tr>
|
100
|
-
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1ApplicationPool.html#b0437434c79b5444ac0faf768f1410e8">setMaxPerApp</a> (unsigned int max)=0</td></tr>
|
110
|
+
Note that <a class="el" href="classPassenger_1_1ApplicationPool.html" title="A persistent pool of Applications.">ApplicationPool</a> is just an interface (i.e. a pure virtual class). For concrete classes, see <a class="el" href="classPassenger_1_1StandardApplicationPool.html" title="A standard implementation of ApplicationPool for single-process environments.">StandardApplicationPool</a> and <a class="el" href="classPassenger_1_1ApplicationPoolServer.html" title="Multi-process usage support for ApplicationPool.">ApplicationPoolServer</a>. The exact pooling algorithm depends on the implementation class. <hr><h2>Member Function Documentation</h2>
|
111
|
+
<a class="anchor" name="74db4d7a693d45b16320b2296a0c0997"></a><!-- doxytag: member="Passenger::ApplicationPool::clear" ref="74db4d7a693d45b16320b2296a0c0997" args="()=0" -->
|
112
|
+
<div class="memitem">
|
113
|
+
<div class="memproto">
|
114
|
+
<table class="memname">
|
115
|
+
<tr>
|
116
|
+
<td class="memname">virtual void Passenger::ApplicationPool::clear </td>
|
117
|
+
<td>(</td>
|
118
|
+
<td class="paramname"> </td>
|
119
|
+
<td> ) </td>
|
120
|
+
<td><code> [pure virtual]</code></td>
|
121
|
+
</tr>
|
122
|
+
</table>
|
123
|
+
</div>
|
124
|
+
<div class="memdoc">
|
101
125
|
|
102
|
-
<
|
103
|
-
|
126
|
+
<p>
|
127
|
+
Clear all application instances that are currently in the pool.
|
128
|
+
<p>
|
129
|
+
This method is used by unit tests to verify that the implementation is correct, and thus should not be called directly.
|
130
|
+
<p>Implemented in <a class="el" href="classPassenger_1_1StandardApplicationPool.html#bcf8faeb4f431ae07ea0e20270661d08">Passenger::StandardApplicationPool</a>.</p>
|
104
131
|
|
105
|
-
|
106
|
-
</
|
107
|
-
<hr><h2>Member Function Documentation</h2>
|
132
|
+
</div>
|
133
|
+
</div><p>
|
108
134
|
<a class="anchor" name="c811d261345fcf579f049a2377b4b56b"></a><!-- doxytag: member="Passenger::ApplicationPool::connected" ref="c811d261345fcf579f049a2377b4b56b" args="() const " -->
|
109
135
|
<div class="memitem">
|
110
136
|
<div class="memproto">
|
@@ -114,7 +140,7 @@ virtual <a class="el" href="classPassenger_1_1Application.html#d14f673494991460b
|
|
114
140
|
<td>(</td>
|
115
141
|
<td class="paramname"> </td>
|
116
142
|
<td> ) </td>
|
117
|
-
<td
|
143
|
+
<td> const<code> [inline, virtual]</code></td>
|
118
144
|
</tr>
|
119
145
|
</table>
|
120
146
|
</div>
|
@@ -137,7 +163,7 @@ This method is only meaningful for instances of type ApplicationPoolServer::Clie
|
|
137
163
|
<td class="paramtype">const <a class="el" href="structPassenger_1_1PoolOptions.html">PoolOptions</a> & </td>
|
138
164
|
<td class="paramname"> <em>options</em> </td>
|
139
165
|
<td> ) </td>
|
140
|
-
<td
|
166
|
+
<td><code> [pure virtual]</code></td>
|
141
167
|
</tr>
|
142
168
|
</table>
|
143
169
|
</div>
|
@@ -168,97 +194,97 @@ Internally, this method may either spawn a new application instance, or use an e
|
|
168
194
|
|
169
195
|
</div>
|
170
196
|
</div><p>
|
171
|
-
<a class="anchor" name="
|
197
|
+
<a class="anchor" name="06d1eae044d4d761ce77cf09049df8c8"></a><!-- doxytag: member="Passenger::ApplicationPool::getActive" ref="06d1eae044d4d761ce77cf09049df8c8" args="() const =0" -->
|
172
198
|
<div class="memitem">
|
173
199
|
<div class="memproto">
|
174
200
|
<table class="memname">
|
175
201
|
<tr>
|
176
|
-
<td class="memname">virtual
|
202
|
+
<td class="memname">virtual unsigned int Passenger::ApplicationPool::getActive </td>
|
177
203
|
<td>(</td>
|
178
204
|
<td class="paramname"> </td>
|
179
205
|
<td> ) </td>
|
180
|
-
<td
|
206
|
+
<td> const<code> [pure virtual]</code></td>
|
181
207
|
</tr>
|
182
208
|
</table>
|
183
209
|
</div>
|
184
210
|
<div class="memdoc">
|
185
211
|
|
186
212
|
<p>
|
187
|
-
|
213
|
+
Get the number of active applications in the pool.
|
188
214
|
<p>
|
189
|
-
This method is used by unit tests to verify that the implementation is correct, and thus should not be called directly.
|
190
|
-
<p>Implemented in <a class="el" href="classPassenger_1_1StandardApplicationPool.html#
|
215
|
+
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.
|
216
|
+
<p>Implemented in <a class="el" href="classPassenger_1_1StandardApplicationPool.html#7773c4a3dfbd88eac72401d063831788">Passenger::StandardApplicationPool</a>.</p>
|
191
217
|
|
192
218
|
</div>
|
193
219
|
</div><p>
|
194
|
-
<a class="anchor" name="
|
220
|
+
<a class="anchor" name="93b0277beb510855f85fee5de5c369bb"></a><!-- doxytag: member="Passenger::ApplicationPool::getCount" ref="93b0277beb510855f85fee5de5c369bb" args="() const =0" -->
|
195
221
|
<div class="memitem">
|
196
222
|
<div class="memproto">
|
197
223
|
<table class="memname">
|
198
224
|
<tr>
|
199
|
-
<td class="memname">virtual
|
225
|
+
<td class="memname">virtual unsigned int Passenger::ApplicationPool::getCount </td>
|
200
226
|
<td>(</td>
|
201
|
-
<td class="
|
202
|
-
<td class="paramname"> <em>max</em> </td>
|
227
|
+
<td class="paramname"> </td>
|
203
228
|
<td> ) </td>
|
204
|
-
<td
|
229
|
+
<td> const<code> [pure virtual]</code></td>
|
205
230
|
</tr>
|
206
231
|
</table>
|
207
232
|
</div>
|
208
233
|
<div class="memdoc">
|
209
234
|
|
210
235
|
<p>
|
211
|
-
|
236
|
+
Get the number of active applications in the pool.
|
212
237
|
<p>
|
213
|
-
|
214
|
-
|
215
|
-
<p>Implemented in <a class="el" href="classPassenger_1_1StandardApplicationPool.html#04ef8c92da189520ad2022f4f82e9553">Passenger::StandardApplicationPool</a>.</p>
|
238
|
+
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.
|
239
|
+
<p>Implemented in <a class="el" href="classPassenger_1_1StandardApplicationPool.html#cdbfe2b9ffacdab4438c879c2411bf02">Passenger::StandardApplicationPool</a>.</p>
|
216
240
|
|
217
241
|
</div>
|
218
242
|
</div><p>
|
219
|
-
<a class="anchor" name="
|
243
|
+
<a class="anchor" name="d9149c3b434ef8e18fd15a77af1a6c2c"></a><!-- doxytag: member="Passenger::ApplicationPool::getSpawnServerPid" ref="d9149c3b434ef8e18fd15a77af1a6c2c" args="() const =0" -->
|
220
244
|
<div class="memitem">
|
221
245
|
<div class="memproto">
|
222
246
|
<table class="memname">
|
223
247
|
<tr>
|
224
|
-
<td class="memname">virtual
|
248
|
+
<td class="memname">virtual pid_t Passenger::ApplicationPool::getSpawnServerPid </td>
|
225
249
|
<td>(</td>
|
226
250
|
<td class="paramname"> </td>
|
227
251
|
<td> ) </td>
|
228
|
-
<td
|
252
|
+
<td> const<code> [pure virtual]</code></td>
|
229
253
|
</tr>
|
230
254
|
</table>
|
231
255
|
</div>
|
232
256
|
<div class="memdoc">
|
233
257
|
|
234
258
|
<p>
|
235
|
-
Get the
|
259
|
+
Get the process ID of the spawn server that is used.
|
236
260
|
<p>
|
237
|
-
This method exposes an implementation detail
|
238
|
-
<p>Implemented in <a class="el" href="classPassenger_1_1StandardApplicationPool.html#
|
261
|
+
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.
|
262
|
+
<p>Implemented in <a class="el" href="classPassenger_1_1StandardApplicationPool.html#6955152d237920988d20297d2fff5660">Passenger::StandardApplicationPool</a>.</p>
|
239
263
|
|
240
264
|
</div>
|
241
265
|
</div><p>
|
242
|
-
<a class="anchor" name="
|
266
|
+
<a class="anchor" name="0e0f21972ab130c9c0f90c2212328794"></a><!-- doxytag: member="Passenger::ApplicationPool::setMax" ref="0e0f21972ab130c9c0f90c2212328794" args="(unsigned int max)=0" -->
|
243
267
|
<div class="memitem">
|
244
268
|
<div class="memproto">
|
245
269
|
<table class="memname">
|
246
270
|
<tr>
|
247
|
-
<td class="memname">virtual
|
271
|
+
<td class="memname">virtual void Passenger::ApplicationPool::setMax </td>
|
248
272
|
<td>(</td>
|
249
|
-
<td class="
|
273
|
+
<td class="paramtype">unsigned int </td>
|
274
|
+
<td class="paramname"> <em>max</em> </td>
|
250
275
|
<td> ) </td>
|
251
|
-
<td
|
276
|
+
<td><code> [pure virtual]</code></td>
|
252
277
|
</tr>
|
253
278
|
</table>
|
254
279
|
</div>
|
255
280
|
<div class="memdoc">
|
256
281
|
|
257
282
|
<p>
|
258
|
-
|
283
|
+
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.
|
259
284
|
<p>
|
260
|
-
|
261
|
-
|
285
|
+
The exact behavior depends on the used algorithm, and is not specified by these API docs.<p>
|
286
|
+
It is allowed to set a limit lower than the current number of spawned applications.
|
287
|
+
<p>Implemented in <a class="el" href="classPassenger_1_1StandardApplicationPool.html#04ef8c92da189520ad2022f4f82e9553">Passenger::StandardApplicationPool</a>.</p>
|
262
288
|
|
263
289
|
</div>
|
264
290
|
</div><p>
|
@@ -272,7 +298,7 @@ This method exposes an implementation detail of the underlying pooling algorithm
|
|
272
298
|
<td class="paramtype">unsigned int </td>
|
273
299
|
<td class="paramname"> <em>max</em> </td>
|
274
300
|
<td> ) </td>
|
275
|
-
<td
|
301
|
+
<td><code> [pure virtual]</code></td>
|
276
302
|
</tr>
|
277
303
|
</table>
|
278
304
|
</div>
|
@@ -285,36 +311,13 @@ The exact behavior depends on the used algorithm, and is not specified by these
|
|
285
311
|
It is allowed to set a limit lower than the current number of spawned applications.
|
286
312
|
<p>Implemented in <a class="el" href="classPassenger_1_1StandardApplicationPool.html#3bafcda8d880f70561ad8a9da16e26ef">Passenger::StandardApplicationPool</a>.</p>
|
287
313
|
|
288
|
-
</div>
|
289
|
-
</div><p>
|
290
|
-
<a class="anchor" name="d9149c3b434ef8e18fd15a77af1a6c2c"></a><!-- doxytag: member="Passenger::ApplicationPool::getSpawnServerPid" ref="d9149c3b434ef8e18fd15a77af1a6c2c" args="() const =0" -->
|
291
|
-
<div class="memitem">
|
292
|
-
<div class="memproto">
|
293
|
-
<table class="memname">
|
294
|
-
<tr>
|
295
|
-
<td class="memname">virtual pid_t Passenger::ApplicationPool::getSpawnServerPid </td>
|
296
|
-
<td>(</td>
|
297
|
-
<td class="paramname"> </td>
|
298
|
-
<td> ) </td>
|
299
|
-
<td width="100%"> const<code> [pure virtual]</code></td>
|
300
|
-
</tr>
|
301
|
-
</table>
|
302
|
-
</div>
|
303
|
-
<div class="memdoc">
|
304
|
-
|
305
|
-
<p>
|
306
|
-
Get the process ID of the spawn server that is used.
|
307
|
-
<p>
|
308
|
-
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.
|
309
|
-
<p>Implemented in <a class="el" href="classPassenger_1_1StandardApplicationPool.html#6955152d237920988d20297d2fff5660">Passenger::StandardApplicationPool</a>.</p>
|
310
|
-
|
311
314
|
</div>
|
312
315
|
</div><p>
|
313
316
|
<hr>The documentation for this class was generated from the following file:<ul>
|
314
317
|
<li><a class="el" href="ApplicationPool_8h-source.html">ApplicationPool.h</a></ul>
|
315
318
|
</div>
|
316
|
-
<hr size="1"><address style="text-align: right;"><small>Generated on
|
319
|
+
<hr size="1"><address style="text-align: right;"><small>Generated on Wed Apr 8 22:35:12 2009 for Passenger by
|
317
320
|
<a href="http://www.doxygen.org/index.html">
|
318
|
-
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.
|
321
|
+
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.8 </small></address>
|
319
322
|
</body>
|
320
323
|
</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>
|
@@ -28,8 +28,8 @@
|
|
28
28
|
<tr class="memlist"><td><a class="el" href="classPassenger_1_1ApplicationPoolServer.html#18f77057cc28e7924a8f4d1397aa0468">connect</a>()</td><td><a class="el" href="classPassenger_1_1ApplicationPoolServer.html">Passenger::ApplicationPoolServer</a></td><td><code> [inline]</code></td></tr>
|
29
29
|
<tr class="memlist"><td><a class="el" href="classPassenger_1_1ApplicationPoolServer.html#b13957e32ae8ca36ba85f2e6ffefd5ce">detach</a>()</td><td><a class="el" href="classPassenger_1_1ApplicationPoolServer.html">Passenger::ApplicationPoolServer</a></td><td><code> [inline]</code></td></tr>
|
30
30
|
</table></div>
|
31
|
-
<hr size="1"><address style="text-align: right;"><small>Generated on
|
31
|
+
<hr size="1"><address style="text-align: right;"><small>Generated on Wed Apr 8 22:35:12 2009 for Passenger by
|
32
32
|
<a href="http://www.doxygen.org/index.html">
|
33
|
-
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.
|
33
|
+
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.8 </small></address>
|
34
34
|
</body>
|
35
35
|
</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::ApplicationPoolServer 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,11 +28,27 @@
|
|
28
28
|
<h1>Passenger::ApplicationPoolServer 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::ApplicationPoolServer"
|
31
|
+
</h1><!-- doxytag: class="Passenger::ApplicationPoolServer" -->Multi-process usage support for <a class="el" href="classPassenger_1_1ApplicationPool.html" title="A persistent pool of Applications.">ApplicationPool</a>.
|
32
|
+
<a href="#_details">More...</a>
|
33
|
+
<p>
|
34
|
+
<code>#include <<a class="el" href="ApplicationPoolServer_8h-source.html">ApplicationPoolServer.h</a>></code>
|
32
35
|
<p>
|
33
36
|
|
34
37
|
<p>
|
35
|
-
<a href="classPassenger_1_1ApplicationPoolServer-members.html">List of all members.</a><
|
38
|
+
<a href="classPassenger_1_1ApplicationPoolServer-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
|
39
|
+
<tr><td></td></tr>
|
40
|
+
<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
|
41
|
+
<tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1ApplicationPoolServer.html#2203db62a022579d569ceddff8ef6ca9">ApplicationPoolServer</a> (const string &serverExecutable, const string &spawnServerCommand, const string &logFile="", const string &rubyCommand="ruby", const string &user="")</td></tr>
|
42
|
+
|
43
|
+
<tr><td class="mdescLeft"> </td><td class="mdescRight">Create a new <a class="el" href="classPassenger_1_1ApplicationPoolServer.html" title="Multi-process usage support for ApplicationPool.">ApplicationPoolServer</a> object. <a href="#2203db62a022579d569ceddff8ef6ca9"></a><br></td></tr>
|
44
|
+
<tr><td class="memItemLeft" nowrap align="right" valign="top">ApplicationPoolPtr </td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1ApplicationPoolServer.html#18f77057cc28e7924a8f4d1397aa0468">connect</a> ()</td></tr>
|
45
|
+
|
46
|
+
<tr><td class="mdescLeft"> </td><td class="mdescRight">Connects to the server and returns a usable <a class="el" href="classPassenger_1_1ApplicationPool.html" title="A persistent pool of Applications.">ApplicationPool</a> object. <a href="#18f77057cc28e7924a8f4d1397aa0468"></a><br></td></tr>
|
47
|
+
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1ApplicationPoolServer.html#b13957e32ae8ca36ba85f2e6ffefd5ce">detach</a> ()</td></tr>
|
48
|
+
|
49
|
+
<tr><td class="mdescLeft"> </td><td class="mdescRight">Detach the server, thereby telling it that we don't want to connect to it anymore. <a href="#b13957e32ae8ca36ba85f2e6ffefd5ce"></a><br></td></tr>
|
50
|
+
</table>
|
51
|
+
<hr><a name="_details"></a><h2>Detailed Description</h2>
|
36
52
|
Multi-process usage support for <a class="el" href="classPassenger_1_1ApplicationPool.html" title="A persistent pool of Applications.">ApplicationPool</a>.
|
37
53
|
<p>
|
38
54
|
<a class="el" href="classPassenger_1_1ApplicationPoolServer.html" title="Multi-process usage support for ApplicationPool.">ApplicationPoolServer</a> implements a client/server architecture for <a class="el" href="classPassenger_1_1ApplicationPool.html" title="A persistent pool of Applications.">ApplicationPool</a>. This allows one to use <a class="el" href="classPassenger_1_1ApplicationPool.html" title="A persistent pool of Applications.">ApplicationPool</a> in a multi-process environment (unlike <a class="el" href="classPassenger_1_1StandardApplicationPool.html" title="A standard implementation of ApplicationPool for single-process environments.">StandardApplicationPool</a>). The cache/pool data is stored in the server. Different processes can then access the pool through the server.<p>
|
@@ -73,20 +89,7 @@ Because of these problems, it was decided to split the <a class="el" href="class
|
|
73
89
|
<h3>Anonymous server socket</h3>
|
74
90
|
<p>
|
75
91
|
Notice that <a class="el" href="classPassenger_1_1ApplicationPoolServer.html" title="Multi-process usage support for ApplicationPool.">ApplicationPoolServer</a> does do not use TCP sockets at all, or even named Unix sockets, despite being a server that can handle multiple clients! So <a class="el" href="classPassenger_1_1ApplicationPoolServer.html" title="Multi-process usage support for ApplicationPool.">ApplicationPoolServer</a> will expose no open ports or temporary Unix socket files. Only child processes are able to use the <a class="el" href="classPassenger_1_1ApplicationPoolServer.html" title="Multi-process usage support for ApplicationPool.">ApplicationPoolServer</a>.<p>
|
76
|
-
This is implemented through anonymous Unix sockets (<code>socketpair()</code>) and file descriptor passing. It allows one to emulate <code>accept()</code>. <a class="el" href="classPassenger_1_1ApplicationPoolServer.html" title="Multi-process usage support for ApplicationPool.">ApplicationPoolServer</a> is connected to the server executable through a Unix socket pair. <a class="el" href="classPassenger_1_1ApplicationPoolServer.html#18f77057cc28e7924a8f4d1397aa0468" title="Connects to the server and returns a usable ApplicationPool object.">connect()</a> sends a connect request to the server through that socket. The server will then create a new socket pair, and pass one of them back. This new socket pair represents the newly established connection. <
|
77
|
-
<tr><td></td></tr>
|
78
|
-
<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
|
79
|
-
<tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1ApplicationPoolServer.html#2203db62a022579d569ceddff8ef6ca9">ApplicationPoolServer</a> (const string &serverExecutable, const string &spawnServerCommand, const string &logFile="", const string &rubyCommand="ruby", const string &user="")</td></tr>
|
80
|
-
|
81
|
-
<tr><td class="mdescLeft"> </td><td class="mdescRight">Create a new <a class="el" href="classPassenger_1_1ApplicationPoolServer.html" title="Multi-process usage support for ApplicationPool.">ApplicationPoolServer</a> object. <a href="#2203db62a022579d569ceddff8ef6ca9"></a><br></td></tr>
|
82
|
-
<tr><td class="memItemLeft" nowrap align="right" valign="top">ApplicationPoolPtr </td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1ApplicationPoolServer.html#18f77057cc28e7924a8f4d1397aa0468">connect</a> ()</td></tr>
|
83
|
-
|
84
|
-
<tr><td class="mdescLeft"> </td><td class="mdescRight">Connects to the server and returns a usable <a class="el" href="classPassenger_1_1ApplicationPool.html" title="A persistent pool of Applications.">ApplicationPool</a> object. <a href="#18f77057cc28e7924a8f4d1397aa0468"></a><br></td></tr>
|
85
|
-
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classPassenger_1_1ApplicationPoolServer.html#b13957e32ae8ca36ba85f2e6ffefd5ce">detach</a> ()</td></tr>
|
86
|
-
|
87
|
-
<tr><td class="mdescLeft"> </td><td class="mdescRight">Detach the server, thereby telling it that we don't want to connect to it anymore. <a href="#b13957e32ae8ca36ba85f2e6ffefd5ce"></a><br></td></tr>
|
88
|
-
</table>
|
89
|
-
<hr><h2>Constructor & Destructor Documentation</h2>
|
92
|
+
This is implemented through anonymous Unix sockets (<code>socketpair()</code>) and file descriptor passing. It allows one to emulate <code>accept()</code>. <a class="el" href="classPassenger_1_1ApplicationPoolServer.html" title="Multi-process usage support for ApplicationPool.">ApplicationPoolServer</a> is connected to the server executable through a Unix socket pair. <a class="el" href="classPassenger_1_1ApplicationPoolServer.html#18f77057cc28e7924a8f4d1397aa0468" title="Connects to the server and returns a usable ApplicationPool object.">connect()</a> sends a connect request to the server through that socket. The server will then create a new socket pair, and pass one of them back. This new socket pair represents the newly established connection. <hr><h2>Constructor & Destructor Documentation</h2>
|
90
93
|
<a class="anchor" name="2203db62a022579d569ceddff8ef6ca9"></a><!-- doxytag: member="Passenger::ApplicationPoolServer::ApplicationPoolServer" ref="2203db62a022579d569ceddff8ef6ca9" args="(const string &serverExecutable, const string &spawnServerCommand, const string &logFile="", const string &rubyCommand="ruby", const string &user="")" -->
|
91
94
|
<div class="memitem">
|
92
95
|
<div class="memproto">
|
@@ -124,7 +127,7 @@ This is implemented through anonymous Unix sockets (<code>socketpair()</code>) a
|
|
124
127
|
<tr>
|
125
128
|
<td></td>
|
126
129
|
<td>)</td>
|
127
|
-
<td></td><td></td><td
|
130
|
+
<td></td><td></td><td><code> [inline]</code></td>
|
128
131
|
</tr>
|
129
132
|
</table>
|
130
133
|
</div>
|
@@ -161,7 +164,7 @@ Create a new <a class="el" href="classPassenger_1_1ApplicationPoolServer.html" t
|
|
161
164
|
<td>(</td>
|
162
165
|
<td class="paramname"> </td>
|
163
166
|
<td> ) </td>
|
164
|
-
<td
|
167
|
+
<td><code> [inline]</code></td>
|
165
168
|
</tr>
|
166
169
|
</table>
|
167
170
|
</div>
|
@@ -200,7 +203,7 @@ Instead, one should call <a class="el" href="classPassenger_1_1ApplicationPoolSe
|
|
200
203
|
<td>(</td>
|
201
204
|
<td class="paramname"> </td>
|
202
205
|
<td> ) </td>
|
203
|
-
<td
|
206
|
+
<td><code> [inline]</code></td>
|
204
207
|
</tr>
|
205
208
|
</table>
|
206
209
|
</div>
|
@@ -217,8 +220,8 @@ This method may only be called once. The <a class="el" href="classPassenger_1_1A
|
|
217
220
|
<hr>The documentation for this class was generated from the following file:<ul>
|
218
221
|
<li><a class="el" href="ApplicationPoolServer_8h-source.html">ApplicationPoolServer.h</a></ul>
|
219
222
|
</div>
|
220
|
-
<hr size="1"><address style="text-align: right;"><small>Generated on
|
223
|
+
<hr size="1"><address style="text-align: right;"><small>Generated on Wed Apr 8 22:35:12 2009 for Passenger by
|
221
224
|
<a href="http://www.doxygen.org/index.html">
|
222
|
-
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.
|
225
|
+
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.8 </small></address>
|
223
226
|
</body>
|
224
227
|
</html>
|