passenger 1.0.5 → 2.0.1
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 +33 -2
- data/INSTALL +4 -2
- data/LICENSE +11 -10
- data/README +23 -4
- data/Rakefile +179 -54
- data/benchmark/ApplicationPool.cpp +52 -0
- data/bin/passenger-config +18 -0
- data/bin/passenger-install-apache2-module +79 -14
- data/bin/passenger-make-enterprisey +14 -2
- data/bin/passenger-memory-stats +25 -2
- data/bin/passenger-spawn-server +20 -5
- data/bin/passenger-status +96 -0
- data/bin/passenger-stress-test +339 -0
- data/debian/compat +1 -0
- data/debian/control +21 -0
- data/debian/postinst +24 -0
- data/debian/prerm +2 -0
- data/doc/ApplicationPool algorithm.txt +66 -32
- data/doc/Architectural overview.html +1 -1
- data/doc/Security of user switching support.html +1 -1
- data/doc/Users guide.html +867 -243
- data/doc/Users guide.txt +830 -191
- data/doc/cxxapi/ApplicationPoolServer_8h-source.html +655 -524
- data/doc/cxxapi/ApplicationPool_8h-source.html +196 -173
- data/doc/cxxapi/Application_8h-source.html +430 -384
- data/doc/cxxapi/Configuration_8h-source.html +167 -132
- data/doc/cxxapi/DummySpawnManager_8h-source.html +110 -105
- data/doc/cxxapi/Exceptions_8h-source.html +229 -173
- data/doc/cxxapi/Hooks_8h-source.html +49 -44
- data/doc/cxxapi/Logging_8h-source.html +121 -88
- data/doc/cxxapi/MessageChannel_8h-source.html +501 -482
- data/doc/cxxapi/SpawnManager_8h-source.html +559 -518
- data/doc/cxxapi/StandardApplicationPool_8h-source.html +696 -537
- data/doc/cxxapi/System_8h-source.html +251 -0
- data/doc/cxxapi/Utils_8h-source.html +270 -163
- data/doc/cxxapi/annotated.html +40 -24
- data/doc/cxxapi/classClient-members.html +22 -17
- data/doc/cxxapi/classClient.html +22 -17
- data/doc/cxxapi/classDirectoryMapper-members.html +38 -0
- data/doc/cxxapi/classDirectoryMapper.html +203 -0
- data/doc/cxxapi/classHooks-members.html +33 -0
- data/doc/cxxapi/classHooks.html +43 -0
- data/doc/cxxapi/classPassenger_1_1Application-members.html +22 -17
- data/doc/cxxapi/classPassenger_1_1Application.html +38 -33
- data/doc/cxxapi/classPassenger_1_1ApplicationPool-members.html +24 -18
- data/doc/cxxapi/classPassenger_1_1ApplicationPool.html +94 -35
- data/doc/cxxapi/classPassenger_1_1ApplicationPoolServer-members.html +23 -18
- data/doc/cxxapi/classPassenger_1_1ApplicationPoolServer.html +53 -44
- 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 +28 -21
- data/doc/cxxapi/classPassenger_1_1Application_1_1Session.html +91 -56
- data/doc/cxxapi/classPassenger_1_1BusyException-members.html +33 -0
- data/doc/cxxapi/classPassenger_1_1BusyException.html +47 -0
- data/doc/cxxapi/classPassenger_1_1ConfigurationException-members.html +22 -17
- data/doc/cxxapi/classPassenger_1_1ConfigurationException.html +25 -22
- data/doc/cxxapi/classPassenger_1_1DummySpawnManager-members.html +22 -17
- data/doc/cxxapi/classPassenger_1_1DummySpawnManager.html +27 -22
- data/doc/cxxapi/classPassenger_1_1FileNotFoundException-members.html +22 -17
- data/doc/cxxapi/classPassenger_1_1FileNotFoundException.html +25 -20
- 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 +38 -0
- data/doc/cxxapi/classPassenger_1_1FileSystemException.html +61 -0
- data/doc/cxxapi/classPassenger_1_1FileSystemException__inherit__graph.map +1 -0
- data/doc/cxxapi/classPassenger_1_1FileSystemException__inherit__graph.md5 +1 -0
- data/doc/cxxapi/classPassenger_1_1FileSystemException__inherit__graph.png +0 -0
- data/doc/cxxapi/classPassenger_1_1IOException-members.html +22 -17
- data/doc/cxxapi/classPassenger_1_1IOException.html +26 -21
- 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 +22 -17
- data/doc/cxxapi/classPassenger_1_1MessageChannel.html +44 -21
- data/doc/cxxapi/classPassenger_1_1SpawnException-members.html +22 -17
- data/doc/cxxapi/classPassenger_1_1SpawnException.html +26 -23
- data/doc/cxxapi/classPassenger_1_1SpawnManager-members.html +24 -19
- data/doc/cxxapi/classPassenger_1_1SpawnManager.html +64 -43
- data/doc/cxxapi/classPassenger_1_1StandardApplicationPool-members.html +26 -19
- data/doc/cxxapi/classPassenger_1_1StandardApplicationPool.html +89 -37
- 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 +22 -17
- data/doc/cxxapi/classPassenger_1_1SystemException.html +32 -22
- data/doc/cxxapi/classPassenger_1_1SystemException__inherit__graph.map +1 -0
- data/doc/cxxapi/classPassenger_1_1SystemException__inherit__graph.md5 +1 -0
- data/doc/cxxapi/classPassenger_1_1SystemException__inherit__graph.png +0 -0
- data/doc/cxxapi/classPassenger_1_1TempFile-members.html +36 -0
- data/doc/cxxapi/classPassenger_1_1TempFile.html +128 -0
- data/doc/cxxapi/classPassenger_1_1Thread-members.html +35 -0
- data/doc/cxxapi/classPassenger_1_1Thread.html +100 -0
- data/doc/cxxapi/classboost_1_1this__thread_1_1disable__syscall__interruption-members.html +33 -0
- data/doc/cxxapi/classboost_1_1this__thread_1_1disable__syscall__interruption.html +46 -0
- data/doc/cxxapi/classboost_1_1this__thread_1_1enable__syscall__interruption-members.html +33 -0
- data/doc/cxxapi/classboost_1_1this__thread_1_1enable__syscall__interruption.html +44 -0
- data/doc/cxxapi/classboost_1_1this__thread_1_1restore__syscall__interruption-members.html +33 -0
- data/doc/cxxapi/classboost_1_1this__thread_1_1restore__syscall__interruption.html +44 -0
- data/doc/cxxapi/definitions_8h-source.html +14 -11
- data/doc/cxxapi/doxygen.css +152 -77
- data/doc/cxxapi/files.html +18 -12
- data/doc/cxxapi/functions.html +107 -55
- data/doc/cxxapi/functions_func.html +104 -55
- data/doc/cxxapi/functions_type.html +30 -24
- data/doc/cxxapi/functions_vars.html +48 -0
- data/doc/cxxapi/graph_legend.dot +19 -19
- data/doc/cxxapi/graph_legend.html +15 -10
- data/doc/cxxapi/graph_legend.png +0 -0
- data/doc/cxxapi/group__Configuration.html +18 -13
- data/doc/cxxapi/group__Configuration.png +0 -0
- data/doc/cxxapi/group__Core.html +23 -11
- data/doc/cxxapi/group__Core.png +0 -0
- data/doc/cxxapi/group__Exceptions.html +21 -10
- data/doc/cxxapi/group__Hooks.html +16 -11
- data/doc/cxxapi/group__Hooks.png +0 -0
- data/doc/cxxapi/group__Support.html +169 -21
- data/doc/cxxapi/hierarchy.html +38 -22
- data/doc/cxxapi/index.html +1 -1
- 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 -0
- data/doc/cxxapi/inherit__graph__11.md5 +1 -0
- data/doc/cxxapi/inherit__graph__11.png +0 -0
- data/doc/cxxapi/inherit__graph__12.map +1 -0
- data/doc/cxxapi/inherit__graph__12.md5 +1 -0
- data/doc/cxxapi/inherit__graph__12.png +0 -0
- data/doc/cxxapi/inherit__graph__13.map +1 -0
- data/doc/cxxapi/inherit__graph__13.md5 +1 -0
- data/doc/cxxapi/inherit__graph__13.png +0 -0
- data/doc/cxxapi/inherit__graph__14.map +2 -0
- data/doc/cxxapi/inherit__graph__14.md5 +1 -0
- data/doc/cxxapi/inherit__graph__14.png +0 -0
- data/doc/cxxapi/inherit__graph__15.map +1 -0
- data/doc/cxxapi/inherit__graph__15.md5 +1 -0
- data/doc/cxxapi/inherit__graph__15.png +0 -0
- data/doc/cxxapi/inherit__graph__16.map +1 -0
- data/doc/cxxapi/inherit__graph__16.md5 +1 -0
- data/doc/cxxapi/inherit__graph__16.png +0 -0
- data/doc/cxxapi/inherit__graph__17.map +1 -0
- data/doc/cxxapi/inherit__graph__17.md5 +1 -0
- data/doc/cxxapi/inherit__graph__17.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__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 -2
- 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 -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 -5
- 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 +2 -1
- data/doc/cxxapi/inherit__graph__9.md5 +1 -1
- data/doc/cxxapi/inherit__graph__9.png +0 -0
- data/doc/cxxapi/inherits.html +80 -39
- data/doc/cxxapi/main.html +15 -10
- data/doc/cxxapi/modules.html +16 -11
- data/doc/cxxapi/namespacePassenger.html +208 -0
- data/doc/cxxapi/namespacePassenger_1_1InterruptableCalls.html +43 -0
- data/doc/cxxapi/namespacemembers.html +70 -0
- data/doc/cxxapi/namespacemembers_func.html +66 -0
- data/doc/cxxapi/namespacemembers_type.html +46 -0
- data/doc/cxxapi/namespaces.html +35 -0
- data/doc/cxxapi/structPassenger_1_1AnythingToString-members.html +22 -17
- data/doc/cxxapi/structPassenger_1_1AnythingToString.html +24 -19
- data/doc/cxxapi/structPassenger_1_1AnythingToString_3_01vector_3_01string_01_4_01_4-members.html +23 -18
- data/doc/cxxapi/structPassenger_1_1AnythingToString_3_01vector_3_01string_01_4_01_4.html +27 -22
- data/doc/cxxapi/tabs.css +1 -1
- data/doc/cxxapi/tree.html +41 -13
- data/doc/rdoc/classes/ConditionVariable.html +25 -23
- data/doc/rdoc/classes/Exception.html +11 -11
- data/doc/rdoc/classes/GC.html +4 -4
- data/doc/rdoc/classes/IO.html +8 -8
- data/doc/rdoc/classes/Passenger.html +27 -8
- data/doc/rdoc/classes/Passenger/AbstractRequestHandler.html +401 -0
- data/doc/rdoc/classes/Passenger/AbstractServer.html +248 -208
- data/doc/rdoc/classes/Passenger/AppInitError.html +37 -6
- data/doc/rdoc/classes/Passenger/Application.html +73 -74
- data/doc/rdoc/classes/Passenger/ConsoleTextTemplate.html +35 -35
- data/doc/rdoc/classes/Passenger/FrameworkInitError.html +17 -18
- data/doc/rdoc/classes/Passenger/HTMLTemplate.html +30 -30
- data/doc/rdoc/classes/Passenger/InitializationError.html +11 -11
- data/doc/rdoc/classes/Passenger/MessageChannel.html +138 -138
- data/doc/rdoc/classes/Passenger/SpawnManager.html +142 -145
- data/doc/rdoc/classes/Passenger/UnknownError.html +11 -11
- data/doc/rdoc/classes/Passenger/Utils.html +327 -99
- data/doc/rdoc/classes/Passenger/VersionNotFound.html +6 -6
- data/doc/rdoc/classes/PlatformInfo.html +10 -10
- data/doc/rdoc/created.rid +1 -1
- data/doc/rdoc/files/DEVELOPERS_TXT.html +55 -3
- data/doc/rdoc/files/README.html +35 -5
- data/doc/rdoc/files/ext/passenger/native_support_c.html +1 -1
- data/doc/rdoc/files/lib/passenger/abstract_request_handler_rb.html +125 -0
- data/doc/rdoc/files/lib/passenger/abstract_server_rb.html +7 -1
- data/doc/rdoc/files/lib/passenger/application_rb.html +6 -2
- data/doc/rdoc/files/lib/passenger/console_text_template_rb.html +5 -1
- data/doc/rdoc/files/lib/passenger/constants_rb.html +114 -0
- data/doc/rdoc/files/lib/passenger/dependencies_rb.html +7 -1
- data/doc/rdoc/files/lib/passenger/exceptions_rb.html +118 -0
- data/doc/rdoc/files/lib/passenger/html_template_rb.html +5 -1
- data/doc/rdoc/files/lib/passenger/message_channel_rb.html +5 -5
- data/doc/rdoc/files/lib/passenger/platform_info_rb.html +5 -1
- data/doc/rdoc/files/lib/passenger/simple_benchmarking_rb.html +5 -1
- data/doc/rdoc/files/lib/passenger/spawn_manager_rb.html +19 -4
- data/doc/rdoc/files/lib/passenger/utils_rb.html +10 -3
- data/doc/rdoc/fr_class_index.html +1 -6
- data/doc/rdoc/fr_file_index.html +3 -4
- data/doc/rdoc/fr_method_index.html +55 -60
- data/ext/apache2/Application.h +105 -62
- data/ext/apache2/ApplicationPool.h +29 -9
- data/ext/apache2/ApplicationPoolServer.h +654 -0
- data/ext/apache2/ApplicationPoolServerExecutable.cpp +474 -0
- data/ext/apache2/Configuration.cpp +278 -63
- data/ext/apache2/Configuration.h +45 -13
- data/ext/apache2/DummySpawnManager.h +2 -0
- data/ext/apache2/Exceptions.h +53 -0
- data/ext/apache2/Hooks.cpp +484 -156
- data/ext/apache2/Hooks.h +2 -0
- data/ext/apache2/Logging.cpp +13 -1
- data/ext/apache2/Logging.h +36 -6
- data/ext/apache2/MessageChannel.h +32 -16
- data/ext/apache2/SpawnManager.h +90 -52
- data/ext/apache2/StandardApplicationPool.h +251 -95
- data/ext/apache2/System.cpp +232 -0
- data/ext/apache2/System.h +228 -0
- data/ext/apache2/Utils.cpp +80 -20
- data/ext/apache2/Utils.h +107 -3
- data/ext/apache2/mod_passenger.c +2 -0
- data/ext/boost/VERSION.TXT +1 -1
- data/ext/boost/algorithm/string/case_conv.hpp +176 -0
- data/ext/boost/algorithm/string/compare.hpp +199 -0
- data/ext/boost/algorithm/string/concept.hpp +83 -0
- data/ext/boost/algorithm/string/config.hpp +28 -0
- data/ext/boost/algorithm/string/constants.hpp +36 -0
- data/ext/boost/algorithm/string/detail/case_conv.hpp +112 -0
- data/ext/boost/algorithm/string/detail/find_format.hpp +193 -0
- data/ext/boost/algorithm/string/detail/find_format_all.hpp +263 -0
- data/ext/boost/algorithm/string/detail/find_format_store.hpp +71 -0
- data/ext/boost/algorithm/string/detail/finder.hpp +646 -0
- data/ext/boost/algorithm/string/detail/formatter.hpp +94 -0
- data/ext/boost/algorithm/string/detail/replace_storage.hpp +159 -0
- data/ext/boost/algorithm/string/detail/sequence.hpp +200 -0
- data/ext/boost/algorithm/string/detail/util.hpp +106 -0
- data/ext/boost/algorithm/string/erase.hpp +844 -0
- data/ext/boost/algorithm/string/find_format.hpp +269 -0
- data/ext/boost/algorithm/string/finder.hpp +270 -0
- data/ext/boost/algorithm/string/formatter.hpp +103 -0
- data/ext/boost/algorithm/string/replace.hpp +928 -0
- data/ext/boost/algorithm/string/sequence_traits.hpp +193 -0
- data/ext/boost/algorithm/string/yes_no_type.hpp +33 -0
- data/ext/boost/assert.hpp +50 -37
- data/ext/boost/bind.hpp +38 -0
- data/ext/boost/bind/arg.hpp +28 -2
- data/ext/boost/bind/bind_template.hpp +119 -0
- data/ext/boost/bind/placeholders.hpp +1 -1
- data/ext/boost/call_traits.hpp +24 -0
- data/ext/boost/checked_delete.hpp +69 -69
- data/ext/boost/concept/assert.hpp +46 -0
- data/ext/boost/concept/detail/concept_def.hpp +51 -0
- data/ext/boost/concept/detail/concept_undef.hpp +5 -0
- data/ext/boost/concept/detail/general.hpp +66 -0
- data/ext/boost/concept/detail/has_constraints.hpp +48 -0
- data/ext/boost/concept/usage.hpp +43 -0
- data/ext/boost/concept_check.hpp +988 -0
- data/ext/boost/config.hpp +70 -70
- data/ext/boost/config/abi/borland_prefix.hpp +27 -27
- data/ext/boost/config/abi/borland_suffix.hpp +12 -12
- data/ext/boost/config/abi/msvc_prefix.hpp +8 -8
- data/ext/boost/config/abi/msvc_suffix.hpp +8 -8
- data/ext/boost/config/abi_prefix.hpp +25 -20
- data/ext/boost/config/abi_suffix.hpp +26 -23
- data/ext/boost/config/auto_link.hpp +368 -363
- data/ext/boost/config/compiler/borland.hpp +209 -190
- data/ext/boost/config/compiler/comeau.hpp +59 -59
- data/ext/boost/config/compiler/common_edg.hpp +62 -62
- data/ext/boost/config/compiler/compaq_cxx.hpp +19 -19
- data/ext/boost/config/compiler/digitalmars.hpp +67 -49
- data/ext/boost/config/compiler/gcc.hpp +149 -105
- data/ext/boost/config/compiler/gcc_xml.hpp +30 -30
- data/ext/boost/config/compiler/greenhills.hpp +28 -28
- data/ext/boost/config/compiler/hp_acc.hpp +95 -72
- data/ext/boost/config/compiler/intel.hpp +162 -158
- data/ext/boost/config/compiler/kai.hpp +35 -35
- data/ext/boost/config/compiler/metrowerks.hpp +111 -104
- data/ext/boost/config/compiler/mpw.hpp +51 -51
- data/ext/boost/config/compiler/pgi.hpp +25 -0
- data/ext/boost/config/compiler/sgi_mipspro.hpp +28 -24
- data/ext/boost/config/compiler/sunpro_cc.hpp +98 -92
- data/ext/boost/config/compiler/vacpp.hpp +60 -57
- data/ext/boost/config/compiler/visualc.hpp +191 -178
- data/ext/boost/config/no_tr1/complex.hpp +28 -28
- data/ext/boost/config/no_tr1/functional.hpp +28 -28
- data/ext/boost/config/no_tr1/memory.hpp +28 -28
- data/ext/boost/config/no_tr1/utility.hpp +28 -28
- data/ext/boost/config/platform/aix.hpp +33 -33
- data/ext/boost/config/platform/amigaos.hpp +15 -15
- data/ext/boost/config/platform/beos.hpp +26 -26
- data/ext/boost/config/platform/bsd.hpp +73 -73
- data/ext/boost/config/platform/cygwin.hpp +51 -48
- data/ext/boost/config/platform/hpux.hpp +84 -85
- data/ext/boost/config/platform/irix.hpp +31 -31
- data/ext/boost/config/platform/linux.hpp +98 -98
- data/ext/boost/config/platform/macos.hpp +78 -78
- data/ext/boost/config/platform/qnxnto.hpp +31 -31
- data/ext/boost/config/platform/solaris.hpp +21 -21
- data/ext/boost/config/platform/win32.hpp +58 -58
- data/ext/boost/config/posix_features.hpp +95 -95
- data/ext/boost/config/requires_threads.hpp +92 -92
- data/ext/boost/config/select_compiler_config.hpp +115 -87
- data/ext/boost/config/select_platform_config.hpp +90 -90
- data/ext/boost/config/select_stdlib_config.hpp +68 -68
- data/ext/boost/config/stdlib/dinkumware.hpp +106 -106
- data/ext/boost/config/stdlib/libcomo.hpp +46 -46
- data/ext/boost/config/stdlib/libstdcpp3.hpp +73 -73
- data/ext/boost/config/stdlib/modena.hpp +30 -30
- data/ext/boost/config/stdlib/msl.hpp +59 -59
- data/ext/boost/config/stdlib/roguewave.hpp +153 -127
- data/ext/boost/config/stdlib/sgi.hpp +111 -111
- data/ext/boost/config/stdlib/stlport.hpp +201 -201
- data/ext/boost/config/stdlib/vacpp.hpp +18 -18
- data/ext/boost/config/suffix.hpp +566 -569
- data/ext/boost/config/user.hpp +124 -124
- data/ext/boost/cstdint.hpp +446 -446
- data/ext/boost/date_time/adjust_functors.hpp +178 -0
- data/ext/boost/date_time/c_time.hpp +91 -0
- data/ext/boost/date_time/compiler_config.hpp +149 -0
- data/ext/boost/date_time/constrained_value.hpp +98 -0
- data/ext/boost/date_time/date.hpp +197 -0
- data/ext/boost/date_time/date_clock_device.hpp +77 -0
- data/ext/boost/date_time/date_defs.hpp +26 -0
- data/ext/boost/date_time/date_duration.hpp +147 -0
- data/ext/boost/date_time/date_duration_types.hpp +269 -0
- data/ext/boost/date_time/date_facet.hpp +775 -0
- data/ext/boost/date_time/date_format_simple.hpp +159 -0
- data/ext/boost/date_time/date_formatting.hpp +127 -0
- data/ext/boost/date_time/date_formatting_limited.hpp +121 -0
- data/ext/boost/date_time/date_formatting_locales.hpp +233 -0
- data/ext/boost/date_time/date_generator_formatter.hpp +263 -0
- data/ext/boost/date_time/date_generator_parser.hpp +329 -0
- data/ext/boost/date_time/date_generators.hpp +509 -0
- data/ext/boost/date_time/date_iterator.hpp +101 -0
- data/ext/boost/date_time/date_names_put.hpp +320 -0
- data/ext/boost/date_time/date_parsing.hpp +299 -0
- data/ext/boost/date_time/dst_rules.hpp +391 -0
- data/ext/boost/date_time/filetime_functions.hpp +78 -0
- data/ext/boost/date_time/format_date_parser.hpp +731 -0
- data/ext/boost/date_time/gregorian/conversion.hpp +73 -0
- data/ext/boost/date_time/gregorian/formatters.hpp +162 -0
- data/ext/boost/date_time/gregorian/formatters_limited.hpp +81 -0
- data/ext/boost/date_time/gregorian/greg_calendar.hpp +47 -0
- data/ext/boost/date_time/gregorian/greg_date.hpp +135 -0
- data/ext/boost/date_time/gregorian/greg_day.hpp +57 -0
- data/ext/boost/date_time/gregorian/greg_day_of_year.hpp +38 -0
- data/ext/boost/date_time/gregorian/greg_duration.hpp +38 -0
- data/ext/boost/date_time/gregorian/greg_duration_types.hpp +34 -0
- data/ext/boost/date_time/gregorian/greg_month.hpp +105 -0
- data/ext/boost/date_time/gregorian/greg_weekday.hpp +66 -0
- data/ext/boost/date_time/gregorian/greg_year.hpp +53 -0
- data/ext/boost/date_time/gregorian/greg_ymd.hpp +33 -0
- data/ext/boost/date_time/gregorian/gregorian.hpp +38 -0
- data/ext/boost/date_time/gregorian/gregorian_io.hpp +777 -0
- data/ext/boost/date_time/gregorian/gregorian_types.hpp +109 -0
- data/ext/boost/date_time/gregorian/parsers.hpp +91 -0
- data/ext/boost/date_time/gregorian_calendar.hpp +70 -0
- data/ext/boost/date_time/gregorian_calendar.ipp +219 -0
- data/ext/boost/date_time/int_adapter.hpp +507 -0
- data/ext/boost/date_time/iso_format.hpp +303 -0
- data/ext/boost/date_time/locale_config.hpp +31 -0
- data/ext/boost/date_time/microsec_time_clock.hpp +205 -0
- data/ext/boost/date_time/parse_format_base.hpp +29 -0
- data/ext/boost/date_time/period.hpp +377 -0
- data/ext/boost/date_time/period_formatter.hpp +196 -0
- data/ext/boost/date_time/period_parser.hpp +196 -0
- data/ext/boost/date_time/posix_time/conversion.hpp +93 -0
- data/ext/boost/date_time/posix_time/date_duration_operators.hpp +114 -0
- data/ext/boost/date_time/posix_time/posix_time.hpp +39 -0
- data/ext/boost/date_time/posix_time/posix_time_config.hpp +178 -0
- data/ext/boost/date_time/posix_time/posix_time_duration.hpp +82 -0
- data/ext/boost/date_time/posix_time/posix_time_io.hpp +246 -0
- data/ext/boost/date_time/posix_time/posix_time_system.hpp +68 -0
- data/ext/boost/date_time/posix_time/posix_time_types.hpp +55 -0
- data/ext/boost/date_time/posix_time/ptime.hpp +65 -0
- data/ext/boost/date_time/posix_time/time_formatters.hpp +289 -0
- data/ext/boost/date_time/posix_time/time_parsers.hpp +44 -0
- data/ext/boost/date_time/posix_time/time_period.hpp +29 -0
- data/ext/boost/date_time/special_defs.hpp +25 -0
- data/ext/boost/date_time/special_values_formatter.hpp +96 -0
- data/ext/boost/date_time/special_values_parser.hpp +159 -0
- data/ext/boost/date_time/string_convert.hpp +33 -0
- data/ext/boost/date_time/string_parse_tree.hpp +278 -0
- data/ext/boost/date_time/strings_from_facet.hpp +123 -0
- data/ext/boost/date_time/time.hpp +190 -0
- data/ext/boost/date_time/time_clock.hpp +83 -0
- data/ext/boost/date_time/time_defs.hpp +33 -0
- data/ext/boost/date_time/time_duration.hpp +281 -0
- data/ext/boost/date_time/time_facet.hpp +1263 -0
- data/ext/boost/date_time/time_formatting_streams.hpp +119 -0
- data/ext/boost/date_time/time_iterator.hpp +52 -0
- data/ext/boost/date_time/time_parsing.hpp +321 -0
- data/ext/boost/date_time/time_resolution_traits.hpp +140 -0
- data/ext/boost/date_time/time_system_counted.hpp +254 -0
- data/ext/boost/date_time/time_system_split.hpp +213 -0
- data/ext/boost/date_time/wrapping_int.hpp +163 -0
- data/ext/boost/date_time/year_month_day.hpp +45 -0
- data/ext/boost/detail/atomic_count.hpp +124 -0
- data/ext/boost/detail/atomic_count_gcc.hpp +68 -0
- data/ext/boost/detail/atomic_count_gcc_x86.hpp +84 -0
- data/ext/boost/detail/atomic_count_pthreads.hpp +96 -0
- data/ext/boost/detail/atomic_count_solaris.hpp +59 -0
- data/ext/boost/detail/atomic_count_sync.hpp +57 -0
- data/ext/boost/detail/atomic_count_win32.hpp +63 -0
- data/ext/boost/detail/bad_weak_ptr.hpp +59 -59
- data/ext/boost/detail/call_traits.hpp +164 -0
- data/ext/boost/detail/endian.hpp +73 -0
- data/ext/boost/detail/indirect_traits.hpp +487 -0
- data/ext/boost/detail/iterator.hpp +494 -0
- data/ext/boost/detail/lcast_precision.hpp +184 -0
- data/ext/boost/detail/limits.hpp +449 -0
- data/ext/boost/detail/reference_content.hpp +141 -141
- data/ext/boost/detail/shared_count.hpp +375 -376
- data/ext/boost/detail/sp_counted_base.hpp +81 -69
- data/ext/boost/detail/sp_counted_base_acc_ia64.hpp +150 -0
- data/ext/boost/detail/sp_counted_base_cw_ppc.hpp +170 -170
- data/ext/boost/detail/sp_counted_base_cw_x86.hpp +158 -158
- data/ext/boost/detail/sp_counted_base_gcc_ia64.hpp +157 -157
- data/ext/boost/detail/sp_counted_base_gcc_ppc.hpp +181 -181
- data/ext/boost/detail/sp_counted_base_gcc_sparc.hpp +166 -0
- data/ext/boost/detail/sp_counted_base_gcc_x86.hpp +173 -173
- data/ext/boost/detail/sp_counted_base_nt.hpp +107 -107
- data/ext/boost/detail/sp_counted_base_pt.hpp +135 -135
- data/ext/boost/detail/sp_counted_base_solaris.hpp +113 -0
- data/ext/boost/detail/sp_counted_base_sync.hpp +151 -0
- data/ext/boost/detail/sp_counted_base_w32.hpp +130 -130
- data/ext/boost/detail/sp_counted_impl.hpp +231 -232
- data/ext/boost/detail/sp_typeinfo.hpp +83 -0
- data/ext/boost/detail/workaround.hpp +202 -74
- data/ext/boost/enable_shared_from_this.hpp +73 -0
- data/ext/boost/function.hpp +4 -2
- data/ext/boost/function/detail/prologue.hpp +1 -0
- data/ext/boost/function/function_base.hpp +41 -15
- data/ext/boost/function/function_template.hpp +238 -106
- data/ext/boost/implicit_cast.hpp +29 -0
- data/ext/boost/integer_traits.hpp +236 -0
- data/ext/boost/io/ios_state.hpp +431 -0
- data/ext/boost/io_fwd.hpp +67 -0
- data/ext/boost/is_placeholder.hpp +31 -0
- data/ext/boost/iterator.hpp +59 -0
- data/ext/boost/iterator/detail/config_def.hpp +135 -0
- data/ext/boost/iterator/detail/config_undef.hpp +25 -0
- data/ext/boost/iterator/detail/enable_if.hpp +86 -0
- data/ext/boost/iterator/detail/facade_iterator_category.hpp +200 -0
- data/ext/boost/iterator/detail/minimum_category.hpp +116 -0
- data/ext/boost/iterator/interoperable.hpp +50 -0
- data/ext/boost/iterator/iterator_adaptor.hpp +366 -0
- data/ext/boost/iterator/iterator_categories.hpp +188 -0
- data/ext/boost/iterator/iterator_facade.hpp +879 -0
- data/ext/boost/iterator/iterator_traits.hpp +92 -0
- data/ext/boost/iterator/reverse_iterator.hpp +69 -0
- data/ext/boost/iterator/transform_iterator.hpp +188 -0
- data/ext/boost/lexical_cast.hpp +1205 -0
- data/ext/boost/limits.hpp +146 -144
- data/ext/boost/mpl/always.hpp +39 -39
- data/ext/boost/mpl/and.hpp +60 -56
- data/ext/boost/mpl/apply.hpp +225 -225
- data/ext/boost/mpl/apply_fwd.hpp +107 -107
- data/ext/boost/mpl/apply_wrap.hpp +200 -200
- data/ext/boost/mpl/arg.hpp +131 -131
- data/ext/boost/mpl/arg_fwd.hpp +28 -28
- data/ext/boost/mpl/assert.hpp +370 -361
- data/ext/boost/mpl/aux_/adl_barrier.hpp +48 -48
- data/ext/boost/mpl/aux_/arg_typedef.hpp +31 -31
- data/ext/boost/mpl/aux_/arity.hpp +39 -39
- data/ext/boost/mpl/aux_/arity_spec.hpp +67 -67
- data/ext/boost/mpl/aux_/common_name_wknd.hpp +34 -34
- data/ext/boost/mpl/aux_/config/adl.hpp +40 -40
- data/ext/boost/mpl/aux_/config/arrays.hpp +30 -30
- data/ext/boost/mpl/aux_/config/bind.hpp +33 -33
- data/ext/boost/mpl/aux_/config/compiler.hpp +64 -64
- data/ext/boost/mpl/aux_/config/ctps.hpp +30 -30
- data/ext/boost/mpl/aux_/config/dtp.hpp +46 -46
- data/ext/boost/mpl/aux_/config/eti.hpp +47 -47
- data/ext/boost/mpl/aux_/config/gcc.hpp +23 -23
- data/ext/boost/mpl/aux_/config/has_apply.hpp +32 -32
- data/ext/boost/mpl/aux_/config/has_xxx.hpp +33 -33
- data/ext/boost/mpl/aux_/config/integral.hpp +38 -38
- data/ext/boost/mpl/aux_/config/intel.hpp +21 -21
- data/ext/boost/mpl/aux_/config/lambda.hpp +32 -32
- data/ext/boost/mpl/aux_/config/msvc.hpp +21 -21
- data/ext/boost/mpl/aux_/config/msvc_typename.hpp +26 -26
- data/ext/boost/mpl/aux_/config/nttp.hpp +41 -41
- data/ext/boost/mpl/aux_/config/overload_resolution.hpp +29 -29
- data/ext/boost/mpl/aux_/config/pp_counter.hpp +26 -0
- data/ext/boost/mpl/aux_/config/preprocessor.hpp +39 -39
- data/ext/boost/mpl/aux_/config/static_constant.hpp +25 -25
- data/ext/boost/mpl/aux_/config/ttp.hpp +41 -39
- data/ext/boost/mpl/aux_/config/use_preprocessed.hpp +19 -19
- data/ext/boost/mpl/aux_/config/workaround.hpp +19 -19
- data/ext/boost/mpl/aux_/full_lambda.hpp +350 -350
- data/ext/boost/mpl/aux_/has_apply.hpp +32 -32
- data/ext/boost/mpl/aux_/has_type.hpp +23 -23
- data/ext/boost/mpl/aux_/include_preprocessed.hpp +42 -42
- data/ext/boost/mpl/aux_/integral_wrapper.hpp +93 -93
- data/ext/boost/mpl/aux_/lambda_arity_param.hpp +25 -25
- data/ext/boost/mpl/aux_/lambda_support.hpp +169 -169
- data/ext/boost/mpl/aux_/msvc_never_true.hpp +34 -34
- data/ext/boost/mpl/aux_/na.hpp +95 -95
- data/ext/boost/mpl/aux_/na_assert.hpp +34 -34
- data/ext/boost/mpl/aux_/na_fwd.hpp +31 -31
- data/ext/boost/mpl/aux_/na_spec.hpp +175 -175
- data/ext/boost/mpl/aux_/nested_type_wknd.hpp +48 -48
- data/ext/boost/mpl/aux_/nttp_decl.hpp +35 -35
- data/ext/boost/mpl/aux_/preprocessed/gcc/and.hpp +69 -69
- data/ext/boost/mpl/aux_/preprocessed/gcc/apply.hpp +169 -169
- data/ext/boost/mpl/aux_/preprocessed/gcc/apply_fwd.hpp +52 -52
- data/ext/boost/mpl/aux_/preprocessed/gcc/apply_wrap.hpp +84 -84
- data/ext/boost/mpl/aux_/preprocessed/gcc/arg.hpp +123 -123
- data/ext/boost/mpl/aux_/preprocessed/gcc/bind.hpp +561 -561
- data/ext/boost/mpl/aux_/preprocessed/gcc/bind_fwd.hpp +52 -52
- data/ext/boost/mpl/aux_/preprocessed/gcc/full_lambda.hpp +558 -558
- data/ext/boost/mpl/aux_/preprocessed/gcc/or.hpp +69 -69
- data/ext/boost/mpl/aux_/preprocessed/gcc/placeholders.hpp +105 -105
- data/ext/boost/mpl/aux_/preprocessed/gcc/quote.hpp +123 -123
- data/ext/boost/mpl/aux_/preprocessed/gcc/template_arity.hpp +101 -101
- data/ext/boost/mpl/aux_/preprocessor/def_params_tail.hpp +105 -105
- data/ext/boost/mpl/aux_/preprocessor/enum.hpp +62 -62
- data/ext/boost/mpl/aux_/preprocessor/filter_params.hpp +28 -28
- data/ext/boost/mpl/aux_/preprocessor/params.hpp +65 -65
- data/ext/boost/mpl/aux_/preprocessor/sub.hpp +65 -65
- data/ext/boost/mpl/aux_/static_cast.hpp +27 -27
- data/ext/boost/mpl/aux_/template_arity.hpp +189 -189
- data/ext/boost/mpl/aux_/template_arity_fwd.hpp +23 -23
- data/ext/boost/mpl/aux_/type_wrapper.hpp +47 -47
- data/ext/boost/mpl/aux_/value_wknd.hpp +89 -89
- data/ext/boost/mpl/aux_/yes_no.hpp +58 -58
- data/ext/boost/mpl/bind.hpp +547 -547
- data/ext/boost/mpl/bind_fwd.hpp +99 -99
- data/ext/boost/mpl/bool.hpp +39 -39
- data/ext/boost/mpl/bool_fwd.hpp +33 -33
- data/ext/boost/mpl/eval_if.hpp +71 -71
- data/ext/boost/mpl/has_xxx.hpp +272 -233
- data/ext/boost/mpl/identity.hpp +45 -45
- data/ext/boost/mpl/if.hpp +135 -135
- data/ext/boost/mpl/int.hpp +22 -22
- data/ext/boost/mpl/int_fwd.hpp +27 -27
- data/ext/boost/mpl/integral_c.hpp +51 -51
- data/ext/boost/mpl/integral_c_fwd.hpp +32 -32
- data/ext/boost/mpl/integral_c_tag.hpp +26 -26
- data/ext/boost/mpl/lambda.hpp +29 -29
- data/ext/boost/mpl/lambda_fwd.hpp +57 -57
- data/ext/boost/mpl/limits/arity.hpp +21 -21
- data/ext/boost/mpl/logical.hpp +21 -21
- data/ext/boost/mpl/next.hpp +19 -19
- data/ext/boost/mpl/next_prior.hpp +49 -49
- data/ext/boost/mpl/not.hpp +51 -51
- data/ext/boost/mpl/or.hpp +61 -57
- data/ext/boost/mpl/placeholders.hpp +100 -100
- data/ext/boost/mpl/protect.hpp +55 -55
- data/ext/boost/mpl/quote.hpp +140 -140
- data/ext/boost/mpl/size_t.hpp +25 -25
- data/ext/boost/mpl/size_t_fwd.hpp +28 -28
- data/ext/boost/mpl/void.hpp +76 -76
- data/ext/boost/mpl/void_fwd.hpp +26 -26
- data/ext/boost/next_prior.hpp +51 -51
- data/ext/boost/noncopyable.hpp +36 -36
- data/ext/boost/none.hpp +28 -43
- data/ext/boost/none_t.hpp +24 -0
- data/ext/boost/operators.hpp +943 -0
- data/ext/boost/optional.hpp +18 -18
- data/ext/boost/optional/optional.hpp +922 -922
- data/ext/boost/optional/optional_fwd.hpp +22 -22
- data/ext/boost/preprocessor/arithmetic/add.hpp +51 -51
- data/ext/boost/preprocessor/arithmetic/dec.hpp +288 -288
- data/ext/boost/preprocessor/arithmetic/inc.hpp +288 -288
- data/ext/boost/preprocessor/arithmetic/sub.hpp +50 -50
- data/ext/boost/preprocessor/array/data.hpp +28 -28
- data/ext/boost/preprocessor/array/elem.hpp +29 -29
- data/ext/boost/preprocessor/array/size.hpp +28 -28
- data/ext/boost/preprocessor/cat.hpp +35 -35
- data/ext/boost/preprocessor/comma_if.hpp +17 -17
- data/ext/boost/preprocessor/config/config.hpp +70 -70
- data/ext/boost/preprocessor/control/detail/while.hpp +536 -536
- data/ext/boost/preprocessor/control/expr_iif.hpp +31 -31
- data/ext/boost/preprocessor/control/if.hpp +30 -30
- data/ext/boost/preprocessor/control/iif.hpp +34 -34
- data/ext/boost/preprocessor/control/while.hpp +312 -312
- data/ext/boost/preprocessor/debug/error.hpp +33 -33
- data/ext/boost/preprocessor/detail/auto_rec.hpp +293 -293
- data/ext/boost/preprocessor/detail/check.hpp +48 -48
- data/ext/boost/preprocessor/detail/is_binary.hpp +30 -30
- data/ext/boost/preprocessor/empty.hpp +17 -17
- data/ext/boost/preprocessor/enum.hpp +17 -17
- data/ext/boost/preprocessor/enum_params.hpp +17 -17
- data/ext/boost/preprocessor/facilities/empty.hpp +21 -21
- data/ext/boost/preprocessor/facilities/identity.hpp +23 -23
- data/ext/boost/preprocessor/identity.hpp +17 -17
- data/ext/boost/preprocessor/inc.hpp +17 -17
- data/ext/boost/preprocessor/iterate.hpp +17 -17
- data/ext/boost/preprocessor/iteration/detail/bounds/lower1.hpp +99 -99
- data/ext/boost/preprocessor/iteration/detail/bounds/upper1.hpp +99 -99
- data/ext/boost/preprocessor/iteration/detail/iter/forward1.hpp +1342 -1342
- data/ext/boost/preprocessor/iteration/iterate.hpp +82 -82
- data/ext/boost/preprocessor/list/adt.hpp +73 -73
- data/ext/boost/preprocessor/list/append.hpp +40 -40
- data/ext/boost/preprocessor/list/detail/fold_left.hpp +279 -279
- data/ext/boost/preprocessor/list/detail/fold_right.hpp +277 -277
- data/ext/boost/preprocessor/list/fold_left.hpp +303 -303
- data/ext/boost/preprocessor/list/fold_right.hpp +40 -40
- data/ext/boost/preprocessor/list/for_each_i.hpp +65 -65
- data/ext/boost/preprocessor/list/reverse.hpp +40 -40
- data/ext/boost/preprocessor/list/transform.hpp +49 -49
- data/ext/boost/preprocessor/logical/and.hpp +30 -30
- data/ext/boost/preprocessor/logical/bitand.hpp +38 -38
- data/ext/boost/preprocessor/logical/bool.hpp +288 -288
- data/ext/boost/preprocessor/logical/compl.hpp +36 -36
- data/ext/boost/preprocessor/punctuation/comma.hpp +21 -21
- data/ext/boost/preprocessor/punctuation/comma_if.hpp +31 -31
- data/ext/boost/preprocessor/repeat.hpp +17 -17
- data/ext/boost/preprocessor/repetition/detail/for.hpp +536 -536
- data/ext/boost/preprocessor/repetition/enum.hpp +66 -66
- data/ext/boost/preprocessor/repetition/enum_binary_params.hpp +54 -54
- data/ext/boost/preprocessor/repetition/enum_params.hpp +41 -41
- data/ext/boost/preprocessor/repetition/for.hpp +306 -306
- data/ext/boost/preprocessor/repetition/repeat.hpp +825 -825
- data/ext/boost/preprocessor/repetition/repeat_from_to.hpp +87 -87
- data/ext/boost/preprocessor/seq/elem.hpp +304 -304
- data/ext/boost/preprocessor/seq/enum.hpp +288 -288
- data/ext/boost/preprocessor/seq/for_each_i.hpp +61 -61
- data/ext/boost/preprocessor/seq/seq.hpp +44 -44
- data/ext/boost/preprocessor/seq/size.hpp +548 -548
- data/ext/boost/preprocessor/slot/detail/def.hpp +49 -49
- data/ext/boost/preprocessor/slot/detail/shared.hpp +247 -247
- data/ext/boost/preprocessor/slot/slot.hpp +32 -32
- data/ext/boost/preprocessor/stringize.hpp +33 -33
- data/ext/boost/preprocessor/tuple/eat.hpp +57 -57
- data/ext/boost/preprocessor/tuple/elem.hpp +385 -385
- data/ext/boost/preprocessor/tuple/rem.hpp +72 -72
- data/ext/boost/preprocessor/tuple/to_list.hpp +62 -62
- data/ext/boost/range/as_literal.hpp +131 -0
- data/ext/boost/range/begin.hpp +132 -0
- data/ext/boost/range/config.hpp +54 -0
- data/ext/boost/range/const_iterator.hpp +64 -0
- data/ext/boost/range/detail/common.hpp +117 -0
- data/ext/boost/range/detail/implementation_help.hpp +99 -0
- data/ext/boost/range/detail/sfinae.hpp +77 -0
- data/ext/boost/range/detail/str_types.hpp +38 -0
- data/ext/boost/range/difference_type.hpp +29 -0
- data/ext/boost/range/distance.hpp +34 -0
- data/ext/boost/range/empty.hpp +34 -0
- data/ext/boost/range/end.hpp +131 -0
- data/ext/boost/range/functions.hpp +27 -0
- data/ext/boost/range/iterator.hpp +72 -0
- data/ext/boost/range/iterator_range.hpp +643 -0
- data/ext/boost/range/mutable_iterator.hpp +64 -0
- data/ext/boost/range/rbegin.hpp +65 -0
- data/ext/boost/range/rend.hpp +65 -0
- data/ext/boost/range/reverse_iterator.hpp +40 -0
- data/ext/boost/range/size.hpp +36 -0
- data/ext/boost/range/size_type.hpp +78 -0
- data/ext/boost/range/value_type.hpp +34 -0
- data/ext/boost/shared_ptr.hpp +619 -558
- data/ext/boost/src/pthread/exceptions.cpp +146 -0
- data/ext/boost/src/pthread/once.cpp +51 -0
- data/ext/boost/src/pthread/thread.cpp +709 -0
- data/ext/boost/src/pthread/timeconv.inl +130 -0
- data/ext/boost/src/tss_null.cpp +2 -1
- data/ext/boost/src/win32/exceptions.cpp +124 -0
- data/ext/boost/src/win32/thread.cpp +629 -0
- data/ext/boost/src/win32/timeconv.inl +130 -0
- data/ext/boost/src/{tss_dll.cpp → win32/tss_dll.cpp} +0 -0
- data/ext/boost/src/win32/tss_pe.cpp +269 -0
- data/ext/boost/static_assert.hpp +122 -118
- data/ext/boost/thread.hpp +21 -19
- data/ext/boost/thread/condition.hpp +16 -201
- data/ext/boost/thread/condition_variable.hpp +21 -0
- data/ext/boost/thread/detail/config.hpp +94 -95
- data/ext/boost/thread/detail/move.hpp +33 -0
- data/ext/boost/thread/detail/platform.hpp +71 -0
- data/ext/boost/thread/exceptions.hpp +103 -92
- data/ext/boost/thread/locks.hpp +589 -0
- data/ext/boost/thread/mutex.hpp +21 -170
- data/ext/boost/thread/once.hpp +29 -37
- data/ext/boost/thread/pthread/condition_variable.hpp +184 -0
- data/ext/boost/thread/pthread/condition_variable_fwd.hpp +66 -0
- data/ext/boost/thread/pthread/mutex.hpp +211 -0
- data/ext/boost/thread/pthread/once.hpp +85 -0
- data/ext/boost/thread/pthread/pthread_mutex_scoped_lock.hpp +50 -0
- data/ext/boost/thread/pthread/recursive_mutex.hpp +249 -0
- data/ext/boost/thread/pthread/thread.hpp +331 -0
- data/ext/boost/thread/pthread/thread_data.hpp +101 -0
- data/ext/boost/thread/pthread/timespec.hpp +28 -0
- data/ext/boost/thread/pthread/tss.hpp +103 -0
- data/ext/boost/thread/recursive_mutex.hpp +21 -184
- data/ext/boost/thread/thread.hpp +22 -90
- data/ext/boost/thread/thread_time.hpp +46 -0
- data/ext/boost/thread/tss.hpp +18 -128
- data/ext/boost/thread/xtime.hpp +88 -54
- data/ext/boost/throw_exception.hpp +46 -46
- data/ext/boost/token_functions.hpp +621 -0
- data/ext/boost/token_iterator.hpp +128 -0
- data/ext/boost/tokenizer.hpp +98 -0
- data/ext/boost/type.hpp +18 -18
- data/ext/boost/type_traits/add_const.hpp +47 -47
- data/ext/boost/type_traits/add_pointer.hpp +72 -72
- data/ext/boost/type_traits/add_reference.hpp +89 -89
- data/ext/boost/type_traits/alignment_of.hpp +100 -100
- data/ext/boost/type_traits/broken_compiler_spec.hpp +117 -117
- data/ext/boost/type_traits/composite_traits.hpp +29 -29
- data/ext/boost/type_traits/config.hpp +76 -76
- data/ext/boost/type_traits/conversion_traits.hpp +17 -17
- data/ext/boost/type_traits/detail/bool_trait_def.hpp +173 -173
- data/ext/boost/type_traits/detail/bool_trait_undef.hpp +27 -27
- data/ext/boost/type_traits/detail/cv_traits_impl.hpp +97 -97
- data/ext/boost/type_traits/detail/false_result.hpp +28 -28
- data/ext/boost/type_traits/detail/ice_and.hpp +35 -35
- data/ext/boost/type_traits/detail/ice_eq.hpp +36 -36
- data/ext/boost/type_traits/detail/ice_not.hpp +31 -31
- data/ext/boost/type_traits/detail/ice_or.hpp +34 -34
- data/ext/boost/type_traits/detail/is_function_ptr_helper.hpp +220 -220
- data/ext/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp +817 -817
- data/ext/boost/type_traits/detail/size_t_trait_def.hpp +58 -58
- data/ext/boost/type_traits/detail/size_t_trait_undef.hpp +16 -16
- data/ext/boost/type_traits/detail/template_arity_spec.hpp +31 -31
- data/ext/boost/type_traits/detail/type_trait_def.hpp +61 -61
- data/ext/boost/type_traits/detail/type_trait_undef.hpp +19 -19
- data/ext/boost/type_traits/detail/yes_no_type.hpp +26 -26
- data/ext/boost/type_traits/function_traits.hpp +236 -236
- data/ext/boost/type_traits/has_nothrow_copy.hpp +39 -38
- data/ext/boost/type_traits/has_trivial_copy.hpp +49 -48
- data/ext/boost/type_traits/ice.hpp +20 -20
- data/ext/boost/type_traits/integral_constant.hpp +53 -53
- data/ext/boost/type_traits/intrinsics.hpp +153 -137
- data/ext/boost/type_traits/is_abstract.hpp +144 -137
- data/ext/boost/type_traits/is_arithmetic.hpp +43 -43
- data/ext/boost/type_traits/is_array.hpp +90 -90
- data/ext/boost/type_traits/is_class.hpp +128 -128
- data/ext/boost/type_traits/is_const.hpp +142 -142
- data/ext/boost/type_traits/is_convertible.hpp +418 -416
- data/ext/boost/type_traits/is_enum.hpp +180 -180
- data/ext/boost/type_traits/is_float.hpp +27 -27
- data/ext/boost/type_traits/is_function.hpp +95 -88
- data/ext/boost/type_traits/is_integral.hpp +73 -71
- data/ext/boost/type_traits/is_member_function_pointer.hpp +134 -126
- data/ext/boost/type_traits/is_member_pointer.hpp +114 -108
- data/ext/boost/type_traits/is_pod.hpp +135 -135
- data/ext/boost/type_traits/is_pointer.hpp +160 -149
- data/ext/boost/type_traits/is_reference.hpp +116 -116
- data/ext/boost/type_traits/is_same.hpp +103 -103
- data/ext/boost/type_traits/is_scalar.hpp +55 -55
- data/ext/boost/type_traits/is_union.hpp +49 -49
- data/ext/boost/type_traits/is_void.hpp +33 -33
- data/ext/boost/type_traits/is_volatile.hpp +131 -131
- data/ext/boost/type_traits/remove_const.hpp +78 -78
- data/ext/boost/type_traits/remove_cv.hpp +61 -61
- data/ext/boost/type_traits/remove_pointer.hpp +43 -43
- data/ext/boost/type_traits/remove_reference.hpp +50 -50
- data/ext/boost/type_traits/type_with_alignment.hpp +288 -288
- data/ext/boost/utility.hpp +19 -19
- data/ext/boost/utility/addressof.hpp +58 -58
- data/ext/boost/utility/base_from_member.hpp +87 -87
- data/ext/boost/utility/compare_pointees.hpp +68 -68
- data/ext/boost/utility/enable_if.hpp +119 -119
- data/ext/boost/weak_ptr.hpp +0 -6
- data/ext/passenger/extconf.rb +3 -0
- data/ext/passenger/native_support.c +2 -0
- data/lib/passenger/abstract_request_handler.rb +347 -0
- data/lib/passenger/abstract_server.rb +31 -5
- data/lib/passenger/application.rb +5 -16
- data/lib/passenger/console_text_template.rb +2 -0
- data/lib/passenger/constants.rb +26 -0
- data/lib/passenger/dependencies.rb +23 -3
- data/lib/passenger/exceptions.rb +91 -0
- data/lib/passenger/html_template.rb +2 -0
- data/lib/passenger/message_channel.rb +2 -1
- data/lib/passenger/platform_info.rb +2 -0
- data/lib/passenger/rack/application_spawner.rb +108 -0
- data/lib/passenger/rack/request_handler.rb +85 -0
- data/lib/passenger/railz/application_spawner.rb +317 -0
- data/lib/passenger/railz/cgi_fixed.rb +68 -0
- data/lib/passenger/railz/framework_spawner.rb +344 -0
- data/lib/passenger/railz/request_handler.rb +61 -0
- data/lib/passenger/simple_benchmarking.rb +2 -0
- data/lib/passenger/spawn_manager.rb +190 -83
- data/lib/passenger/templates/apache2_config_snippets.txt.erb +2 -2
- data/lib/passenger/templates/apache_must_be_compiled_with_compatible_mpm.txt.erb +9 -0
- data/lib/passenger/templates/app_exited_during_initialization.html.erb +3 -3
- data/lib/passenger/templates/app_init_error.html.erb +2 -2
- data/lib/passenger/templates/database_error.html.erb +19 -12
- data/lib/passenger/templates/deployment_example.txt.erb +3 -1
- data/lib/passenger/templates/error_layout.html.erb +1 -1
- data/lib/passenger/templates/load_error.html.erb +2 -2
- data/lib/passenger/templates/welcome.txt.erb +1 -1
- data/lib/passenger/utils.rb +138 -14
- data/lib/passenger/wsgi/application_spawner.rb +94 -0
- data/lib/passenger/wsgi/request_handler.py +138 -0
- data/man/passenger-config.1 +29 -0
- data/man/passenger-make-enterprisey.8 +23 -0
- data/man/passenger-memory-stats.8 +33 -0
- data/man/passenger-status.8 +43 -0
- data/man/passenger-stress-test.1 +43 -0
- data/misc/copy_boost_headers.rb +102 -0
- data/test/ApplicationPoolServerTest.cpp +5 -3
- data/test/ApplicationPoolServer_ApplicationPoolTest.cpp +6 -2
- data/test/ApplicationPoolTest.cpp +31 -27
- data/test/UtilsTest.cpp +1 -0
- data/test/integration_tests.rb +327 -137
- data/test/ruby/abstract_server_spec.rb +17 -0
- data/test/ruby/application_spec.rb +43 -0
- data/test/ruby/message_channel_spec.rb +170 -0
- data/test/ruby/rack/application_spawner_spec.rb +43 -0
- data/test/ruby/rails/application_spawner_spec.rb +109 -0
- data/test/ruby/rails/framework_spawner_spec.rb +132 -0
- data/test/ruby/rails/minimal_spawner_spec.rb +37 -0
- data/test/ruby/rails/spawner_error_handling_spec.rb +52 -0
- data/test/ruby/rails/spawner_privilege_lowering_spec.rb +97 -0
- data/test/ruby/spawn_manager_spec.rb +178 -0
- data/test/ruby/spawn_server_spec.rb +26 -0
- data/test/stub/apache2/httpd.conf +75 -0
- data/test/stub/apache2/httpd.conf.erb +41 -40
- data/test/stub/message_channel_3.rb +2 -0
- data/test/stub/minimal-railsapp/vendor/rails/actionpack/lib/action_controller.rb +0 -0
- data/test/stub/minimal-railsapp/vendor/rails/activerecord/lib/active_record.rb +0 -0
- data/test/stub/rack/config.ru +4 -0
- data/test/stub/rack/public/rack.jpg +0 -0
- data/test/stub/{railsapp-without-version-spec → rails_apps/foobar}/app/controllers/application.rb +0 -0
- data/test/stub/rails_apps/foobar/app/controllers/bar_controller_1.rb +5 -0
- data/test/stub/rails_apps/foobar/app/controllers/bar_controller_2.rb +5 -0
- data/test/stub/rails_apps/foobar/app/controllers/foo_controller.rb +13 -0
- data/test/stub/{mycook → rails_apps/foobar}/app/helpers/application_helper.rb +0 -0
- data/test/stub/{mycook → rails_apps/foobar}/config/boot.rb +0 -0
- data/test/stub/{mycook → rails_apps/foobar}/config/database.yml +0 -0
- data/test/stub/rails_apps/foobar/config/environment.rb +59 -0
- data/test/stub/{mycook → rails_apps/foobar}/config/environments/development.rb +0 -0
- data/test/stub/{mycook → rails_apps/foobar}/config/environments/production.rb +0 -0
- data/test/stub/{mycook → rails_apps/foobar}/config/initializers/inflections.rb +0 -0
- data/test/stub/{mycook → rails_apps/foobar}/config/initializers/mime_types.rb +0 -0
- data/test/stub/{railsapp-without-version-spec → rails_apps/foobar}/config/routes.rb +0 -0
- data/test/stub/{mycook → rails_apps/mycook}/app/controllers/application.rb +0 -0
- data/test/stub/{mycook → rails_apps/mycook}/app/controllers/recipes_controller.rb +0 -0
- data/test/stub/{mycook → rails_apps/mycook}/app/controllers/uploads_controller.rb +0 -0
- data/test/stub/rails_apps/mycook/app/controllers/welcome_controller.rb +35 -0
- data/test/stub/{railsapp-without-version-spec → rails_apps/mycook}/app/helpers/application_helper.rb +0 -0
- data/test/stub/{mycook → rails_apps/mycook}/app/views/layouts/default.rhtml +0 -0
- data/test/stub/{mycook → rails_apps/mycook}/app/views/recipes/create.rhtml +0 -0
- data/test/stub/{mycook → rails_apps/mycook}/app/views/recipes/index.rhtml +0 -0
- data/test/stub/{mycook → rails_apps/mycook}/app/views/recipes/new.rhtml +0 -0
- data/test/stub/{mycook → rails_apps/mycook}/app/views/uploads/index.rhtml +0 -0
- data/test/stub/{mycook → rails_apps/mycook}/app/views/uploads/new.html.erb +0 -0
- data/test/stub/{mycook → rails_apps/mycook}/app/views/welcome/cached.rhtml +0 -0
- data/test/stub/{mycook → rails_apps/mycook}/app/views/welcome/index.rhtml +0 -0
- data/test/stub/{railsapp-without-version-spec → rails_apps/mycook}/config/boot.rb +0 -0
- data/test/stub/{railsapp-without-version-spec → rails_apps/mycook}/config/database.yml +0 -0
- data/test/stub/{mycook → rails_apps/mycook}/config/environment.rb +0 -0
- data/test/stub/{railsapp-without-version-spec → rails_apps/mycook}/config/environments/development.rb +0 -0
- data/test/stub/{railsapp-without-version-spec → rails_apps/mycook}/config/environments/production.rb +0 -0
- data/test/stub/{railsapp-without-version-spec → rails_apps/mycook}/config/initializers/inflections.rb +0 -0
- data/test/stub/{railsapp-without-version-spec → rails_apps/mycook}/config/initializers/mime_types.rb +0 -0
- data/test/stub/{mycook → rails_apps/mycook}/config/routes.rb +0 -0
- data/test/stub/{broken-railsapp/public → rails_apps/mycook/log}/useless.txt +0 -0
- data/test/stub/{mycook → rails_apps/mycook}/public/404.html +0 -0
- data/test/stub/{mycook → rails_apps/mycook}/public/422.html +0 -0
- data/test/stub/{mycook → rails_apps/mycook}/public/500.html +0 -0
- data/test/stub/{mycook → rails_apps/mycook}/public/dispatch.cgi +0 -0
- data/test/stub/{mycook → rails_apps/mycook}/public/dispatch.fcgi +0 -0
- data/test/stub/{mycook → rails_apps/mycook}/public/dispatch.rb +0 -0
- data/test/stub/{mycook → rails_apps/mycook}/public/favicon.ico +0 -0
- data/test/stub/{mycook → rails_apps/mycook}/public/images/angrywizard.gif +0 -0
- data/test/stub/{mycook → rails_apps/mycook}/public/images/cookbook.gif +0 -0
- data/test/stub/{mycook → rails_apps/mycook}/public/images/header.png +0 -0
- data/test/stub/{mycook → rails_apps/mycook}/public/images/rails.png +0 -0
- data/test/stub/{mycook → rails_apps/mycook}/public/javascripts/application.js +0 -0
- data/test/stub/{mycook → rails_apps/mycook}/public/javascripts/controls.js +0 -0
- data/test/stub/{mycook → rails_apps/mycook}/public/javascripts/dragdrop.js +0 -0
- data/test/stub/{mycook → rails_apps/mycook}/public/javascripts/effects.js +0 -0
- data/test/stub/{mycook → rails_apps/mycook}/public/javascripts/prototype.js +0 -0
- data/test/stub/{mycook → rails_apps/mycook}/public/robots.txt +0 -0
- data/test/stub/{mycook → rails_apps/mycook}/public/uploads.html +0 -0
- data/test/stub/{mycook → rails_apps/mycook}/public/welcome/cached.html +0 -0
- data/test/stub/{broken-railsapp4/public → rails_apps/mycook/tmp/cache}/useless.txt +0 -0
- data/test/stub/{broken-railsapp5/public → rails_apps/mycook/tmp/pids}/useless.txt +0 -0
- data/test/stub/{railsapp-without-version-spec/public → rails_apps/mycook/tmp/sessions}/useless.txt +0 -0
- data/test/stub/rails_apps/mycook/tmp/sockets/useless.txt +1 -0
- data/test/stub/spawn_server.rb +6 -2
- data/test/stub/upload_data.txt +494 -0
- data/test/stub/vendor_rails/minimal/README +1 -0
- data/test/stub/{broken-railsapp5/vendor/rails → vendor_rails/minimal}/actionmailer/lib/action_mailer.rb +0 -0
- data/test/stub/vendor_rails/minimal/actionpack/lib/action_controller.rb +19 -0
- data/test/stub/{broken-railsapp5/vendor/rails → vendor_rails/minimal}/actionpack/lib/action_pack.rb +0 -0
- data/test/stub/{broken-railsapp5/vendor/rails → vendor_rails/minimal}/actionpack/lib/action_view.rb +0 -0
- data/test/stub/vendor_rails/minimal/activerecord/lib/active_record.rb +7 -0
- data/test/stub/{broken-railsapp5/vendor/rails → vendor_rails/minimal}/activeresource/lib/active_resource.rb +0 -0
- data/test/stub/{broken-railsapp5/vendor/rails → vendor_rails/minimal}/activesupport/lib/active_support.rb +0 -0
- data/test/stub/{broken-railsapp5/vendor/rails → vendor_rails/minimal}/activesupport/lib/active_support/whiny_nil.rb +0 -0
- data/test/stub/{broken-railsapp5/vendor/rails → vendor_rails/minimal}/railties/lib/dispatcher.rb +0 -0
- data/test/stub/vendor_rails/minimal/railties/lib/initializer.rb +51 -0
- data/test/stub/{broken-railsapp5/vendor/rails → vendor_rails/minimal}/railties/lib/ruby_version_check.rb +0 -0
- data/test/stub/wsgi/passenger_wsgi.py +3 -0
- data/test/stub/wsgi/public/wsgi-snake.jpg +0 -0
- data/test/support/apache2_controller.rb +196 -0
- data/test/support/config.rb +4 -1
- data/test/support/test_helper.rb +94 -0
- metadata +445 -1329
- data/doc/cxxapi/ApplicationPoolClientServer_8h-source.html +0 -673
- data/doc/rdoc/classes/Passenger/ApplicationSpawner.html +0 -334
- data/doc/rdoc/classes/Passenger/ApplicationSpawner/Error.html +0 -98
- data/doc/rdoc/classes/Passenger/CGIFixed.html +0 -200
- data/doc/rdoc/classes/Passenger/FrameworkSpawner.html +0 -429
- data/doc/rdoc/classes/Passenger/FrameworkSpawner/Error.html +0 -98
- data/doc/rdoc/classes/Passenger/RequestHandler.html +0 -425
- data/doc/rdoc/files/lib/passenger/application_spawner_rb.html +0 -128
- data/doc/rdoc/files/lib/passenger/cgi_fixed_rb.html +0 -127
- data/doc/rdoc/files/lib/passenger/framework_spawner_rb.html +0 -135
- data/doc/rdoc/files/lib/passenger/request_handler_rb.html +0 -122
- data/ext/apache2/ApplicationPoolClientServer.h +0 -653
- data/ext/boost/bind/apply.hpp +0 -74
- data/ext/boost/bind/make_adaptable.hpp +0 -187
- data/ext/boost/bind/mem_fn_vw.hpp +0 -130
- data/ext/boost/bind/protect.hpp +0 -144
- data/ext/boost/format.hpp +0 -59
- data/ext/boost/format/alt_sstream.hpp +0 -176
- data/ext/boost/format/alt_sstream_impl.hpp +0 -296
- data/ext/boost/format/detail/compat_workarounds.hpp +0 -86
- data/ext/boost/format/detail/config_macros.hpp +0 -97
- data/ext/boost/format/detail/msvc_disambiguater.hpp +0 -56
- data/ext/boost/format/detail/unset_macros.hpp +0 -34
- data/ext/boost/format/detail/workarounds_gcc-2_95.hpp +0 -162
- data/ext/boost/format/detail/workarounds_stlport.hpp +0 -42
- data/ext/boost/format/exceptions.hpp +0 -103
- data/ext/boost/format/feed_args.hpp +0 -267
- data/ext/boost/format/format_class.hpp +0 -143
- data/ext/boost/format/format_fwd.hpp +0 -49
- data/ext/boost/format/format_implementation.hpp +0 -277
- data/ext/boost/format/free_funcs.hpp +0 -70
- data/ext/boost/format/group.hpp +0 -676
- data/ext/boost/format/internals.hpp +0 -199
- data/ext/boost/format/internals_fwd.hpp +0 -60
- data/ext/boost/format/parsing.hpp +0 -491
- data/ext/boost/function/detail/gen_maybe_include.pl +0 -37
- data/ext/boost/function/function0.hpp +0 -12
- data/ext/boost/function/function1.hpp +0 -12
- data/ext/boost/function/function10.hpp +0 -12
- data/ext/boost/function/function2.hpp +0 -12
- data/ext/boost/function/function3.hpp +0 -12
- data/ext/boost/function/function4.hpp +0 -12
- data/ext/boost/function/function5.hpp +0 -12
- data/ext/boost/function/function6.hpp +0 -12
- data/ext/boost/function/function7.hpp +0 -12
- data/ext/boost/function/function8.hpp +0 -12
- data/ext/boost/function/function9.hpp +0 -12
- data/ext/boost/function/gen_function_N.pl +0 -26
- data/ext/boost/mpl/O1_size.hpp +0 -40
- data/ext/boost/mpl/O1_size_fwd.hpp +0 -24
- data/ext/boost/mpl/accumulate.hpp +0 -39
- data/ext/boost/mpl/advance.hpp +0 -76
- data/ext/boost/mpl/advance_fwd.hpp +0 -28
- data/ext/boost/mpl/alias.hpp +0 -21
- data/ext/boost/mpl/arithmetic.hpp +0 -25
- data/ext/boost/mpl/as_sequence.hpp +0 -38
- data/ext/boost/mpl/at.hpp +0 -52
- data/ext/boost/mpl/at_fwd.hpp +0 -24
- data/ext/boost/mpl/aux_/O1_size_impl.hpp +0 -87
- data/ext/boost/mpl/aux_/advance_backward.hpp +0 -124
- data/ext/boost/mpl/aux_/advance_forward.hpp +0 -123
- data/ext/boost/mpl/aux_/apply_1st.hpp +0 -35
- data/ext/boost/mpl/aux_/arithmetic_op.hpp +0 -92
- data/ext/boost/mpl/aux_/at_impl.hpp +0 -45
- data/ext/boost/mpl/aux_/back_impl.hpp +0 -43
- data/ext/boost/mpl/aux_/basic_bind.hpp +0 -21
- data/ext/boost/mpl/aux_/begin_end_impl.hpp +0 -100
- data/ext/boost/mpl/aux_/clear_impl.hpp +0 -35
- data/ext/boost/mpl/aux_/comparison_op.hpp +0 -83
- data/ext/boost/mpl/aux_/config/dependent_nttp.hpp +0 -35
- data/ext/boost/mpl/aux_/config/dmc_ambiguous_ctps.hpp +0 -27
- data/ext/boost/mpl/aux_/config/forwarding.hpp +0 -27
- data/ext/boost/mpl/aux_/config/operators.hpp +0 -33
- data/ext/boost/mpl/aux_/config/typeof.hpp +0 -38
- data/ext/boost/mpl/aux_/contains_impl.hpp +0 -61
- data/ext/boost/mpl/aux_/count_args.hpp +0 -105
- data/ext/boost/mpl/aux_/count_impl.hpp +0 -44
- data/ext/boost/mpl/aux_/empty_impl.hpp +0 -43
- data/ext/boost/mpl/aux_/erase_impl.hpp +0 -69
- data/ext/boost/mpl/aux_/erase_key_impl.hpp +0 -32
- data/ext/boost/mpl/aux_/filter_iter.hpp +0 -140
- data/ext/boost/mpl/aux_/find_if_pred.hpp +0 -31
- data/ext/boost/mpl/aux_/fold_impl.hpp +0 -43
- data/ext/boost/mpl/aux_/fold_impl_body.hpp +0 -365
- data/ext/boost/mpl/aux_/fold_op.hpp +0 -37
- data/ext/boost/mpl/aux_/fold_pred.hpp +0 -37
- data/ext/boost/mpl/aux_/front_impl.hpp +0 -41
- data/ext/boost/mpl/aux_/has_begin.hpp +0 -23
- data/ext/boost/mpl/aux_/has_key_impl.hpp +0 -34
- data/ext/boost/mpl/aux_/has_rebind.hpp +0 -99
- data/ext/boost/mpl/aux_/has_size.hpp +0 -23
- data/ext/boost/mpl/aux_/has_tag.hpp +0 -23
- data/ext/boost/mpl/aux_/insert_impl.hpp +0 -68
- data/ext/boost/mpl/aux_/insert_range_impl.hpp +0 -77
- data/ext/boost/mpl/aux_/inserter_algorithm.hpp +0 -159
- data/ext/boost/mpl/aux_/is_msvc_eti_arg.hpp +0 -64
- data/ext/boost/mpl/aux_/iter_apply.hpp +0 -47
- data/ext/boost/mpl/aux_/iter_fold_if_impl.hpp +0 -210
- data/ext/boost/mpl/aux_/iter_fold_impl.hpp +0 -42
- data/ext/boost/mpl/aux_/iter_push_front.hpp +0 -36
- data/ext/boost/mpl/aux_/joint_iter.hpp +0 -120
- data/ext/boost/mpl/aux_/lambda_no_ctps.hpp +0 -193
- data/ext/boost/mpl/aux_/lambda_spec.hpp +0 -49
- data/ext/boost/mpl/aux_/largest_int.hpp +0 -63
- data/ext/boost/mpl/aux_/logical_op.hpp +0 -165
- data/ext/boost/mpl/aux_/msvc_dtw.hpp +0 -68
- data/ext/boost/mpl/aux_/msvc_eti_base.hpp +0 -77
- data/ext/boost/mpl/aux_/msvc_is_class.hpp +0 -58
- data/ext/boost/mpl/aux_/msvc_type.hpp +0 -62
- data/ext/boost/mpl/aux_/numeric_cast_utils.hpp +0 -77
- data/ext/boost/mpl/aux_/numeric_op.hpp +0 -311
- data/ext/boost/mpl/aux_/order_impl.hpp +0 -76
- data/ext/boost/mpl/aux_/overload_names.hpp +0 -48
- data/ext/boost/mpl/aux_/partition_op.hpp +0 -58
- data/ext/boost/mpl/aux_/pop_back_impl.hpp +0 -34
- data/ext/boost/mpl/aux_/pop_front_impl.hpp +0 -44
- data/ext/boost/mpl/aux_/preprocessed/bcc/advance_backward.hpp +0 -97
- data/ext/boost/mpl/aux_/preprocessed/bcc/advance_forward.hpp +0 -97
- data/ext/boost/mpl/aux_/preprocessed/bcc/and.hpp +0 -69
- data/ext/boost/mpl/aux_/preprocessed/bcc/apply.hpp +0 -169
- data/ext/boost/mpl/aux_/preprocessed/bcc/apply_fwd.hpp +0 -52
- data/ext/boost/mpl/aux_/preprocessed/bcc/apply_wrap.hpp +0 -456
- data/ext/boost/mpl/aux_/preprocessed/bcc/arg.hpp +0 -117
- data/ext/boost/mpl/aux_/preprocessed/bcc/basic_bind.hpp +0 -300
- data/ext/boost/mpl/aux_/preprocessed/bcc/bind.hpp +0 -397
- data/ext/boost/mpl/aux_/preprocessed/bcc/bind_fwd.hpp +0 -46
- data/ext/boost/mpl/aux_/preprocessed/bcc/bitand.hpp +0 -147
- data/ext/boost/mpl/aux_/preprocessed/bcc/bitor.hpp +0 -147
- data/ext/boost/mpl/aux_/preprocessed/bcc/bitxor.hpp +0 -147
- data/ext/boost/mpl/aux_/preprocessed/bcc/deque.hpp +0 -323
- data/ext/boost/mpl/aux_/preprocessed/bcc/divides.hpp +0 -146
- data/ext/boost/mpl/aux_/preprocessed/bcc/equal_to.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/bcc/fold_impl.hpp +0 -180
- data/ext/boost/mpl/aux_/preprocessed/bcc/full_lambda.hpp +0 -558
- data/ext/boost/mpl/aux_/preprocessed/bcc/greater.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/bcc/greater_equal.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/bcc/inherit.hpp +0 -139
- data/ext/boost/mpl/aux_/preprocessed/bcc/iter_fold_if_impl.hpp +0 -133
- data/ext/boost/mpl/aux_/preprocessed/bcc/iter_fold_impl.hpp +0 -180
- data/ext/boost/mpl/aux_/preprocessed/bcc/lambda_no_ctps.hpp +0 -229
- data/ext/boost/mpl/aux_/preprocessed/bcc/less.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/bcc/less_equal.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/bcc/list.hpp +0 -323
- data/ext/boost/mpl/aux_/preprocessed/bcc/list_c.hpp +0 -328
- data/ext/boost/mpl/aux_/preprocessed/bcc/map.hpp +0 -323
- data/ext/boost/mpl/aux_/preprocessed/bcc/minus.hpp +0 -146
- data/ext/boost/mpl/aux_/preprocessed/bcc/modulus.hpp +0 -101
- data/ext/boost/mpl/aux_/preprocessed/bcc/not_equal_to.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/bcc/or.hpp +0 -69
- data/ext/boost/mpl/aux_/preprocessed/bcc/placeholders.hpp +0 -105
- data/ext/boost/mpl/aux_/preprocessed/bcc/plus.hpp +0 -146
- data/ext/boost/mpl/aux_/preprocessed/bcc/quote.hpp +0 -11
- data/ext/boost/mpl/aux_/preprocessed/bcc/reverse_fold_impl.hpp +0 -295
- data/ext/boost/mpl/aux_/preprocessed/bcc/reverse_iter_fold_impl.hpp +0 -295
- data/ext/boost/mpl/aux_/preprocessed/bcc/set.hpp +0 -323
- data/ext/boost/mpl/aux_/preprocessed/bcc/set_c.hpp +0 -328
- data/ext/boost/mpl/aux_/preprocessed/bcc/shift_left.hpp +0 -99
- data/ext/boost/mpl/aux_/preprocessed/bcc/shift_right.hpp +0 -99
- data/ext/boost/mpl/aux_/preprocessed/bcc/template_arity.hpp +0 -40
- data/ext/boost/mpl/aux_/preprocessed/bcc/times.hpp +0 -146
- data/ext/boost/mpl/aux_/preprocessed/bcc/unpack_args.hpp +0 -97
- data/ext/boost/mpl/aux_/preprocessed/bcc/vector.hpp +0 -323
- data/ext/boost/mpl/aux_/preprocessed/bcc/vector_c.hpp +0 -309
- data/ext/boost/mpl/aux_/preprocessed/bcc551/advance_backward.hpp +0 -97
- data/ext/boost/mpl/aux_/preprocessed/bcc551/advance_forward.hpp +0 -97
- data/ext/boost/mpl/aux_/preprocessed/bcc551/and.hpp +0 -69
- data/ext/boost/mpl/aux_/preprocessed/bcc551/apply.hpp +0 -169
- data/ext/boost/mpl/aux_/preprocessed/bcc551/apply_fwd.hpp +0 -52
- data/ext/boost/mpl/aux_/preprocessed/bcc551/apply_wrap.hpp +0 -456
- data/ext/boost/mpl/aux_/preprocessed/bcc551/arg.hpp +0 -123
- data/ext/boost/mpl/aux_/preprocessed/bcc551/basic_bind.hpp +0 -306
- data/ext/boost/mpl/aux_/preprocessed/bcc551/bind.hpp +0 -403
- data/ext/boost/mpl/aux_/preprocessed/bcc551/bind_fwd.hpp +0 -46
- data/ext/boost/mpl/aux_/preprocessed/bcc551/bitand.hpp +0 -147
- data/ext/boost/mpl/aux_/preprocessed/bcc551/bitor.hpp +0 -147
- data/ext/boost/mpl/aux_/preprocessed/bcc551/bitxor.hpp +0 -147
- data/ext/boost/mpl/aux_/preprocessed/bcc551/deque.hpp +0 -323
- data/ext/boost/mpl/aux_/preprocessed/bcc551/divides.hpp +0 -146
- data/ext/boost/mpl/aux_/preprocessed/bcc551/equal_to.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/bcc551/fold_impl.hpp +0 -180
- data/ext/boost/mpl/aux_/preprocessed/bcc551/full_lambda.hpp +0 -558
- data/ext/boost/mpl/aux_/preprocessed/bcc551/greater.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/bcc551/greater_equal.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/bcc551/inherit.hpp +0 -141
- data/ext/boost/mpl/aux_/preprocessed/bcc551/iter_fold_if_impl.hpp +0 -133
- data/ext/boost/mpl/aux_/preprocessed/bcc551/iter_fold_impl.hpp +0 -180
- data/ext/boost/mpl/aux_/preprocessed/bcc551/lambda_no_ctps.hpp +0 -229
- data/ext/boost/mpl/aux_/preprocessed/bcc551/less.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/bcc551/less_equal.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/bcc551/list.hpp +0 -323
- data/ext/boost/mpl/aux_/preprocessed/bcc551/list_c.hpp +0 -328
- data/ext/boost/mpl/aux_/preprocessed/bcc551/map.hpp +0 -323
- data/ext/boost/mpl/aux_/preprocessed/bcc551/minus.hpp +0 -146
- data/ext/boost/mpl/aux_/preprocessed/bcc551/modulus.hpp +0 -101
- data/ext/boost/mpl/aux_/preprocessed/bcc551/not_equal_to.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/bcc551/or.hpp +0 -69
- data/ext/boost/mpl/aux_/preprocessed/bcc551/placeholders.hpp +0 -105
- data/ext/boost/mpl/aux_/preprocessed/bcc551/plus.hpp +0 -146
- data/ext/boost/mpl/aux_/preprocessed/bcc551/quote.hpp +0 -11
- data/ext/boost/mpl/aux_/preprocessed/bcc551/reverse_fold_impl.hpp +0 -295
- data/ext/boost/mpl/aux_/preprocessed/bcc551/reverse_iter_fold_impl.hpp +0 -295
- data/ext/boost/mpl/aux_/preprocessed/bcc551/set.hpp +0 -323
- data/ext/boost/mpl/aux_/preprocessed/bcc551/set_c.hpp +0 -328
- data/ext/boost/mpl/aux_/preprocessed/bcc551/shift_left.hpp +0 -99
- data/ext/boost/mpl/aux_/preprocessed/bcc551/shift_right.hpp +0 -99
- data/ext/boost/mpl/aux_/preprocessed/bcc551/template_arity.hpp +0 -40
- data/ext/boost/mpl/aux_/preprocessed/bcc551/times.hpp +0 -146
- data/ext/boost/mpl/aux_/preprocessed/bcc551/unpack_args.hpp +0 -97
- data/ext/boost/mpl/aux_/preprocessed/bcc551/vector.hpp +0 -323
- data/ext/boost/mpl/aux_/preprocessed/bcc551/vector_c.hpp +0 -309
- data/ext/boost/mpl/aux_/preprocessed/dmc/advance_backward.hpp +0 -97
- data/ext/boost/mpl/aux_/preprocessed/dmc/advance_forward.hpp +0 -97
- data/ext/boost/mpl/aux_/preprocessed/dmc/and.hpp +0 -69
- data/ext/boost/mpl/aux_/preprocessed/dmc/apply.hpp +0 -169
- data/ext/boost/mpl/aux_/preprocessed/dmc/apply_fwd.hpp +0 -52
- data/ext/boost/mpl/aux_/preprocessed/dmc/apply_wrap.hpp +0 -84
- data/ext/boost/mpl/aux_/preprocessed/dmc/arg.hpp +0 -123
- data/ext/boost/mpl/aux_/preprocessed/dmc/basic_bind.hpp +0 -406
- data/ext/boost/mpl/aux_/preprocessed/dmc/bind.hpp +0 -515
- data/ext/boost/mpl/aux_/preprocessed/dmc/bind_fwd.hpp +0 -53
- data/ext/boost/mpl/aux_/preprocessed/dmc/bitand.hpp +0 -147
- data/ext/boost/mpl/aux_/preprocessed/dmc/bitor.hpp +0 -147
- data/ext/boost/mpl/aux_/preprocessed/dmc/bitxor.hpp +0 -147
- data/ext/boost/mpl/aux_/preprocessed/dmc/deque.hpp +0 -323
- data/ext/boost/mpl/aux_/preprocessed/dmc/divides.hpp +0 -146
- data/ext/boost/mpl/aux_/preprocessed/dmc/equal_to.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/dmc/fold_impl.hpp +0 -180
- data/ext/boost/mpl/aux_/preprocessed/dmc/full_lambda.hpp +0 -536
- data/ext/boost/mpl/aux_/preprocessed/dmc/greater.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/dmc/greater_equal.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/dmc/inherit.hpp +0 -141
- data/ext/boost/mpl/aux_/preprocessed/dmc/iter_fold_if_impl.hpp +0 -133
- data/ext/boost/mpl/aux_/preprocessed/dmc/iter_fold_impl.hpp +0 -180
- data/ext/boost/mpl/aux_/preprocessed/dmc/lambda_no_ctps.hpp +0 -229
- data/ext/boost/mpl/aux_/preprocessed/dmc/less.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/dmc/less_equal.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/dmc/list.hpp +0 -323
- data/ext/boost/mpl/aux_/preprocessed/dmc/list_c.hpp +0 -328
- data/ext/boost/mpl/aux_/preprocessed/dmc/map.hpp +0 -323
- data/ext/boost/mpl/aux_/preprocessed/dmc/minus.hpp +0 -146
- data/ext/boost/mpl/aux_/preprocessed/dmc/modulus.hpp +0 -101
- data/ext/boost/mpl/aux_/preprocessed/dmc/not_equal_to.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/dmc/or.hpp +0 -69
- data/ext/boost/mpl/aux_/preprocessed/dmc/placeholders.hpp +0 -105
- data/ext/boost/mpl/aux_/preprocessed/dmc/plus.hpp +0 -146
- data/ext/boost/mpl/aux_/preprocessed/dmc/quote.hpp +0 -123
- data/ext/boost/mpl/aux_/preprocessed/dmc/reverse_fold_impl.hpp +0 -231
- data/ext/boost/mpl/aux_/preprocessed/dmc/reverse_iter_fold_impl.hpp +0 -231
- data/ext/boost/mpl/aux_/preprocessed/dmc/set.hpp +0 -323
- data/ext/boost/mpl/aux_/preprocessed/dmc/set_c.hpp +0 -328
- data/ext/boost/mpl/aux_/preprocessed/dmc/shift_left.hpp +0 -99
- data/ext/boost/mpl/aux_/preprocessed/dmc/shift_right.hpp +0 -99
- data/ext/boost/mpl/aux_/preprocessed/dmc/template_arity.hpp +0 -11
- data/ext/boost/mpl/aux_/preprocessed/dmc/times.hpp +0 -146
- data/ext/boost/mpl/aux_/preprocessed/dmc/unpack_args.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/dmc/vector.hpp +0 -323
- data/ext/boost/mpl/aux_/preprocessed/dmc/vector_c.hpp +0 -309
- data/ext/boost/mpl/aux_/preprocessed/gcc/advance_backward.hpp +0 -97
- data/ext/boost/mpl/aux_/preprocessed/gcc/advance_forward.hpp +0 -97
- data/ext/boost/mpl/aux_/preprocessed/gcc/basic_bind.hpp +0 -440
- data/ext/boost/mpl/aux_/preprocessed/gcc/bitand.hpp +0 -147
- data/ext/boost/mpl/aux_/preprocessed/gcc/bitor.hpp +0 -147
- data/ext/boost/mpl/aux_/preprocessed/gcc/bitxor.hpp +0 -147
- data/ext/boost/mpl/aux_/preprocessed/gcc/deque.hpp +0 -323
- data/ext/boost/mpl/aux_/preprocessed/gcc/divides.hpp +0 -146
- data/ext/boost/mpl/aux_/preprocessed/gcc/equal_to.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/gcc/fold_impl.hpp +0 -180
- data/ext/boost/mpl/aux_/preprocessed/gcc/greater.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/gcc/greater_equal.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/gcc/inherit.hpp +0 -141
- data/ext/boost/mpl/aux_/preprocessed/gcc/iter_fold_if_impl.hpp +0 -133
- data/ext/boost/mpl/aux_/preprocessed/gcc/iter_fold_impl.hpp +0 -180
- data/ext/boost/mpl/aux_/preprocessed/gcc/lambda_no_ctps.hpp +0 -229
- data/ext/boost/mpl/aux_/preprocessed/gcc/less.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/gcc/less_equal.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/gcc/list.hpp +0 -323
- data/ext/boost/mpl/aux_/preprocessed/gcc/list_c.hpp +0 -328
- data/ext/boost/mpl/aux_/preprocessed/gcc/map.hpp +0 -323
- data/ext/boost/mpl/aux_/preprocessed/gcc/minus.hpp +0 -146
- data/ext/boost/mpl/aux_/preprocessed/gcc/modulus.hpp +0 -101
- data/ext/boost/mpl/aux_/preprocessed/gcc/not_equal_to.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/gcc/plus.hpp +0 -146
- data/ext/boost/mpl/aux_/preprocessed/gcc/reverse_fold_impl.hpp +0 -231
- data/ext/boost/mpl/aux_/preprocessed/gcc/reverse_iter_fold_impl.hpp +0 -231
- data/ext/boost/mpl/aux_/preprocessed/gcc/set.hpp +0 -323
- data/ext/boost/mpl/aux_/preprocessed/gcc/set_c.hpp +0 -328
- data/ext/boost/mpl/aux_/preprocessed/gcc/shift_left.hpp +0 -99
- data/ext/boost/mpl/aux_/preprocessed/gcc/shift_right.hpp +0 -99
- data/ext/boost/mpl/aux_/preprocessed/gcc/times.hpp +0 -146
- data/ext/boost/mpl/aux_/preprocessed/gcc/unpack_args.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/gcc/vector.hpp +0 -323
- data/ext/boost/mpl/aux_/preprocessed/gcc/vector_c.hpp +0 -309
- data/ext/boost/mpl/aux_/preprocessed/msvc60/advance_backward.hpp +0 -132
- data/ext/boost/mpl/aux_/preprocessed/msvc60/advance_forward.hpp +0 -132
- data/ext/boost/mpl/aux_/preprocessed/msvc60/and.hpp +0 -73
- data/ext/boost/mpl/aux_/preprocessed/msvc60/apply.hpp +0 -166
- data/ext/boost/mpl/aux_/preprocessed/msvc60/apply_fwd.hpp +0 -46
- data/ext/boost/mpl/aux_/preprocessed/msvc60/apply_wrap.hpp +0 -247
- data/ext/boost/mpl/aux_/preprocessed/msvc60/arg.hpp +0 -123
- data/ext/boost/mpl/aux_/preprocessed/msvc60/basic_bind.hpp +0 -328
- data/ext/boost/mpl/aux_/preprocessed/msvc60/bind.hpp +0 -432
- data/ext/boost/mpl/aux_/preprocessed/msvc60/bind_fwd.hpp +0 -46
- data/ext/boost/mpl/aux_/preprocessed/msvc60/bitand.hpp +0 -149
- data/ext/boost/mpl/aux_/preprocessed/msvc60/bitor.hpp +0 -149
- data/ext/boost/mpl/aux_/preprocessed/msvc60/bitxor.hpp +0 -149
- data/ext/boost/mpl/aux_/preprocessed/msvc60/deque.hpp +0 -556
- data/ext/boost/mpl/aux_/preprocessed/msvc60/divides.hpp +0 -148
- data/ext/boost/mpl/aux_/preprocessed/msvc60/equal_to.hpp +0 -102
- data/ext/boost/mpl/aux_/preprocessed/msvc60/fold_impl.hpp +0 -293
- data/ext/boost/mpl/aux_/preprocessed/msvc60/full_lambda.hpp +0 -554
- data/ext/boost/mpl/aux_/preprocessed/msvc60/greater.hpp +0 -102
- data/ext/boost/mpl/aux_/preprocessed/msvc60/greater_equal.hpp +0 -102
- data/ext/boost/mpl/aux_/preprocessed/msvc60/inherit.hpp +0 -166
- data/ext/boost/mpl/aux_/preprocessed/msvc60/iter_fold_if_impl.hpp +0 -133
- data/ext/boost/mpl/aux_/preprocessed/msvc60/iter_fold_impl.hpp +0 -293
- data/ext/boost/mpl/aux_/preprocessed/msvc60/lambda_no_ctps.hpp +0 -229
- data/ext/boost/mpl/aux_/preprocessed/msvc60/less.hpp +0 -102
- data/ext/boost/mpl/aux_/preprocessed/msvc60/less_equal.hpp +0 -102
- data/ext/boost/mpl/aux_/preprocessed/msvc60/list.hpp +0 -556
- data/ext/boost/mpl/aux_/preprocessed/msvc60/list_c.hpp +0 -534
- data/ext/boost/mpl/aux_/preprocessed/msvc60/map.hpp +0 -556
- data/ext/boost/mpl/aux_/preprocessed/msvc60/minus.hpp +0 -148
- data/ext/boost/mpl/aux_/preprocessed/msvc60/modulus.hpp +0 -115
- data/ext/boost/mpl/aux_/preprocessed/msvc60/not_equal_to.hpp +0 -102
- data/ext/boost/mpl/aux_/preprocessed/msvc60/or.hpp +0 -73
- data/ext/boost/mpl/aux_/preprocessed/msvc60/placeholders.hpp +0 -105
- data/ext/boost/mpl/aux_/preprocessed/msvc60/plus.hpp +0 -148
- data/ext/boost/mpl/aux_/preprocessed/msvc60/quote.hpp +0 -11
- data/ext/boost/mpl/aux_/preprocessed/msvc60/reverse_fold_impl.hpp +0 -343
- data/ext/boost/mpl/aux_/preprocessed/msvc60/reverse_iter_fold_impl.hpp +0 -343
- data/ext/boost/mpl/aux_/preprocessed/msvc60/set.hpp +0 -556
- data/ext/boost/mpl/aux_/preprocessed/msvc60/set_c.hpp +0 -534
- data/ext/boost/mpl/aux_/preprocessed/msvc60/shift_left.hpp +0 -114
- data/ext/boost/mpl/aux_/preprocessed/msvc60/shift_right.hpp +0 -114
- data/ext/boost/mpl/aux_/preprocessed/msvc60/template_arity.hpp +0 -46
- data/ext/boost/mpl/aux_/preprocessed/msvc60/times.hpp +0 -148
- data/ext/boost/mpl/aux_/preprocessed/msvc60/unpack_args.hpp +0 -109
- data/ext/boost/mpl/aux_/preprocessed/msvc60/vector.hpp +0 -556
- data/ext/boost/mpl/aux_/preprocessed/msvc60/vector_c.hpp +0 -534
- data/ext/boost/mpl/aux_/preprocessed/msvc70/advance_backward.hpp +0 -97
- data/ext/boost/mpl/aux_/preprocessed/msvc70/advance_forward.hpp +0 -97
- data/ext/boost/mpl/aux_/preprocessed/msvc70/and.hpp +0 -71
- data/ext/boost/mpl/aux_/preprocessed/msvc70/apply.hpp +0 -160
- data/ext/boost/mpl/aux_/preprocessed/msvc70/apply_fwd.hpp +0 -46
- data/ext/boost/mpl/aux_/preprocessed/msvc70/apply_wrap.hpp +0 -138
- data/ext/boost/mpl/aux_/preprocessed/msvc70/arg.hpp +0 -123
- data/ext/boost/mpl/aux_/preprocessed/msvc70/basic_bind.hpp +0 -328
- data/ext/boost/mpl/aux_/preprocessed/msvc70/bind.hpp +0 -432
- data/ext/boost/mpl/aux_/preprocessed/msvc70/bind_fwd.hpp +0 -46
- data/ext/boost/mpl/aux_/preprocessed/msvc70/bitand.hpp +0 -151
- data/ext/boost/mpl/aux_/preprocessed/msvc70/bitor.hpp +0 -151
- data/ext/boost/mpl/aux_/preprocessed/msvc70/bitxor.hpp +0 -151
- data/ext/boost/mpl/aux_/preprocessed/msvc70/deque.hpp +0 -556
- data/ext/boost/mpl/aux_/preprocessed/msvc70/divides.hpp +0 -150
- data/ext/boost/mpl/aux_/preprocessed/msvc70/equal_to.hpp +0 -102
- data/ext/boost/mpl/aux_/preprocessed/msvc70/fold_impl.hpp +0 -245
- data/ext/boost/mpl/aux_/preprocessed/msvc70/full_lambda.hpp +0 -554
- data/ext/boost/mpl/aux_/preprocessed/msvc70/greater.hpp +0 -102
- data/ext/boost/mpl/aux_/preprocessed/msvc70/greater_equal.hpp +0 -102
- data/ext/boost/mpl/aux_/preprocessed/msvc70/inherit.hpp +0 -166
- data/ext/boost/mpl/aux_/preprocessed/msvc70/iter_fold_if_impl.hpp +0 -133
- data/ext/boost/mpl/aux_/preprocessed/msvc70/iter_fold_impl.hpp +0 -245
- data/ext/boost/mpl/aux_/preprocessed/msvc70/lambda_no_ctps.hpp +0 -229
- data/ext/boost/mpl/aux_/preprocessed/msvc70/less.hpp +0 -102
- data/ext/boost/mpl/aux_/preprocessed/msvc70/less_equal.hpp +0 -102
- data/ext/boost/mpl/aux_/preprocessed/msvc70/list.hpp +0 -556
- data/ext/boost/mpl/aux_/preprocessed/msvc70/list_c.hpp +0 -534
- data/ext/boost/mpl/aux_/preprocessed/msvc70/map.hpp +0 -556
- data/ext/boost/mpl/aux_/preprocessed/msvc70/minus.hpp +0 -150
- data/ext/boost/mpl/aux_/preprocessed/msvc70/modulus.hpp +0 -115
- data/ext/boost/mpl/aux_/preprocessed/msvc70/not_equal_to.hpp +0 -102
- data/ext/boost/mpl/aux_/preprocessed/msvc70/or.hpp +0 -71
- data/ext/boost/mpl/aux_/preprocessed/msvc70/placeholders.hpp +0 -105
- data/ext/boost/mpl/aux_/preprocessed/msvc70/plus.hpp +0 -150
- data/ext/boost/mpl/aux_/preprocessed/msvc70/quote.hpp +0 -116
- data/ext/boost/mpl/aux_/preprocessed/msvc70/reverse_fold_impl.hpp +0 -295
- data/ext/boost/mpl/aux_/preprocessed/msvc70/reverse_iter_fold_impl.hpp +0 -295
- data/ext/boost/mpl/aux_/preprocessed/msvc70/set.hpp +0 -556
- data/ext/boost/mpl/aux_/preprocessed/msvc70/set_c.hpp +0 -534
- data/ext/boost/mpl/aux_/preprocessed/msvc70/shift_left.hpp +0 -114
- data/ext/boost/mpl/aux_/preprocessed/msvc70/shift_right.hpp +0 -114
- data/ext/boost/mpl/aux_/preprocessed/msvc70/template_arity.hpp +0 -46
- data/ext/boost/mpl/aux_/preprocessed/msvc70/times.hpp +0 -150
- data/ext/boost/mpl/aux_/preprocessed/msvc70/unpack_args.hpp +0 -109
- data/ext/boost/mpl/aux_/preprocessed/msvc70/vector.hpp +0 -556
- data/ext/boost/mpl/aux_/preprocessed/msvc70/vector_c.hpp +0 -534
- data/ext/boost/mpl/aux_/preprocessed/mwcw/advance_backward.hpp +0 -97
- data/ext/boost/mpl/aux_/preprocessed/mwcw/advance_forward.hpp +0 -97
- data/ext/boost/mpl/aux_/preprocessed/mwcw/and.hpp +0 -69
- data/ext/boost/mpl/aux_/preprocessed/mwcw/apply.hpp +0 -169
- data/ext/boost/mpl/aux_/preprocessed/mwcw/apply_fwd.hpp +0 -52
- data/ext/boost/mpl/aux_/preprocessed/mwcw/apply_wrap.hpp +0 -456
- data/ext/boost/mpl/aux_/preprocessed/mwcw/arg.hpp +0 -123
- data/ext/boost/mpl/aux_/preprocessed/mwcw/basic_bind.hpp +0 -440
- data/ext/boost/mpl/aux_/preprocessed/mwcw/bind.hpp +0 -561
- data/ext/boost/mpl/aux_/preprocessed/mwcw/bind_fwd.hpp +0 -52
- data/ext/boost/mpl/aux_/preprocessed/mwcw/bitand.hpp +0 -147
- data/ext/boost/mpl/aux_/preprocessed/mwcw/bitor.hpp +0 -147
- data/ext/boost/mpl/aux_/preprocessed/mwcw/bitxor.hpp +0 -147
- data/ext/boost/mpl/aux_/preprocessed/mwcw/deque.hpp +0 -323
- data/ext/boost/mpl/aux_/preprocessed/mwcw/divides.hpp +0 -146
- data/ext/boost/mpl/aux_/preprocessed/mwcw/equal_to.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/mwcw/fold_impl.hpp +0 -180
- data/ext/boost/mpl/aux_/preprocessed/mwcw/full_lambda.hpp +0 -554
- data/ext/boost/mpl/aux_/preprocessed/mwcw/greater.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/mwcw/greater_equal.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/mwcw/inherit.hpp +0 -141
- data/ext/boost/mpl/aux_/preprocessed/mwcw/iter_fold_if_impl.hpp +0 -133
- data/ext/boost/mpl/aux_/preprocessed/mwcw/iter_fold_impl.hpp +0 -180
- data/ext/boost/mpl/aux_/preprocessed/mwcw/lambda_no_ctps.hpp +0 -229
- data/ext/boost/mpl/aux_/preprocessed/mwcw/less.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/mwcw/less_equal.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/mwcw/list.hpp +0 -323
- data/ext/boost/mpl/aux_/preprocessed/mwcw/list_c.hpp +0 -328
- data/ext/boost/mpl/aux_/preprocessed/mwcw/map.hpp +0 -323
- data/ext/boost/mpl/aux_/preprocessed/mwcw/minus.hpp +0 -146
- data/ext/boost/mpl/aux_/preprocessed/mwcw/modulus.hpp +0 -101
- data/ext/boost/mpl/aux_/preprocessed/mwcw/not_equal_to.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/mwcw/or.hpp +0 -69
- data/ext/boost/mpl/aux_/preprocessed/mwcw/placeholders.hpp +0 -105
- data/ext/boost/mpl/aux_/preprocessed/mwcw/plus.hpp +0 -146
- data/ext/boost/mpl/aux_/preprocessed/mwcw/quote.hpp +0 -123
- data/ext/boost/mpl/aux_/preprocessed/mwcw/reverse_fold_impl.hpp +0 -231
- data/ext/boost/mpl/aux_/preprocessed/mwcw/reverse_iter_fold_impl.hpp +0 -231
- data/ext/boost/mpl/aux_/preprocessed/mwcw/set.hpp +0 -323
- data/ext/boost/mpl/aux_/preprocessed/mwcw/set_c.hpp +0 -328
- data/ext/boost/mpl/aux_/preprocessed/mwcw/shift_left.hpp +0 -99
- data/ext/boost/mpl/aux_/preprocessed/mwcw/shift_right.hpp +0 -99
- data/ext/boost/mpl/aux_/preprocessed/mwcw/template_arity.hpp +0 -11
- data/ext/boost/mpl/aux_/preprocessed/mwcw/times.hpp +0 -146
- data/ext/boost/mpl/aux_/preprocessed/mwcw/unpack_args.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/mwcw/vector.hpp +0 -323
- data/ext/boost/mpl/aux_/preprocessed/mwcw/vector_c.hpp +0 -309
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/advance_backward.hpp +0 -97
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/advance_forward.hpp +0 -97
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/and.hpp +0 -73
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/apply.hpp +0 -268
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/apply_fwd.hpp +0 -50
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/apply_wrap.hpp +0 -78
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/arg.hpp +0 -123
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/basic_bind.hpp +0 -486
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/bind.hpp +0 -590
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/bind_fwd.hpp +0 -52
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/bitand.hpp +0 -134
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/bitor.hpp +0 -134
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/bitxor.hpp +0 -134
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/deque.hpp +0 -556
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/divides.hpp +0 -133
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/equal_to.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/fold_impl.hpp +0 -245
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/full_lambda.hpp +0 -554
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/greater.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/greater_equal.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/inherit.hpp +0 -166
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/iter_fold_if_impl.hpp +0 -133
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/iter_fold_impl.hpp +0 -245
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/lambda_no_ctps.hpp +0 -229
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/less.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/less_equal.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/list.hpp +0 -556
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/list_c.hpp +0 -534
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/map.hpp +0 -556
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/minus.hpp +0 -133
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/modulus.hpp +0 -101
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/not_equal_to.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/or.hpp +0 -73
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/placeholders.hpp +0 -105
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/plus.hpp +0 -133
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/quote.hpp +0 -116
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/reverse_fold_impl.hpp +0 -295
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/reverse_iter_fold_impl.hpp +0 -295
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/set.hpp +0 -556
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/set_c.hpp +0 -534
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/shift_left.hpp +0 -99
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/shift_right.hpp +0 -99
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/template_arity.hpp +0 -40
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/times.hpp +0 -133
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/unpack_args.hpp +0 -109
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/vector.hpp +0 -556
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/vector_c.hpp +0 -534
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/advance_backward.hpp +0 -97
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/advance_forward.hpp +0 -97
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/and.hpp +0 -69
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/apply.hpp +0 -169
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/apply_fwd.hpp +0 -52
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/apply_wrap.hpp +0 -84
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/arg.hpp +0 -123
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/basic_bind.hpp +0 -369
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/bind.hpp +0 -466
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/bind_fwd.hpp +0 -52
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/bitand.hpp +0 -157
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/bitor.hpp +0 -157
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/bitxor.hpp +0 -157
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/deque.hpp +0 -323
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/divides.hpp +0 -156
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/equal_to.hpp +0 -98
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/fold_impl.hpp +0 -180
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/full_lambda.hpp +0 -554
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/greater.hpp +0 -98
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/greater_equal.hpp +0 -98
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/inherit.hpp +0 -141
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/iter_fold_if_impl.hpp +0 -133
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/iter_fold_impl.hpp +0 -180
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/lambda_no_ctps.hpp +0 -229
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/less.hpp +0 -98
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/less_equal.hpp +0 -98
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/list.hpp +0 -323
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/list_c.hpp +0 -328
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/map.hpp +0 -323
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/minus.hpp +0 -156
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/modulus.hpp +0 -111
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/not_equal_to.hpp +0 -98
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/or.hpp +0 -69
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/placeholders.hpp +0 -105
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/plus.hpp +0 -156
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/quote.hpp +0 -11
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/reverse_fold_impl.hpp +0 -231
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/reverse_iter_fold_impl.hpp +0 -231
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/set.hpp +0 -323
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/set_c.hpp +0 -328
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/shift_left.hpp +0 -110
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/shift_right.hpp +0 -110
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/template_arity.hpp +0 -40
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/times.hpp +0 -156
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/unpack_args.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/vector.hpp +0 -323
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/vector_c.hpp +0 -309
- data/ext/boost/mpl/aux_/preprocessed/plain/advance_backward.hpp +0 -97
- data/ext/boost/mpl/aux_/preprocessed/plain/advance_forward.hpp +0 -97
- data/ext/boost/mpl/aux_/preprocessed/plain/and.hpp +0 -64
- data/ext/boost/mpl/aux_/preprocessed/plain/apply.hpp +0 -139
- data/ext/boost/mpl/aux_/preprocessed/plain/apply_fwd.hpp +0 -52
- data/ext/boost/mpl/aux_/preprocessed/plain/apply_wrap.hpp +0 -84
- data/ext/boost/mpl/aux_/preprocessed/plain/arg.hpp +0 -123
- data/ext/boost/mpl/aux_/preprocessed/plain/basic_bind.hpp +0 -440
- data/ext/boost/mpl/aux_/preprocessed/plain/bind.hpp +0 -561
- data/ext/boost/mpl/aux_/preprocessed/plain/bind_fwd.hpp +0 -52
- data/ext/boost/mpl/aux_/preprocessed/plain/bitand.hpp +0 -142
- data/ext/boost/mpl/aux_/preprocessed/plain/bitor.hpp +0 -142
- data/ext/boost/mpl/aux_/preprocessed/plain/bitxor.hpp +0 -142
- data/ext/boost/mpl/aux_/preprocessed/plain/deque.hpp +0 -323
- data/ext/boost/mpl/aux_/preprocessed/plain/divides.hpp +0 -141
- data/ext/boost/mpl/aux_/preprocessed/plain/equal_to.hpp +0 -92
- data/ext/boost/mpl/aux_/preprocessed/plain/fold_impl.hpp +0 -180
- data/ext/boost/mpl/aux_/preprocessed/plain/full_lambda.hpp +0 -554
- data/ext/boost/mpl/aux_/preprocessed/plain/greater.hpp +0 -92
- data/ext/boost/mpl/aux_/preprocessed/plain/greater_equal.hpp +0 -92
- data/ext/boost/mpl/aux_/preprocessed/plain/inherit.hpp +0 -125
- data/ext/boost/mpl/aux_/preprocessed/plain/iter_fold_if_impl.hpp +0 -133
- data/ext/boost/mpl/aux_/preprocessed/plain/iter_fold_impl.hpp +0 -180
- data/ext/boost/mpl/aux_/preprocessed/plain/lambda_no_ctps.hpp +0 -228
- data/ext/boost/mpl/aux_/preprocessed/plain/less.hpp +0 -92
- data/ext/boost/mpl/aux_/preprocessed/plain/less_equal.hpp +0 -92
- data/ext/boost/mpl/aux_/preprocessed/plain/list.hpp +0 -323
- data/ext/boost/mpl/aux_/preprocessed/plain/list_c.hpp +0 -328
- data/ext/boost/mpl/aux_/preprocessed/plain/map.hpp +0 -323
- data/ext/boost/mpl/aux_/preprocessed/plain/minus.hpp +0 -141
- data/ext/boost/mpl/aux_/preprocessed/plain/modulus.hpp +0 -99
- data/ext/boost/mpl/aux_/preprocessed/plain/not_equal_to.hpp +0 -92
- data/ext/boost/mpl/aux_/preprocessed/plain/or.hpp +0 -64
- data/ext/boost/mpl/aux_/preprocessed/plain/placeholders.hpp +0 -105
- data/ext/boost/mpl/aux_/preprocessed/plain/plus.hpp +0 -141
- data/ext/boost/mpl/aux_/preprocessed/plain/quote.hpp +0 -123
- data/ext/boost/mpl/aux_/preprocessed/plain/reverse_fold_impl.hpp +0 -231
- data/ext/boost/mpl/aux_/preprocessed/plain/reverse_iter_fold_impl.hpp +0 -231
- data/ext/boost/mpl/aux_/preprocessed/plain/set.hpp +0 -323
- data/ext/boost/mpl/aux_/preprocessed/plain/set_c.hpp +0 -328
- data/ext/boost/mpl/aux_/preprocessed/plain/shift_left.hpp +0 -97
- data/ext/boost/mpl/aux_/preprocessed/plain/shift_right.hpp +0 -97
- data/ext/boost/mpl/aux_/preprocessed/plain/template_arity.hpp +0 -11
- data/ext/boost/mpl/aux_/preprocessed/plain/times.hpp +0 -141
- data/ext/boost/mpl/aux_/preprocessed/plain/unpack_args.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/plain/vector.hpp +0 -323
- data/ext/boost/mpl/aux_/preprocessed/plain/vector_c.hpp +0 -309
- data/ext/boost/mpl/aux_/preprocessor/add.hpp +0 -65
- data/ext/boost/mpl/aux_/preprocessor/default_params.hpp +0 -67
- data/ext/boost/mpl/aux_/preprocessor/ext_params.hpp +0 -78
- data/ext/boost/mpl/aux_/preprocessor/is_seq.hpp +0 -54
- data/ext/boost/mpl/aux_/preprocessor/partial_spec_params.hpp +0 -32
- data/ext/boost/mpl/aux_/preprocessor/range.hpp +0 -23
- data/ext/boost/mpl/aux_/preprocessor/repeat.hpp +0 -51
- data/ext/boost/mpl/aux_/preprocessor/token_equal.hpp +0 -56
- data/ext/boost/mpl/aux_/preprocessor/tuple.hpp +0 -29
- data/ext/boost/mpl/aux_/ptr_to_ref.hpp +0 -46
- data/ext/boost/mpl/aux_/push_back_impl.hpp +0 -55
- data/ext/boost/mpl/aux_/push_front_impl.hpp +0 -56
- data/ext/boost/mpl/aux_/range_c/O1_size.hpp +0 -31
- data/ext/boost/mpl/aux_/range_c/back.hpp +0 -34
- data/ext/boost/mpl/aux_/range_c/empty.hpp +0 -37
- data/ext/boost/mpl/aux_/range_c/front.hpp +0 -33
- data/ext/boost/mpl/aux_/range_c/iterator.hpp +0 -106
- data/ext/boost/mpl/aux_/range_c/size.hpp +0 -37
- data/ext/boost/mpl/aux_/range_c/tag.hpp +0 -24
- data/ext/boost/mpl/aux_/reverse_fold_impl.hpp +0 -44
- data/ext/boost/mpl/aux_/reverse_fold_impl_body.hpp +0 -412
- data/ext/boost/mpl/aux_/reverse_iter_fold_impl.hpp +0 -43
- data/ext/boost/mpl/aux_/sequence_wrapper.hpp +0 -292
- data/ext/boost/mpl/aux_/shift_op.hpp +0 -87
- data/ext/boost/mpl/aux_/single_element_iter.hpp +0 -118
- data/ext/boost/mpl/aux_/size_impl.hpp +0 -52
- data/ext/boost/mpl/aux_/sort_impl.hpp +0 -121
- data/ext/boost/mpl/aux_/test.hpp +0 -32
- data/ext/boost/mpl/aux_/test/assert.hpp +0 -29
- data/ext/boost/mpl/aux_/test/data.hpp +0 -25
- data/ext/boost/mpl/aux_/test/test_case.hpp +0 -21
- data/ext/boost/mpl/aux_/traits_lambda_spec.hpp +0 -56
- data/ext/boost/mpl/aux_/transform_iter.hpp +0 -123
- data/ext/boost/mpl/aux_/unwrap.hpp +0 -47
- data/ext/boost/mpl/back.hpp +0 -39
- data/ext/boost/mpl/back_fwd.hpp +0 -24
- data/ext/boost/mpl/back_inserter.hpp +0 -34
- data/ext/boost/mpl/base.hpp +0 -35
- data/ext/boost/mpl/begin.hpp +0 -19
- data/ext/boost/mpl/begin_end.hpp +0 -57
- data/ext/boost/mpl/begin_end_fwd.hpp +0 -27
- data/ext/boost/mpl/bitand.hpp +0 -23
- data/ext/boost/mpl/bitor.hpp +0 -23
- data/ext/boost/mpl/bitwise.hpp +0 -24
- data/ext/boost/mpl/bitxor.hpp +0 -23
- data/ext/boost/mpl/clear.hpp +0 -39
- data/ext/boost/mpl/clear_fwd.hpp +0 -24
- data/ext/boost/mpl/comparison.hpp +0 -24
- data/ext/boost/mpl/contains.hpp +0 -41
- data/ext/boost/mpl/contains_fwd.hpp +0 -25
- data/ext/boost/mpl/copy.hpp +0 -58
- data/ext/boost/mpl/copy_if.hpp +0 -96
- data/ext/boost/mpl/count.hpp +0 -40
- data/ext/boost/mpl/count_fwd.hpp +0 -24
- data/ext/boost/mpl/count_if.hpp +0 -79
- data/ext/boost/mpl/deque.hpp +0 -58
- data/ext/boost/mpl/deref.hpp +0 -41
- data/ext/boost/mpl/distance.hpp +0 -78
- data/ext/boost/mpl/distance_fwd.hpp +0 -28
- data/ext/boost/mpl/divides.hpp +0 -21
- data/ext/boost/mpl/empty.hpp +0 -39
- data/ext/boost/mpl/empty_base.hpp +0 -59
- data/ext/boost/mpl/empty_fwd.hpp +0 -24
- data/ext/boost/mpl/empty_sequence.hpp +0 -42
- data/ext/boost/mpl/end.hpp +0 -19
- data/ext/boost/mpl/equal.hpp +0 -112
- data/ext/boost/mpl/equal_to.hpp +0 -21
- data/ext/boost/mpl/erase.hpp +0 -42
- data/ext/boost/mpl/erase_fwd.hpp +0 -24
- data/ext/boost/mpl/erase_key.hpp +0 -41
- data/ext/boost/mpl/erase_key_fwd.hpp +0 -24
- data/ext/boost/mpl/filter_view.hpp +0 -46
- data/ext/boost/mpl/find.hpp +0 -38
- data/ext/boost/mpl/find_if.hpp +0 -50
- data/ext/boost/mpl/fold.hpp +0 -48
- data/ext/boost/mpl/for_each.hpp +0 -112
- data/ext/boost/mpl/front.hpp +0 -39
- data/ext/boost/mpl/front_fwd.hpp +0 -24
- data/ext/boost/mpl/front_inserter.hpp +0 -33
- data/ext/boost/mpl/greater.hpp +0 -21
- data/ext/boost/mpl/greater_equal.hpp +0 -21
- data/ext/boost/mpl/has_key.hpp +0 -41
- data/ext/boost/mpl/has_key_fwd.hpp +0 -25
- data/ext/boost/mpl/index_if.hpp +0 -60
- data/ext/boost/mpl/index_of.hpp +0 -39
- data/ext/boost/mpl/inherit.hpp +0 -229
- data/ext/boost/mpl/inherit_linearly.hpp +0 -39
- data/ext/boost/mpl/insert.hpp +0 -41
- data/ext/boost/mpl/insert_fwd.hpp +0 -24
- data/ext/boost/mpl/insert_range.hpp +0 -41
- data/ext/boost/mpl/insert_range_fwd.hpp +0 -24
- data/ext/boost/mpl/inserter.hpp +0 -32
- data/ext/boost/mpl/is_placeholder.hpp +0 -67
- data/ext/boost/mpl/is_sequence.hpp +0 -112
- data/ext/boost/mpl/iter_fold.hpp +0 -49
- data/ext/boost/mpl/iter_fold_if.hpp +0 -117
- data/ext/boost/mpl/iterator_category.hpp +0 -35
- data/ext/boost/mpl/iterator_range.hpp +0 -42
- data/ext/boost/mpl/iterator_tags.hpp +0 -27
- data/ext/boost/mpl/joint_view.hpp +0 -65
- data/ext/boost/mpl/key_type.hpp +0 -42
- data/ext/boost/mpl/key_type_fwd.hpp +0 -25
- data/ext/boost/mpl/less.hpp +0 -21
- data/ext/boost/mpl/less_equal.hpp +0 -21
- data/ext/boost/mpl/limits/list.hpp +0 -21
- data/ext/boost/mpl/limits/map.hpp +0 -21
- data/ext/boost/mpl/limits/set.hpp +0 -21
- data/ext/boost/mpl/limits/unrolling.hpp +0 -21
- data/ext/boost/mpl/limits/vector.hpp +0 -21
- data/ext/boost/mpl/list.hpp +0 -57
- data/ext/boost/mpl/list/aux_/O1_size.hpp +0 -33
- data/ext/boost/mpl/list/aux_/begin_end.hpp +0 -44
- data/ext/boost/mpl/list/aux_/clear.hpp +0 -34
- data/ext/boost/mpl/list/aux_/empty.hpp +0 -34
- data/ext/boost/mpl/list/aux_/front.hpp +0 -33
- data/ext/boost/mpl/list/aux_/include_preprocessed.hpp +0 -35
- data/ext/boost/mpl/list/aux_/item.hpp +0 -55
- data/ext/boost/mpl/list/aux_/iterator.hpp +0 -76
- data/ext/boost/mpl/list/aux_/numbered.hpp +0 -68
- data/ext/boost/mpl/list/aux_/numbered_c.hpp +0 -71
- data/ext/boost/mpl/list/aux_/pop_front.hpp +0 -34
- data/ext/boost/mpl/list/aux_/preprocessed/plain/list10.hpp +0 -149
- data/ext/boost/mpl/list/aux_/preprocessed/plain/list10_c.hpp +0 -164
- data/ext/boost/mpl/list/aux_/preprocessed/plain/list20.hpp +0 -169
- data/ext/boost/mpl/list/aux_/preprocessed/plain/list20_c.hpp +0 -173
- data/ext/boost/mpl/list/aux_/preprocessed/plain/list30.hpp +0 -189
- data/ext/boost/mpl/list/aux_/preprocessed/plain/list30_c.hpp +0 -183
- data/ext/boost/mpl/list/aux_/preprocessed/plain/list40.hpp +0 -209
- data/ext/boost/mpl/list/aux_/preprocessed/plain/list40_c.hpp +0 -193
- data/ext/boost/mpl/list/aux_/preprocessed/plain/list50.hpp +0 -229
- data/ext/boost/mpl/list/aux_/preprocessed/plain/list50_c.hpp +0 -203
- data/ext/boost/mpl/list/aux_/push_back.hpp +0 -36
- data/ext/boost/mpl/list/aux_/push_front.hpp +0 -39
- data/ext/boost/mpl/list/aux_/size.hpp +0 -33
- data/ext/boost/mpl/list/aux_/tag.hpp +0 -24
- data/ext/boost/mpl/list/list0.hpp +0 -42
- data/ext/boost/mpl/list/list0_c.hpp +0 -31
- data/ext/boost/mpl/list/list10.hpp +0 -43
- data/ext/boost/mpl/list/list10_c.hpp +0 -43
- data/ext/boost/mpl/list/list20.hpp +0 -43
- data/ext/boost/mpl/list/list20_c.hpp +0 -43
- data/ext/boost/mpl/list/list30.hpp +0 -43
- data/ext/boost/mpl/list/list30_c.hpp +0 -43
- data/ext/boost/mpl/list/list40.hpp +0 -43
- data/ext/boost/mpl/list/list40_c.hpp +0 -43
- data/ext/boost/mpl/list/list50.hpp +0 -43
- data/ext/boost/mpl/list/list50_c.hpp +0 -43
- data/ext/boost/mpl/list_c.hpp +0 -60
- data/ext/boost/mpl/long.hpp +0 -22
- data/ext/boost/mpl/long_fwd.hpp +0 -27
- data/ext/boost/mpl/lower_bound.hpp +0 -143
- data/ext/boost/mpl/map.hpp +0 -57
- data/ext/boost/mpl/map/aux_/at_impl.hpp +0 -144
- data/ext/boost/mpl/map/aux_/begin_end_impl.hpp +0 -50
- data/ext/boost/mpl/map/aux_/clear_impl.hpp +0 -35
- data/ext/boost/mpl/map/aux_/contains_impl.hpp +0 -43
- data/ext/boost/mpl/map/aux_/empty_impl.hpp +0 -34
- data/ext/boost/mpl/map/aux_/erase_impl.hpp +0 -41
- data/ext/boost/mpl/map/aux_/erase_key_impl.hpp +0 -53
- data/ext/boost/mpl/map/aux_/has_key_impl.hpp +0 -44
- data/ext/boost/mpl/map/aux_/include_preprocessed.hpp +0 -53
- data/ext/boost/mpl/map/aux_/insert_impl.hpp +0 -72
- data/ext/boost/mpl/map/aux_/item.hpp +0 -138
- data/ext/boost/mpl/map/aux_/iterator.hpp +0 -169
- data/ext/boost/mpl/map/aux_/key_type_impl.hpp +0 -36
- data/ext/boost/mpl/map/aux_/map0.hpp +0 -74
- data/ext/boost/mpl/map/aux_/numbered.hpp +0 -110
- data/ext/boost/mpl/map/aux_/preprocessed/no_ctps/map10.hpp +0 -350
- data/ext/boost/mpl/map/aux_/preprocessed/no_ctps/map20.hpp +0 -370
- data/ext/boost/mpl/map/aux_/preprocessed/no_ctps/map30.hpp +0 -390
- data/ext/boost/mpl/map/aux_/preprocessed/no_ctps/map40.hpp +0 -410
- data/ext/boost/mpl/map/aux_/preprocessed/no_ctps/map50.hpp +0 -430
- data/ext/boost/mpl/map/aux_/preprocessed/plain/map10.hpp +0 -290
- data/ext/boost/mpl/map/aux_/preprocessed/plain/map20.hpp +0 -310
- data/ext/boost/mpl/map/aux_/preprocessed/plain/map30.hpp +0 -330
- data/ext/boost/mpl/map/aux_/preprocessed/plain/map40.hpp +0 -350
- data/ext/boost/mpl/map/aux_/preprocessed/plain/map50.hpp +0 -370
- data/ext/boost/mpl/map/aux_/preprocessed/typeof_based/map10.hpp +0 -150
- data/ext/boost/mpl/map/aux_/preprocessed/typeof_based/map20.hpp +0 -170
- data/ext/boost/mpl/map/aux_/preprocessed/typeof_based/map30.hpp +0 -190
- data/ext/boost/mpl/map/aux_/preprocessed/typeof_based/map40.hpp +0 -210
- data/ext/boost/mpl/map/aux_/preprocessed/typeof_based/map50.hpp +0 -230
- data/ext/boost/mpl/map/aux_/size_impl.hpp +0 -33
- data/ext/boost/mpl/map/aux_/tag.hpp +0 -24
- data/ext/boost/mpl/map/aux_/value_type_impl.hpp +0 -36
- data/ext/boost/mpl/map/map0.hpp +0 -36
- data/ext/boost/mpl/map/map10.hpp +0 -44
- data/ext/boost/mpl/map/map20.hpp +0 -44
- data/ext/boost/mpl/map/map30.hpp +0 -44
- data/ext/boost/mpl/map/map40.hpp +0 -44
- data/ext/boost/mpl/map/map50.hpp +0 -44
- data/ext/boost/mpl/math/fixed_c.hpp +0 -36
- data/ext/boost/mpl/math/is_even.hpp +0 -54
- data/ext/boost/mpl/math/rational_c.hpp +0 -37
- data/ext/boost/mpl/max.hpp +0 -19
- data/ext/boost/mpl/max_element.hpp +0 -72
- data/ext/boost/mpl/min.hpp +0 -19
- data/ext/boost/mpl/min_element.hpp +0 -40
- data/ext/boost/mpl/min_max.hpp +0 -46
- data/ext/boost/mpl/minus.hpp +0 -21
- data/ext/boost/mpl/modulus.hpp +0 -22
- data/ext/boost/mpl/multiplies.hpp +0 -53
- data/ext/boost/mpl/multiset/aux_/count_impl.hpp +0 -82
- data/ext/boost/mpl/multiset/aux_/insert_impl.hpp +0 -34
- data/ext/boost/mpl/multiset/aux_/item.hpp +0 -114
- data/ext/boost/mpl/multiset/aux_/multiset0.hpp +0 -34
- data/ext/boost/mpl/multiset/aux_/tag.hpp +0 -23
- data/ext/boost/mpl/multiset/multiset0.hpp +0 -36
- data/ext/boost/mpl/negate.hpp +0 -81
- data/ext/boost/mpl/not_equal_to.hpp +0 -21
- data/ext/boost/mpl/numeric_cast.hpp +0 -41
- data/ext/boost/mpl/order.hpp +0 -41
- data/ext/boost/mpl/order_fwd.hpp +0 -25
- data/ext/boost/mpl/pair.hpp +0 -70
- data/ext/boost/mpl/pair_view.hpp +0 -169
- data/ext/boost/mpl/partition.hpp +0 -53
- data/ext/boost/mpl/plus.hpp +0 -21
- data/ext/boost/mpl/pop_back.hpp +0 -39
- data/ext/boost/mpl/pop_back_fwd.hpp +0 -24
- data/ext/boost/mpl/pop_front.hpp +0 -39
- data/ext/boost/mpl/pop_front_fwd.hpp +0 -24
- data/ext/boost/mpl/print.hpp +0 -74
- data/ext/boost/mpl/prior.hpp +0 -19
- data/ext/boost/mpl/push_back.hpp +0 -53
- data/ext/boost/mpl/push_back_fwd.hpp +0 -24
- data/ext/boost/mpl/push_front.hpp +0 -52
- data/ext/boost/mpl/push_front_fwd.hpp +0 -24
- data/ext/boost/mpl/range_c.hpp +0 -48
- data/ext/boost/mpl/remove.hpp +0 -52
- data/ext/boost/mpl/remove_if.hpp +0 -83
- data/ext/boost/mpl/replace.hpp +0 -55
- data/ext/boost/mpl/replace_if.hpp +0 -88
- data/ext/boost/mpl/reverse.hpp +0 -38
- data/ext/boost/mpl/reverse_fold.hpp +0 -50
- data/ext/boost/mpl/reverse_iter_fold.hpp +0 -56
- data/ext/boost/mpl/same_as.hpp +0 -55
- data/ext/boost/mpl/sequence_tag.hpp +0 -124
- data/ext/boost/mpl/sequence_tag_fwd.hpp +0 -26
- data/ext/boost/mpl/set.hpp +0 -57
- data/ext/boost/mpl/set/aux_/at_impl.hpp +0 -40
- data/ext/boost/mpl/set/aux_/begin_end_impl.hpp +0 -43
- data/ext/boost/mpl/set/aux_/clear_impl.hpp +0 -35
- data/ext/boost/mpl/set/aux_/empty_impl.hpp +0 -34
- data/ext/boost/mpl/set/aux_/erase_impl.hpp +0 -41
- data/ext/boost/mpl/set/aux_/erase_key_impl.hpp +0 -53
- data/ext/boost/mpl/set/aux_/has_key_impl.hpp +0 -60
- data/ext/boost/mpl/set/aux_/include_preprocessed.hpp +0 -42
- data/ext/boost/mpl/set/aux_/insert_impl.hpp +0 -65
- data/ext/boost/mpl/set/aux_/item.hpp +0 -82
- data/ext/boost/mpl/set/aux_/iterator.hpp +0 -97
- data/ext/boost/mpl/set/aux_/key_type_impl.hpp +0 -34
- data/ext/boost/mpl/set/aux_/numbered.hpp +0 -48
- data/ext/boost/mpl/set/aux_/numbered_c.hpp +0 -48
- data/ext/boost/mpl/set/aux_/preprocessed/plain/set10.hpp +0 -140
- data/ext/boost/mpl/set/aux_/preprocessed/plain/set10_c.hpp +0 -145
- data/ext/boost/mpl/set/aux_/preprocessed/plain/set20.hpp +0 -168
- data/ext/boost/mpl/set/aux_/preprocessed/plain/set20_c.hpp +0 -154
- data/ext/boost/mpl/set/aux_/preprocessed/plain/set30.hpp +0 -195
- data/ext/boost/mpl/set/aux_/preprocessed/plain/set30_c.hpp +0 -164
- data/ext/boost/mpl/set/aux_/preprocessed/plain/set40.hpp +0 -221
- data/ext/boost/mpl/set/aux_/preprocessed/plain/set40_c.hpp +0 -174
- data/ext/boost/mpl/set/aux_/preprocessed/plain/set50.hpp +0 -250
- data/ext/boost/mpl/set/aux_/preprocessed/plain/set50_c.hpp +0 -184
- data/ext/boost/mpl/set/aux_/set0.hpp +0 -69
- data/ext/boost/mpl/set/aux_/size_impl.hpp +0 -33
- data/ext/boost/mpl/set/aux_/tag.hpp +0 -24
- data/ext/boost/mpl/set/aux_/value_type_impl.hpp +0 -34
- data/ext/boost/mpl/set/set0.hpp +0 -35
- data/ext/boost/mpl/set/set0_c.hpp +0 -32
- data/ext/boost/mpl/set/set10.hpp +0 -44
- data/ext/boost/mpl/set/set10_c.hpp +0 -45
- data/ext/boost/mpl/set/set20.hpp +0 -44
- data/ext/boost/mpl/set/set20_c.hpp +0 -45
- data/ext/boost/mpl/set/set30.hpp +0 -44
- data/ext/boost/mpl/set/set30_c.hpp +0 -45
- data/ext/boost/mpl/set/set40.hpp +0 -44
- data/ext/boost/mpl/set/set40_c.hpp +0 -45
- data/ext/boost/mpl/set/set50.hpp +0 -44
- data/ext/boost/mpl/set/set50_c.hpp +0 -45
- data/ext/boost/mpl/set_c.hpp +0 -60
- data/ext/boost/mpl/shift_left.hpp +0 -22
- data/ext/boost/mpl/shift_right.hpp +0 -22
- data/ext/boost/mpl/single_view.hpp +0 -38
- data/ext/boost/mpl/size.hpp +0 -42
- data/ext/boost/mpl/size_fwd.hpp +0 -24
- data/ext/boost/mpl/sizeof.hpp +0 -36
- data/ext/boost/mpl/sort.hpp +0 -27
- data/ext/boost/mpl/stable_partition.hpp +0 -75
- data/ext/boost/mpl/switch.hpp +0 -49
- data/ext/boost/mpl/tag.hpp +0 -52
- data/ext/boost/mpl/times.hpp +0 -21
- data/ext/boost/mpl/transform.hpp +0 -145
- data/ext/boost/mpl/transform_view.hpp +0 -46
- data/ext/boost/mpl/unique.hpp +0 -85
- data/ext/boost/mpl/unpack_args.hpp +0 -146
- data/ext/boost/mpl/upper_bound.hpp +0 -141
- data/ext/boost/mpl/value_type.hpp +0 -42
- data/ext/boost/mpl/value_type_fwd.hpp +0 -25
- data/ext/boost/mpl/vector.hpp +0 -57
- data/ext/boost/mpl/vector/aux_/O1_size.hpp +0 -56
- data/ext/boost/mpl/vector/aux_/at.hpp +0 -116
- data/ext/boost/mpl/vector/aux_/back.hpp +0 -59
- data/ext/boost/mpl/vector/aux_/begin_end.hpp +0 -49
- data/ext/boost/mpl/vector/aux_/clear.hpp +0 -55
- data/ext/boost/mpl/vector/aux_/empty.hpp +0 -68
- data/ext/boost/mpl/vector/aux_/front.hpp +0 -56
- data/ext/boost/mpl/vector/aux_/include_preprocessed.hpp +0 -55
- data/ext/boost/mpl/vector/aux_/item.hpp +0 -103
- data/ext/boost/mpl/vector/aux_/iterator.hpp +0 -130
- data/ext/boost/mpl/vector/aux_/numbered.hpp +0 -218
- data/ext/boost/mpl/vector/aux_/numbered_c.hpp +0 -77
- data/ext/boost/mpl/vector/aux_/pop_back.hpp +0 -40
- data/ext/boost/mpl/vector/aux_/pop_front.hpp +0 -40
- data/ext/boost/mpl/vector/aux_/preprocessed/no_ctps/vector10.hpp +0 -1528
- data/ext/boost/mpl/vector/aux_/preprocessed/no_ctps/vector10_c.hpp +0 -149
- data/ext/boost/mpl/vector/aux_/preprocessed/no_ctps/vector20.hpp +0 -1804
- data/ext/boost/mpl/vector/aux_/preprocessed/no_ctps/vector20_c.hpp +0 -195
- data/ext/boost/mpl/vector/aux_/preprocessed/no_ctps/vector30.hpp +0 -2124
- data/ext/boost/mpl/vector/aux_/preprocessed/no_ctps/vector30_c.hpp +0 -238
- data/ext/boost/mpl/vector/aux_/preprocessed/no_ctps/vector40.hpp +0 -2444
- data/ext/boost/mpl/vector/aux_/preprocessed/no_ctps/vector40_c.hpp +0 -281
- data/ext/boost/mpl/vector/aux_/preprocessed/no_ctps/vector50.hpp +0 -2764
- data/ext/boost/mpl/vector/aux_/preprocessed/no_ctps/vector50_c.hpp +0 -325
- data/ext/boost/mpl/vector/aux_/preprocessed/plain/vector10.hpp +0 -829
- data/ext/boost/mpl/vector/aux_/preprocessed/plain/vector10_c.hpp +0 -149
- data/ext/boost/mpl/vector/aux_/preprocessed/plain/vector20.hpp +0 -1144
- data/ext/boost/mpl/vector/aux_/preprocessed/plain/vector20_c.hpp +0 -195
- data/ext/boost/mpl/vector/aux_/preprocessed/plain/vector30.hpp +0 -1464
- data/ext/boost/mpl/vector/aux_/preprocessed/plain/vector30_c.hpp +0 -238
- data/ext/boost/mpl/vector/aux_/preprocessed/plain/vector40.hpp +0 -1784
- data/ext/boost/mpl/vector/aux_/preprocessed/plain/vector40_c.hpp +0 -281
- data/ext/boost/mpl/vector/aux_/preprocessed/plain/vector50.hpp +0 -2104
- data/ext/boost/mpl/vector/aux_/preprocessed/plain/vector50_c.hpp +0 -325
- data/ext/boost/mpl/vector/aux_/preprocessed/typeof_based/vector10.hpp +0 -139
- data/ext/boost/mpl/vector/aux_/preprocessed/typeof_based/vector10_c.hpp +0 -154
- data/ext/boost/mpl/vector/aux_/preprocessed/typeof_based/vector20.hpp +0 -159
- data/ext/boost/mpl/vector/aux_/preprocessed/typeof_based/vector20_c.hpp +0 -163
- data/ext/boost/mpl/vector/aux_/preprocessed/typeof_based/vector30.hpp +0 -179
- data/ext/boost/mpl/vector/aux_/preprocessed/typeof_based/vector30_c.hpp +0 -173
- data/ext/boost/mpl/vector/aux_/preprocessed/typeof_based/vector40.hpp +0 -199
- data/ext/boost/mpl/vector/aux_/preprocessed/typeof_based/vector40_c.hpp +0 -183
- data/ext/boost/mpl/vector/aux_/preprocessed/typeof_based/vector50.hpp +0 -219
- data/ext/boost/mpl/vector/aux_/preprocessed/typeof_based/vector50_c.hpp +0 -193
- data/ext/boost/mpl/vector/aux_/push_back.hpp +0 -40
- data/ext/boost/mpl/vector/aux_/push_front.hpp +0 -40
- data/ext/boost/mpl/vector/aux_/size.hpp +0 -49
- data/ext/boost/mpl/vector/aux_/tag.hpp +0 -32
- data/ext/boost/mpl/vector/aux_/vector0.hpp +0 -52
- data/ext/boost/mpl/vector/vector0.hpp +0 -34
- data/ext/boost/mpl/vector/vector0_c.hpp +0 -31
- data/ext/boost/mpl/vector/vector10.hpp +0 -45
- data/ext/boost/mpl/vector/vector10_c.hpp +0 -46
- data/ext/boost/mpl/vector/vector20.hpp +0 -45
- data/ext/boost/mpl/vector/vector20_c.hpp +0 -46
- data/ext/boost/mpl/vector/vector30.hpp +0 -45
- data/ext/boost/mpl/vector/vector30_c.hpp +0 -47
- data/ext/boost/mpl/vector/vector40.hpp +0 -45
- data/ext/boost/mpl/vector/vector40_c.hpp +0 -46
- data/ext/boost/mpl/vector/vector50.hpp +0 -45
- data/ext/boost/mpl/vector/vector50_c.hpp +0 -46
- data/ext/boost/mpl/vector_c.hpp +0 -60
- data/ext/boost/mpl/zip_view.hpp +0 -64
- data/ext/boost/optional/optional_io.hpp +0 -84
- data/ext/boost/preprocessor/arithmetic.hpp +0 -25
- data/ext/boost/preprocessor/arithmetic/detail/div_base.hpp +0 -61
- data/ext/boost/preprocessor/arithmetic/div.hpp +0 -39
- data/ext/boost/preprocessor/arithmetic/mod.hpp +0 -39
- data/ext/boost/preprocessor/arithmetic/mul.hpp +0 -53
- data/ext/boost/preprocessor/array.hpp +0 -27
- data/ext/boost/preprocessor/array/insert.hpp +0 -55
- data/ext/boost/preprocessor/array/pop_back.hpp +0 -37
- data/ext/boost/preprocessor/array/pop_front.hpp +0 -38
- data/ext/boost/preprocessor/array/push_back.hpp +0 -33
- data/ext/boost/preprocessor/array/push_front.hpp +0 -33
- data/ext/boost/preprocessor/array/remove.hpp +0 -54
- data/ext/boost/preprocessor/array/replace.hpp +0 -49
- data/ext/boost/preprocessor/array/reverse.hpp +0 -29
- data/ext/boost/preprocessor/assert_msg.hpp +0 -17
- data/ext/boost/preprocessor/comma.hpp +0 -17
- data/ext/boost/preprocessor/comparison.hpp +0 -24
- data/ext/boost/preprocessor/comparison/equal.hpp +0 -34
- data/ext/boost/preprocessor/comparison/greater.hpp +0 -38
- data/ext/boost/preprocessor/comparison/greater_equal.hpp +0 -38
- data/ext/boost/preprocessor/comparison/less.hpp +0 -46
- data/ext/boost/preprocessor/comparison/less_equal.hpp +0 -39
- data/ext/boost/preprocessor/comparison/not_equal.hpp +0 -814
- data/ext/boost/preprocessor/config/limits.hpp +0 -29
- data/ext/boost/preprocessor/control.hpp +0 -22
- data/ext/boost/preprocessor/control/deduce_d.hpp +0 -22
- data/ext/boost/preprocessor/control/detail/dmc/while.hpp +0 -536
- data/ext/boost/preprocessor/control/detail/edg/while.hpp +0 -534
- data/ext/boost/preprocessor/control/detail/msvc/while.hpp +0 -277
- data/ext/boost/preprocessor/control/expr_if.hpp +0 -30
- data/ext/boost/preprocessor/debug.hpp +0 -18
- data/ext/boost/preprocessor/debug/assert.hpp +0 -44
- data/ext/boost/preprocessor/debug/line.hpp +0 -35
- data/ext/boost/preprocessor/dec.hpp +0 -17
- data/ext/boost/preprocessor/detail/dmc/auto_rec.hpp +0 -286
- data/ext/boost/preprocessor/detail/is_nullary.hpp +0 -30
- data/ext/boost/preprocessor/detail/is_unary.hpp +0 -30
- data/ext/boost/preprocessor/detail/null.hpp +0 -17
- data/ext/boost/preprocessor/detail/split.hpp +0 -35
- data/ext/boost/preprocessor/enum_params_with_a_default.hpp +0 -17
- data/ext/boost/preprocessor/enum_params_with_defaults.hpp +0 -17
- data/ext/boost/preprocessor/enum_shifted.hpp +0 -17
- data/ext/boost/preprocessor/enum_shifted_params.hpp +0 -17
- data/ext/boost/preprocessor/expand.hpp +0 -17
- data/ext/boost/preprocessor/expr_if.hpp +0 -17
- data/ext/boost/preprocessor/facilities.hpp +0 -21
- data/ext/boost/preprocessor/facilities/apply.hpp +0 -34
- data/ext/boost/preprocessor/facilities/expand.hpp +0 -28
- data/ext/boost/preprocessor/facilities/intercept.hpp +0 -277
- data/ext/boost/preprocessor/facilities/is_1.hpp +0 -23
- data/ext/boost/preprocessor/facilities/is_empty.hpp +0 -43
- data/ext/boost/preprocessor/facilities/is_empty_or_1.hpp +0 -30
- data/ext/boost/preprocessor/for.hpp +0 -17
- data/ext/boost/preprocessor/if.hpp +0 -17
- data/ext/boost/preprocessor/iteration.hpp +0 -19
- data/ext/boost/preprocessor/iteration/detail/bounds/lower2.hpp +0 -99
- data/ext/boost/preprocessor/iteration/detail/bounds/lower3.hpp +0 -99
- data/ext/boost/preprocessor/iteration/detail/bounds/lower4.hpp +0 -99
- data/ext/boost/preprocessor/iteration/detail/bounds/lower5.hpp +0 -99
- data/ext/boost/preprocessor/iteration/detail/bounds/upper2.hpp +0 -99
- data/ext/boost/preprocessor/iteration/detail/bounds/upper3.hpp +0 -99
- data/ext/boost/preprocessor/iteration/detail/bounds/upper4.hpp +0 -99
- data/ext/boost/preprocessor/iteration/detail/bounds/upper5.hpp +0 -99
- data/ext/boost/preprocessor/iteration/detail/finish.hpp +0 -99
- data/ext/boost/preprocessor/iteration/detail/iter/forward2.hpp +0 -1338
- data/ext/boost/preprocessor/iteration/detail/iter/forward3.hpp +0 -1338
- data/ext/boost/preprocessor/iteration/detail/iter/forward4.hpp +0 -1338
- data/ext/boost/preprocessor/iteration/detail/iter/forward5.hpp +0 -1338
- data/ext/boost/preprocessor/iteration/detail/iter/reverse1.hpp +0 -1296
- data/ext/boost/preprocessor/iteration/detail/iter/reverse2.hpp +0 -1296
- data/ext/boost/preprocessor/iteration/detail/iter/reverse3.hpp +0 -1296
- data/ext/boost/preprocessor/iteration/detail/iter/reverse4.hpp +0 -1296
- data/ext/boost/preprocessor/iteration/detail/iter/reverse5.hpp +0 -1296
- data/ext/boost/preprocessor/iteration/detail/local.hpp +0 -812
- data/ext/boost/preprocessor/iteration/detail/rlocal.hpp +0 -782
- data/ext/boost/preprocessor/iteration/detail/self.hpp +0 -21
- data/ext/boost/preprocessor/iteration/detail/start.hpp +0 -99
- data/ext/boost/preprocessor/iteration/local.hpp +0 -26
- data/ext/boost/preprocessor/iteration/self.hpp +0 -19
- data/ext/boost/preprocessor/library.hpp +0 -34
- data/ext/boost/preprocessor/limits.hpp +0 -17
- data/ext/boost/preprocessor/list.hpp +0 -35
- data/ext/boost/preprocessor/list/at.hpp +0 -39
- data/ext/boost/preprocessor/list/cat.hpp +0 -42
- data/ext/boost/preprocessor/list/detail/dmc/fold_left.hpp +0 -279
- data/ext/boost/preprocessor/list/detail/edg/fold_left.hpp +0 -536
- data/ext/boost/preprocessor/list/detail/edg/fold_right.hpp +0 -794
- data/ext/boost/preprocessor/list/enum.hpp +0 -41
- data/ext/boost/preprocessor/list/filter.hpp +0 -54
- data/ext/boost/preprocessor/list/first_n.hpp +0 -58
- data/ext/boost/preprocessor/list/for_each.hpp +0 -49
- data/ext/boost/preprocessor/list/for_each_product.hpp +0 -141
- data/ext/boost/preprocessor/list/rest_n.hpp +0 -55
- data/ext/boost/preprocessor/list/size.hpp +0 -58
- data/ext/boost/preprocessor/list/to_tuple.hpp +0 -38
- data/ext/boost/preprocessor/logical.hpp +0 -29
- data/ext/boost/preprocessor/logical/bitnor.hpp +0 -38
- data/ext/boost/preprocessor/logical/bitor.hpp +0 -38
- data/ext/boost/preprocessor/logical/bitxor.hpp +0 -38
- data/ext/boost/preprocessor/logical/nor.hpp +0 -30
- data/ext/boost/preprocessor/logical/not.hpp +0 -30
- data/ext/boost/preprocessor/logical/or.hpp +0 -30
- data/ext/boost/preprocessor/logical/xor.hpp +0 -30
- data/ext/boost/preprocessor/max.hpp +0 -17
- data/ext/boost/preprocessor/min.hpp +0 -17
- data/ext/boost/preprocessor/punctuation.hpp +0 -20
- data/ext/boost/preprocessor/punctuation/paren.hpp +0 -23
- data/ext/boost/preprocessor/punctuation/paren_if.hpp +0 -38
- data/ext/boost/preprocessor/repeat_2nd.hpp +0 -17
- data/ext/boost/preprocessor/repeat_3rd.hpp +0 -17
- data/ext/boost/preprocessor/repeat_from_to.hpp +0 -17
- data/ext/boost/preprocessor/repeat_from_to_2nd.hpp +0 -17
- data/ext/boost/preprocessor/repeat_from_to_3rd.hpp +0 -17
- data/ext/boost/preprocessor/repetition.hpp +0 -32
- data/ext/boost/preprocessor/repetition/deduce_r.hpp +0 -22
- data/ext/boost/preprocessor/repetition/deduce_z.hpp +0 -22
- data/ext/boost/preprocessor/repetition/detail/dmc/for.hpp +0 -536
- data/ext/boost/preprocessor/repetition/detail/edg/for.hpp +0 -534
- data/ext/boost/preprocessor/repetition/detail/msvc/for.hpp +0 -277
- data/ext/boost/preprocessor/repetition/enum_params_with_a_default.hpp +0 -25
- data/ext/boost/preprocessor/repetition/enum_params_with_defaults.hpp +0 -24
- data/ext/boost/preprocessor/repetition/enum_shifted.hpp +0 -68
- data/ext/boost/preprocessor/repetition/enum_shifted_binary_params.hpp +0 -51
- data/ext/boost/preprocessor/repetition/enum_shifted_params.hpp +0 -44
- data/ext/boost/preprocessor/repetition/enum_trailing.hpp +0 -63
- data/ext/boost/preprocessor/repetition/enum_trailing_binary_params.hpp +0 -53
- data/ext/boost/preprocessor/repetition/enum_trailing_params.hpp +0 -38
- data/ext/boost/preprocessor/selection.hpp +0 -18
- data/ext/boost/preprocessor/selection/max.hpp +0 -39
- data/ext/boost/preprocessor/selection/min.hpp +0 -39
- data/ext/boost/preprocessor/seq.hpp +0 -41
- data/ext/boost/preprocessor/seq/cat.hpp +0 -48
- data/ext/boost/preprocessor/seq/detail/split.hpp +0 -284
- data/ext/boost/preprocessor/seq/filter.hpp +0 -54
- data/ext/boost/preprocessor/seq/first_n.hpp +0 -30
- data/ext/boost/preprocessor/seq/fold_left.hpp +0 -1070
- data/ext/boost/preprocessor/seq/fold_right.hpp +0 -288
- data/ext/boost/preprocessor/seq/for_each.hpp +0 -60
- data/ext/boost/preprocessor/seq/for_each_product.hpp +0 -126
- data/ext/boost/preprocessor/seq/insert.hpp +0 -28
- data/ext/boost/preprocessor/seq/pop_back.hpp +0 -29
- data/ext/boost/preprocessor/seq/pop_front.hpp +0 -27
- data/ext/boost/preprocessor/seq/push_back.hpp +0 -19
- data/ext/boost/preprocessor/seq/push_front.hpp +0 -19
- data/ext/boost/preprocessor/seq/remove.hpp +0 -29
- data/ext/boost/preprocessor/seq/replace.hpp +0 -29
- data/ext/boost/preprocessor/seq/rest_n.hpp +0 -30
- data/ext/boost/preprocessor/seq/reverse.hpp +0 -39
- data/ext/boost/preprocessor/seq/subseq.hpp +0 -28
- data/ext/boost/preprocessor/seq/to_array.hpp +0 -28
- data/ext/boost/preprocessor/seq/to_tuple.hpp +0 -27
- data/ext/boost/preprocessor/seq/transform.hpp +0 -48
- data/ext/boost/preprocessor/slot.hpp +0 -17
- data/ext/boost/preprocessor/slot/counter.hpp +0 -25
- data/ext/boost/preprocessor/slot/detail/counter.hpp +0 -269
- data/ext/boost/preprocessor/slot/detail/slot1.hpp +0 -267
- data/ext/boost/preprocessor/slot/detail/slot2.hpp +0 -267
- data/ext/boost/preprocessor/slot/detail/slot3.hpp +0 -267
- data/ext/boost/preprocessor/slot/detail/slot4.hpp +0 -267
- data/ext/boost/preprocessor/slot/detail/slot5.hpp +0 -267
- data/ext/boost/preprocessor/tuple.hpp +0 -24
- data/ext/boost/preprocessor/tuple/reverse.hpp +0 -62
- data/ext/boost/preprocessor/tuple/to_seq.hpp +0 -60
- data/ext/boost/preprocessor/while.hpp +0 -17
- data/ext/boost/preprocessor/wstringize.hpp +0 -29
- data/ext/boost/src/barrier.cpp +0 -42
- data/ext/boost/src/condition.cpp +0 -692
- data/ext/boost/src/exceptions.cpp +0 -147
- data/ext/boost/src/mutex.cpp +0 -561
- data/ext/boost/src/mutex.inl +0 -128
- data/ext/boost/src/once.cpp +0 -213
- data/ext/boost/src/recursive_mutex.cpp +0 -1040
- data/ext/boost/src/thread.cpp +0 -371
- data/ext/boost/src/timeconv.inl +0 -130
- data/ext/boost/src/tss.cpp +0 -251
- data/ext/boost/src/tss_hooks.cpp +0 -212
- data/ext/boost/src/tss_pe.cpp +0 -179
- data/ext/boost/src/xtime.cpp +0 -158
- data/ext/boost/thread/barrier.hpp +0 -44
- data/ext/boost/thread/detail/force_cast.hpp +0 -39
- data/ext/boost/thread/detail/lock.hpp +0 -209
- data/ext/boost/thread/detail/read_write_lock.hpp +0 -1106
- data/ext/boost/thread/detail/singleton.hpp +0 -59
- data/ext/boost/thread/detail/tss_hooks.hpp +0 -78
- data/ext/boost/type_traits/add_cv.hpp +0 -48
- data/ext/boost/type_traits/add_volatile.hpp +0 -47
- data/ext/boost/type_traits/aligned_storage.hpp +0 -13
- data/ext/boost/type_traits/alignment_traits.hpp +0 -15
- data/ext/boost/type_traits/arithmetic_traits.hpp +0 -20
- data/ext/boost/type_traits/array_traits.hpp +0 -15
- data/ext/boost/type_traits/cv_traits.hpp +0 -24
- data/ext/boost/type_traits/decay.hpp +0 -44
- data/ext/boost/type_traits/detail/is_function_ptr_tester.hpp +0 -654
- data/ext/boost/type_traits/detail/is_mem_fun_pointer_tester.hpp +0 -2759
- data/ext/boost/type_traits/detail/wrap.hpp +0 -18
- data/ext/boost/type_traits/extent.hpp +0 -134
- data/ext/boost/type_traits/has_nothrow_assign.hpp +0 -38
- data/ext/boost/type_traits/has_nothrow_constructor.hpp +0 -38
- data/ext/boost/type_traits/has_nothrow_destructor.hpp +0 -25
- data/ext/boost/type_traits/has_trivial_assign.hpp +0 -50
- data/ext/boost/type_traits/has_trivial_constructor.hpp +0 -42
- data/ext/boost/type_traits/has_trivial_destructor.hpp +0 -42
- data/ext/boost/type_traits/has_virtual_destructor.hpp +0 -25
- data/ext/boost/type_traits/is_base_and_derived.hpp +0 -223
- data/ext/boost/type_traits/is_base_of.hpp +0 -40
- data/ext/boost/type_traits/is_compound.hpp +0 -40
- data/ext/boost/type_traits/is_empty.hpp +0 -211
- data/ext/boost/type_traits/is_floating_point.hpp +0 -27
- data/ext/boost/type_traits/is_fundamental.hpp +0 -41
- data/ext/boost/type_traits/is_member_object_pointer.hpp +0 -46
- data/ext/boost/type_traits/is_object.hpp +0 -53
- data/ext/boost/type_traits/is_polymorphic.hpp +0 -102
- data/ext/boost/type_traits/is_signed.hpp +0 -117
- data/ext/boost/type_traits/is_stateless.hpp +0 -48
- data/ext/boost/type_traits/is_unsigned.hpp +0 -114
- data/ext/boost/type_traits/msvc/remove_all_extents.hpp +0 -47
- data/ext/boost/type_traits/msvc/remove_bounds.hpp +0 -43
- data/ext/boost/type_traits/msvc/remove_const.hpp +0 -143
- data/ext/boost/type_traits/msvc/remove_cv.hpp +0 -190
- data/ext/boost/type_traits/msvc/remove_extent.hpp +0 -43
- data/ext/boost/type_traits/msvc/remove_pointer.hpp +0 -42
- data/ext/boost/type_traits/msvc/remove_reference.hpp +0 -42
- data/ext/boost/type_traits/msvc/remove_volatile.hpp +0 -143
- data/ext/boost/type_traits/msvc/typeof.hpp +0 -50
- data/ext/boost/type_traits/object_traits.hpp +0 -33
- data/ext/boost/type_traits/rank.hpp +0 -81
- data/ext/boost/type_traits/reference_traits.hpp +0 -15
- data/ext/boost/type_traits/remove_all_extents.hpp +0 -48
- data/ext/boost/type_traits/remove_bounds.hpp +0 -48
- data/ext/boost/type_traits/remove_extent.hpp +0 -48
- data/ext/boost/type_traits/remove_volatile.hpp +0 -77
- data/ext/boost/type_traits/same_traits.hpp +0 -15
- data/ext/boost/type_traits/transform_traits.hpp +0 -21
- data/ext/boost/type_traits/transform_traits_spec.hpp +0 -14
- data/ext/boost/utility/in_place_factory.hpp +0 -58
- data/ext/boost/utility/result_of.hpp +0 -66
- data/ext/boost/utility/typed_in_place_factory.hpp +0 -57
- data/ext/boost/utility/value_init.hpp +0 -77
- data/lib/passenger/application_spawner.rb +0 -329
- data/lib/passenger/cgi_fixed.rb +0 -66
- data/lib/passenger/framework_spawner.rb +0 -351
- data/lib/passenger/request_handler.rb +0 -333
- data/lib/passenger/templates/apache_must_be_compiled_with_prefork_mpm.txt.erb +0 -8
- data/test/abstract_server_spec.rb +0 -17
- data/test/application_spawner_spec.rb +0 -80
- data/test/application_spec.rb +0 -25
- data/test/framework_spawner_spec.rb +0 -101
- data/test/message_channel_spec.rb +0 -171
- data/test/minimal_spawner_spec.rb +0 -19
- data/test/spawn_manager_spec.rb +0 -107
- data/test/spawn_server_spec.rb +0 -25
- data/test/spawner_error_handling_spec.rb +0 -35
- data/test/spawner_privilege_lowering_spec.rb +0 -72
- data/test/stub/broken-railsapp/config/environment.rb +0 -2
- data/test/stub/broken-railsapp2/config/environment.rb +0 -3
- data/test/stub/broken-railsapp3/config/environment.rb +0 -4
- data/test/stub/broken-railsapp4/config/environment.rb +0 -1
- data/test/stub/broken-railsapp5/config/environment.rb +0 -1
- data/test/stub/broken-railsapp5/vendor/rails/actionpack/lib/action_controller.rb +0 -0
- data/test/stub/broken-railsapp5/vendor/rails/activerecord/lib/active_record.rb +0 -0
- data/test/stub/broken-railsapp5/vendor/rails/railties/lib/initializer.rb +0 -9
- data/test/stub/mycook/app/controllers/welcome_controller.rb +0 -23
- data/test/stub/railsapp-without-version-spec/app/controllers/foo_controller.rb +0 -5
- data/test/stub/railsapp-without-version-spec/config/environment.rb +0 -58
- data/test/support/apache2_config_writer.rb +0 -44
@@ -4,551 +4,710 @@
|
|
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>
|
7
|
-
<!-- Generated by Doxygen 1.5.
|
8
|
-
<div class="
|
9
|
-
<
|
10
|
-
<
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
</
|
7
|
+
<!-- Generated by Doxygen 1.5.5 -->
|
8
|
+
<div class="navigation" id="top">
|
9
|
+
<div class="tabs">
|
10
|
+
<ul>
|
11
|
+
<li><a href="main.html"><span>Main Page</span></a></li>
|
12
|
+
<li><a href="modules.html"><span>Modules</span></a></li>
|
13
|
+
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
|
14
|
+
<li><a href="annotated.html"><span>Classes</span></a></li>
|
15
|
+
<li class="current"><a href="files.html"><span>Files</span></a></li>
|
16
|
+
</ul>
|
17
|
+
</div>
|
16
18
|
<h1>StandardApplicationPool.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
|
17
19
|
<a name="l00002"></a>00002 <span class="comment"> * Phusion Passenger - http://www.modrails.com/</span>
|
18
20
|
<a name="l00003"></a>00003 <span class="comment"> * Copyright (C) 2008 Phusion</span>
|
19
21
|
<a name="l00004"></a>00004 <span class="comment"> *</span>
|
20
|
-
<a name="l00005"></a>00005 <span class="comment"> *
|
21
|
-
<a name="l00006"></a>00006 <span class="comment">
|
22
|
-
<a name="l00007"></a>00007 <span class="comment"> *
|
23
|
-
<a name="l00008"></a>00008 <span class="comment">
|
24
|
-
<a name="l00009"></a>00009 <span class="comment"> *
|
25
|
-
<a name="l00010"></a>00010 <span class="comment">
|
26
|
-
<a name="l00011"></a>00011 <span class="comment"> *
|
27
|
-
<a name="l00012"></a>00012 <span class="comment"> *
|
28
|
-
<a name="l00013"></a>00013 <span class="comment">
|
29
|
-
<a name="l00014"></a>00014 <span class="comment"> *
|
30
|
-
<a name="l00015"></a>00015 <span class="comment">
|
31
|
-
<a name="l00016"></a>00016 <span class="comment"> *
|
32
|
-
<a name="l00017"></a>00017 <span class="comment">
|
33
|
-
<a name="l00018"></a>00018 <span class="
|
34
|
-
<a name="l00019"></a>00019 <span class="
|
35
|
-
<a name="l00020"></a>00020 <span class="preprocessor"
|
36
|
-
<a name="l00021"></a>00021 <span class="preprocessor">#
|
37
|
-
<a name="l00022"></a>00022 <span class="preprocessor"
|
38
|
-
<a name="l00023"></a>00023 <span class="preprocessor">#include <boost/
|
39
|
-
<a name="l00024"></a>00024 <span class="preprocessor">#include <boost/
|
40
|
-
<a name="l00025"></a>00025 <span class="preprocessor">#include <boost/thread
|
22
|
+
<a name="l00005"></a>00005 <span class="comment"> * Phusion Passenger is a trademark of Hongli Lai & Ninh Bui.</span>
|
23
|
+
<a name="l00006"></a>00006 <span class="comment"> *</span>
|
24
|
+
<a name="l00007"></a>00007 <span class="comment"> * This program is free software; you can redistribute it and/or modify</span>
|
25
|
+
<a name="l00008"></a>00008 <span class="comment"> * it under the terms of the GNU General Public License as published by</span>
|
26
|
+
<a name="l00009"></a>00009 <span class="comment"> * the Free Software Foundation; version 2 of the License.</span>
|
27
|
+
<a name="l00010"></a>00010 <span class="comment"> *</span>
|
28
|
+
<a name="l00011"></a>00011 <span class="comment"> * This program is distributed in the hope that it will be useful,</span>
|
29
|
+
<a name="l00012"></a>00012 <span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
|
30
|
+
<a name="l00013"></a>00013 <span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span>
|
31
|
+
<a name="l00014"></a>00014 <span class="comment"> * GNU General Public License for more details.</span>
|
32
|
+
<a name="l00015"></a>00015 <span class="comment"> *</span>
|
33
|
+
<a name="l00016"></a>00016 <span class="comment"> * You should have received a copy of the GNU General Public License along</span>
|
34
|
+
<a name="l00017"></a>00017 <span class="comment"> * with this program; if not, write to the Free Software Foundation, Inc.,</span>
|
35
|
+
<a name="l00018"></a>00018 <span class="comment"> * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.</span>
|
36
|
+
<a name="l00019"></a>00019 <span class="comment"> */</span>
|
37
|
+
<a name="l00020"></a>00020 <span class="preprocessor">#ifndef _PASSENGER_STANDARD_APPLICATION_POOL_H_</span>
|
38
|
+
<a name="l00021"></a>00021 <span class="preprocessor"></span><span class="preprocessor">#define _PASSENGER_STANDARD_APPLICATION_POOL_H_</span>
|
39
|
+
<a name="l00022"></a>00022 <span class="preprocessor"></span>
|
40
|
+
<a name="l00023"></a>00023 <span class="preprocessor">#include <boost/shared_ptr.hpp></span>
|
41
|
+
<a name="l00024"></a>00024 <span class="preprocessor">#include <boost/weak_ptr.hpp></span>
|
42
|
+
<a name="l00025"></a>00025 <span class="preprocessor">#include <boost/thread.hpp></span>
|
41
43
|
<a name="l00026"></a>00026 <span class="preprocessor">#include <boost/bind.hpp></span>
|
42
|
-
<a name="l00027"></a>00027
|
43
|
-
<a name="l00028"></a>00028 <span class="preprocessor">#include <
|
44
|
-
<a name="l00029"></a>00029
|
45
|
-
<a name="l00030"></a>00030 <span class="preprocessor">#include <
|
46
|
-
<a name="l00031"></a>00031
|
47
|
-
<a name="l00032"></a>00032 <span class="preprocessor">#include <
|
48
|
-
<a name="l00033"></a>00033 <span class="preprocessor">#include <
|
49
|
-
<a name="l00034"></a>00034
|
50
|
-
<a name="l00035"></a>00035 <span class="preprocessor">#include <
|
51
|
-
<a name="l00036"></a>00036 <span class="preprocessor">#include <
|
52
|
-
<a name="l00037"></a>00037 <span class="preprocessor">#
|
53
|
-
<a name="l00038"></a>00038 <span class="preprocessor"
|
54
|
-
<a name="l00039"></a>00039 <span class="preprocessor">#
|
55
|
-
<a name="l00040"></a>00040 <span class="preprocessor"
|
56
|
-
<a name="l00041"></a>00041 <span class="preprocessor">#
|
57
|
-
<a name="l00042"></a>00042 <span class="preprocessor"
|
58
|
-
<a name="l00043"></a>00043 <span class="preprocessor">#
|
59
|
-
<a name="l00044"></a>00044 <span class="preprocessor"></span
|
60
|
-
<a name="l00045"></a>00045 <span class="preprocessor">#
|
61
|
-
<a name="l00046"></a>00046 <span class="preprocessor"
|
62
|
-
<a name="l00047"></a>00047 <span class="preprocessor">#
|
63
|
-
<a name="l00048"></a>00048 <span class="preprocessor"
|
64
|
-
<a name="l00049"></a>00049 <span class="
|
65
|
-
<a name="l00050"></a>00050
|
66
|
-
<a name="l00051"></a>00051 <span class="
|
67
|
-
<a name="l00052"></a>00052 <span class="
|
68
|
-
<a name="l00053"></a>00053
|
69
|
-
<a name="l00054"></a>00054 <span class="keyword">
|
44
|
+
<a name="l00027"></a>00027 <span class="preprocessor">#include <boost/date_time/microsec_time_clock.hpp></span>
|
45
|
+
<a name="l00028"></a>00028 <span class="preprocessor">#include <boost/date_time/posix_time/posix_time.hpp></span>
|
46
|
+
<a name="l00029"></a>00029
|
47
|
+
<a name="l00030"></a>00030 <span class="preprocessor">#include <string></span>
|
48
|
+
<a name="l00031"></a>00031 <span class="preprocessor">#include <sstream></span>
|
49
|
+
<a name="l00032"></a>00032 <span class="preprocessor">#include <map></span>
|
50
|
+
<a name="l00033"></a>00033 <span class="preprocessor">#include <list></span>
|
51
|
+
<a name="l00034"></a>00034
|
52
|
+
<a name="l00035"></a>00035 <span class="preprocessor">#include <sys/types.h></span>
|
53
|
+
<a name="l00036"></a>00036 <span class="preprocessor">#include <sys/stat.h></span>
|
54
|
+
<a name="l00037"></a>00037 <span class="preprocessor">#include <stdio.h></span>
|
55
|
+
<a name="l00038"></a>00038 <span class="preprocessor">#include <unistd.h></span>
|
56
|
+
<a name="l00039"></a>00039 <span class="preprocessor">#include <ctime></span>
|
57
|
+
<a name="l00040"></a>00040 <span class="preprocessor">#include <cerrno></span>
|
58
|
+
<a name="l00041"></a>00041 <span class="preprocessor">#ifdef TESTING_APPLICATION_POOL</span>
|
59
|
+
<a name="l00042"></a>00042 <span class="preprocessor"></span><span class="preprocessor"> #include <cstdlib></span>
|
60
|
+
<a name="l00043"></a>00043 <span class="preprocessor">#endif</span>
|
61
|
+
<a name="l00044"></a>00044 <span class="preprocessor"></span>
|
62
|
+
<a name="l00045"></a>00045 <span class="preprocessor">#include "ApplicationPool.h"</span>
|
63
|
+
<a name="l00046"></a>00046 <span class="preprocessor">#include "Logging.h"</span>
|
64
|
+
<a name="l00047"></a>00047 <span class="preprocessor">#include "System.h"</span>
|
65
|
+
<a name="l00048"></a>00048 <span class="preprocessor">#ifdef PASSENGER_USE_DUMMY_SPAWN_MANAGER</span>
|
66
|
+
<a name="l00049"></a>00049 <span class="preprocessor"></span><span class="preprocessor"> #include "DummySpawnManager.h"</span>
|
67
|
+
<a name="l00050"></a>00050 <span class="preprocessor">#else</span>
|
68
|
+
<a name="l00051"></a>00051 <span class="preprocessor"></span><span class="preprocessor"> #include "SpawnManager.h"</span>
|
69
|
+
<a name="l00052"></a>00052 <span class="preprocessor">#endif</span>
|
70
|
+
<a name="l00053"></a>00053 <span class="preprocessor"></span>
|
71
|
+
<a name="l00054"></a>00054 <span class="keyword">namespace </span>Passenger {
|
70
72
|
<a name="l00055"></a>00055
|
71
|
-
<a name="l00056"></a>00056 <span class="
|
72
|
-
<a name="l00057"></a>00057 <span class="
|
73
|
-
<a name="l00058"></a>00058
|
74
|
-
<a name="l00059"></a>00059 <span class="
|
75
|
-
<a name="l00060"></a>00060
|
76
|
-
<a name="l00061"></a>00061 <span class="comment"
|
77
|
-
<a name="l00062"></a>00062 <span class="comment"
|
78
|
-
<a name="l00063"></a>00063 <span class="comment"
|
79
|
-
<a name="l00064"></a>00064 <span class="comment"> *
|
73
|
+
<a name="l00056"></a>00056 <span class="keyword">using namespace </span>std;
|
74
|
+
<a name="l00057"></a>00057 <span class="keyword">using namespace </span>boost;
|
75
|
+
<a name="l00058"></a>00058
|
76
|
+
<a name="l00059"></a>00059 <span class="keyword">class </span>ApplicationPoolServer;
|
77
|
+
<a name="l00060"></a>00060
|
78
|
+
<a name="l00061"></a>00061 <span class="comment">/****************************************************************</span>
|
79
|
+
<a name="l00062"></a>00062 <span class="comment"> *</span>
|
80
|
+
<a name="l00063"></a>00063 <span class="comment"> * See "doc/ApplicationPool algorithm.txt" for a more readable</span>
|
81
|
+
<a name="l00064"></a>00064 <span class="comment"> * and detailed description of the algorithm implemented here.</span>
|
80
82
|
<a name="l00065"></a>00065 <span class="comment"> *</span>
|
81
|
-
<a name="l00066"></a>00066 <span class="comment">
|
82
|
-
<a name="l00067"></a>00067 <span class="comment"
|
83
|
-
<a name="l00068"></a>00068 <span class="comment"
|
84
|
-
<a name="l00069"></a>00069 <span class="comment">
|
85
|
-
<a name="l00070"></a>00070 <span class="comment">
|
86
|
-
<a name="l00071"></a>00071 <span class="comment"> * The
|
87
|
-
<a name="l00072"></a>00072 <span class="comment"> *
|
88
|
-
<a name="l00073"></a>00073 <span class="comment"> *
|
89
|
-
<a name="l00074"></a>00074 <span class="comment">
|
90
|
-
<a name="l00075"></a>00075 <span class="comment"> *
|
91
|
-
<a name="l00076"></a>00076 <span class="comment"> *
|
92
|
-
<a name="l00077"></a>00077 <span class="comment"> *
|
93
|
-
<a name="l00078"></a>00078 <span class="comment"> *
|
94
|
-
<a name="l00079"></a>00079 <span class="comment">
|
95
|
-
<a name="l00080"></a>00080 <span class="comment"> *
|
96
|
-
<a name="l00081"></a>00081 <span class="comment"> * StandardApplicationPool
|
97
|
-
<a name="l00082"></a>00082 <span class="comment">
|
98
|
-
<a name="l00083"></a>00083 <span class="comment"> *
|
83
|
+
<a name="l00066"></a>00066 <span class="comment"> ****************************************************************/</span>
|
84
|
+
<a name="l00067"></a>00067 <span class="comment"></span>
|
85
|
+
<a name="l00068"></a>00068 <span class="comment">/**</span>
|
86
|
+
<a name="l00069"></a>00069 <span class="comment"> * A standard implementation of ApplicationPool for single-process environments.</span>
|
87
|
+
<a name="l00070"></a>00070 <span class="comment"> *</span>
|
88
|
+
<a name="l00071"></a>00071 <span class="comment"> * The environment may or may not be multithreaded - StandardApplicationPool is completely</span>
|
89
|
+
<a name="l00072"></a>00072 <span class="comment"> * thread-safe. Apache with the threading MPM is an example of a multithreaded single-process</span>
|
90
|
+
<a name="l00073"></a>00073 <span class="comment"> * environment.</span>
|
91
|
+
<a name="l00074"></a>00074 <span class="comment"> *</span>
|
92
|
+
<a name="l00075"></a>00075 <span class="comment"> * This class is unusable in multi-process environments such as Apache with the prefork MPM.</span>
|
93
|
+
<a name="l00076"></a>00076 <span class="comment"> * The reasons are as follows:</span>
|
94
|
+
<a name="l00077"></a>00077 <span class="comment"> * - StandardApplicationPool uses threads internally. Because threads disappear after a fork(),</span>
|
95
|
+
<a name="l00078"></a>00078 <span class="comment"> * a StandardApplicationPool object will become unusable after a fork().</span>
|
96
|
+
<a name="l00079"></a>00079 <span class="comment"> * - StandardApplicationPool stores its internal cache on the heap. Different processes</span>
|
97
|
+
<a name="l00080"></a>00080 <span class="comment"> * cannot share their heaps, so they will not be able to access each others' pool cache.</span>
|
98
|
+
<a name="l00081"></a>00081 <span class="comment"> * - StandardApplicationPool has a connection to the spawn server. If there are multiple</span>
|
99
|
+
<a name="l00082"></a>00082 <span class="comment"> * processes, and they all use the spawn servers's connection at the same time without</span>
|
100
|
+
<a name="l00083"></a>00083 <span class="comment"> * some sort of synchronization, then bad things will happen.</span>
|
99
101
|
<a name="l00084"></a>00084 <span class="comment"> *</span>
|
100
|
-
<a name="l00085"></a>00085 <span class="comment"> *
|
101
|
-
<a name="l00086"></a>00086 <span class="comment">
|
102
|
-
<a name="l00087"></a
|
103
|
-
<a name="l00088"></a>00088 <span class="
|
104
|
-
<a name="l00089"></a>00089
|
105
|
-
<a name="l00090"></a>00090
|
106
|
-
<a name="l00091"></a>00091
|
107
|
-
<a name="l00092"></a>00092
|
108
|
-
<a name="l00093"></a>00093
|
109
|
-
<a name="l00094"></a>00094
|
110
|
-
<a name="l00095"></a>00095 <span class="keyword">
|
111
|
-
<a name="l00096"></a>00096 <span class="keyword">
|
112
|
-
<a name="l00097"></a>00097 <span class="keyword">
|
113
|
-
<a name="l00098"></a>00098 <span class="keyword">
|
114
|
-
<a name="l00099"></a>00099
|
115
|
-
<a name="l00100"></a>00100
|
116
|
-
<a name="l00101"></a>00101
|
117
|
-
<a name="l00102"></a>00102
|
118
|
-
<a name="l00103"></a>00103
|
119
|
-
<a name="l00104"></a>00104
|
120
|
-
<a name="l00105"></a>00105
|
121
|
-
<a name="l00106"></a>00106
|
122
|
-
<a name="l00107"></a>00107
|
123
|
-
<a name="l00108"></a>00108
|
124
|
-
<a name="l00109"></a>00109
|
125
|
-
<a name="l00110"></a>00110
|
126
|
-
<a name="l00111"></a>00111
|
127
|
-
<a name="l00112"></a>00112
|
128
|
-
<a name="l00113"></a>00113
|
129
|
-
<a name="l00114"></a>00114
|
130
|
-
<a name="l00115"></a>00115
|
131
|
-
<a name="l00116"></a>00116
|
132
|
-
<a name="l00117"></a>00117
|
133
|
-
<a name="l00118"></a>00118
|
134
|
-
<a name="l00119"></a>00119
|
135
|
-
<a name="l00120"></a>00120
|
136
|
-
<a name="l00121"></a>00121
|
137
|
-
<a name="l00122"></a>00122
|
138
|
-
<a name="l00123"></a>00123
|
139
|
-
<a name="l00124"></a>00124
|
140
|
-
<a name="l00125"></a>00125
|
141
|
-
<a name="l00126"></a>00126
|
142
|
-
<a name="l00127"></a>00127
|
143
|
-
<a name="l00128"></a>00128
|
144
|
-
<a name="l00129"></a>00129
|
145
|
-
<a name="l00130"></a>00130
|
146
|
-
<a name="l00131"></a>00131
|
147
|
-
<a name="l00132"></a>00132
|
148
|
-
<a name="l00133"></a>00133
|
149
|
-
<a name="l00134"></a>00134
|
150
|
-
<a name="l00135"></a>00135
|
151
|
-
<a name="l00136"></a>00136
|
152
|
-
<a name="l00137"></a>00137
|
153
|
-
<a name="l00138"></a>00138
|
154
|
-
<a name="l00139"></a>00139
|
155
|
-
<a name="l00140"></a>00140
|
156
|
-
<a name="l00141"></a>00141
|
157
|
-
<a name="l00142"></a>00142
|
158
|
-
<a name="l00143"></a>00143
|
159
|
-
<a name="l00144"></a>00144
|
160
|
-
<a name="l00145"></a>00145
|
161
|
-
<a name="l00146"></a>00146
|
162
|
-
<a name="l00147"></a>00147
|
163
|
-
<a name="l00148"></a>00148
|
164
|
-
<a name="l00149"></a>00149
|
165
|
-
<a name="l00150"></a>00150
|
166
|
-
<a name="l00151"></a>00151
|
167
|
-
<a name="l00152"></a>00152
|
168
|
-
<a name="l00153"></a>00153
|
169
|
-
<a name="l00154"></a>00154
|
170
|
-
<a name="l00155"></a>00155
|
171
|
-
<a name="l00156"></a>00156
|
172
|
-
<a name="l00157"></a>00157
|
173
|
-
<a name="l00158"></a>00158
|
174
|
-
<a name="l00159"></a>00159
|
175
|
-
<a name="l00160"></a>00160
|
176
|
-
<a name="l00161"></a>00161
|
177
|
-
<a name="l00162"></a>00162
|
178
|
-
<a name="l00163"></a>00163
|
179
|
-
<a name="l00164"></a>00164
|
180
|
-
<a name="l00165"></a>00165
|
181
|
-
<a name="l00166"></a>00166
|
182
|
-
<a name="l00167"></a>00167
|
183
|
-
<a name="l00168"></a>00168
|
184
|
-
<a name="l00169"></a>00169
|
185
|
-
<a name="l00170"></a>00170
|
186
|
-
<a name="l00171"></a>00171
|
187
|
-
<a name="l00172"></a>00172
|
188
|
-
<a name="l00173"></a>00173
|
189
|
-
<a name="l00174"></a>00174
|
190
|
-
<a name="l00175"></a>00175
|
191
|
-
<a name="l00176"></a>00176
|
192
|
-
<a name="l00177"></a>00177
|
193
|
-
<a name="l00178"></a>00178 <span class="keywordtype">
|
194
|
-
<a name="l00179"></a>00179
|
195
|
-
<a name="l00180"></a>00180
|
196
|
-
<a name="l00181"></a>00181
|
197
|
-
<a name="l00182"></a>00182
|
198
|
-
<a name="l00183"></a>00183
|
199
|
-
<a name="l00184"></a>00184
|
200
|
-
<a name="l00185"></a>00185
|
201
|
-
<a name="l00186"></a>00186
|
202
|
-
<a name="l00187"></a>00187
|
203
|
-
<a name="l00188"></a>00188
|
204
|
-
<a name="l00189"></a>00189
|
205
|
-
<a name="l00190"></a>00190 <span class="
|
206
|
-
<a name="l00191"></a>00191
|
207
|
-
<a name="l00192"></a>00192
|
208
|
-
<a name="l00193"></a>00193
|
209
|
-
<a name="l00194"></a>00194
|
210
|
-
<a name="l00195"></a>00195
|
211
|
-
<a name="l00196"></a>00196
|
212
|
-
<a name="l00197"></a>00197
|
213
|
-
<a name="l00198"></a>00198 <span class="
|
214
|
-
<a name="l00199"></a>00199 <span class="preprocessor"
|
215
|
-
<a name="l00200"></a>00200
|
216
|
-
<a name="l00201"></a>00201
|
217
|
-
<a name="l00202"></a>00202
|
218
|
-
<a name="l00203"></a>00203
|
219
|
-
<a name="l00204"></a>00204
|
220
|
-
<a name="l00205"></a>00205
|
221
|
-
<a name="l00206"></a>00206
|
222
|
-
<a name="l00207"></a>00207
|
223
|
-
<a name="l00208"></a>00208
|
224
|
-
<a name="l00209"></a>00209
|
225
|
-
<a name="l00210"></a>00210
|
226
|
-
<a name="l00211"></a>00211
|
227
|
-
<a name="l00212"></a>00212
|
228
|
-
<a name="l00213"></a>00213
|
229
|
-
<a name="l00214"></a>00214
|
230
|
-
<a name="l00215"></a>00215
|
231
|
-
<a name="l00216"></a>00216
|
232
|
-
<a name="l00217"></a>00217
|
233
|
-
<a name="l00218"></a>00218
|
234
|
-
<a name="l00219"></a>00219
|
235
|
-
<a name="l00220"></a>00220
|
236
|
-
<a name="l00221"></a>00221
|
237
|
-
<a name="l00222"></a>00222
|
238
|
-
<a name="l00223"></a>00223
|
239
|
-
<a name="l00224"></a>00224
|
240
|
-
<a name="l00225"></a>00225
|
241
|
-
<a name="l00226"></a>00226
|
242
|
-
<a name="l00227"></a>00227
|
243
|
-
<a name="l00228"></a>00228
|
244
|
-
<a name="l00229"></a>00229
|
245
|
-
<a name="l00230"></a>00230
|
246
|
-
<a name="l00231"></a>00231
|
247
|
-
<a name="l00232"></a>00232
|
248
|
-
<a name="l00233"></a>00233
|
249
|
-
<a name="l00234"></a>00234
|
250
|
-
<a name="l00235"></a>00235
|
251
|
-
<a name="l00236"></a>00236
|
252
|
-
<a name="l00237"></a>00237
|
253
|
-
<a name="l00238"></a>00238
|
254
|
-
<a name="l00239"></a>00239
|
255
|
-
<a name="l00240"></a>00240
|
256
|
-
<a name="l00241"></a>00241
|
257
|
-
<a name="l00242"></a>00242
|
258
|
-
<a name="l00243"></a>00243
|
259
|
-
<a name="l00244"></a>00244
|
260
|
-
<a name="l00245"></a>00245
|
261
|
-
<a name="l00246"></a>00246
|
262
|
-
<a name="l00247"></a>00247
|
263
|
-
<a name="l00248"></a>00248
|
264
|
-
<a name="l00249"></a>00249
|
265
|
-
<a name="l00250"></a>00250
|
266
|
-
<a name="l00251"></a>00251
|
267
|
-
<a name="l00252"></a>00252
|
268
|
-
<a name="l00253"></a>00253
|
269
|
-
<a name="l00254"></a>00254
|
270
|
-
<a name="l00255"></a>00255
|
271
|
-
<a name="l00256"></a>00256
|
272
|
-
<a name="l00257"></a>00257
|
273
|
-
<a name="l00258"></a>00258
|
274
|
-
<a name="l00259"></a>00259
|
275
|
-
<a name="l00260"></a>00260
|
276
|
-
<a name="l00261"></a>00261
|
277
|
-
<a name="l00262"></a>00262
|
278
|
-
<a name="l00263"></a>00263
|
279
|
-
<a name="l00264"></a>00264
|
280
|
-
<a name="l00265"></a>00265
|
281
|
-
<a name="l00266"></a>00266
|
282
|
-
<a name="l00267"></a>00267
|
283
|
-
<a name="l00268"></a>00268
|
284
|
-
<a name="l00269"></a>00269
|
285
|
-
<a name="l00270"></a>00270
|
286
|
-
<a name="l00271"></a>00271 <span class="keywordflow">
|
287
|
-
<a name="l00272"></a>00272
|
288
|
-
<a name="l00273"></a>00273
|
289
|
-
<a name="l00274"></a>00274 <span class="keywordflow">
|
290
|
-
<a name="l00275"></a>00275
|
291
|
-
<a name="l00276"></a>00276
|
292
|
-
<a name="l00277"></a>00277
|
293
|
-
<a name="l00278"></a>00278
|
294
|
-
<a name="l00279"></a>00279
|
295
|
-
<a name="l00280"></a>00280
|
296
|
-
<a name="l00281"></a>00281
|
297
|
-
<a name="l00282"></a>00282
|
298
|
-
<a name="l00283"></a>00283
|
299
|
-
<a name="l00284"></a>00284
|
300
|
-
<a name="l00285"></a>00285
|
301
|
-
<a name="l00286"></a>00286
|
302
|
-
<a name="l00287"></a>00287
|
303
|
-
<a name="l00288"></a>00288
|
304
|
-
<a name="l00289"></a>00289
|
305
|
-
<a name="l00290"></a>00290
|
306
|
-
<a name="l00291"></a>00291
|
307
|
-
<a name="l00292"></a>00292
|
308
|
-
<a name="l00293"></a>00293
|
309
|
-
<a name="l00294"></a>00294
|
310
|
-
<a name="l00295"></a>00295
|
311
|
-
<a name="l00296"></a>00296
|
312
|
-
<a name="l00297"></a>00297
|
313
|
-
<a name="l00298"></a>00298
|
314
|
-
<a name="l00299"></a>00299
|
315
|
-
<a name="l00300"></a>00300
|
316
|
-
<a name="l00301"></a>00301
|
317
|
-
<a name="l00302"></a>00302
|
318
|
-
<a name="l00303"></a>00303
|
319
|
-
<a name="l00304"></a>00304
|
320
|
-
<a name="l00305"></a>00305
|
321
|
-
<a name="l00306"></a>00306
|
322
|
-
<a name="l00307"></a>00307
|
323
|
-
<a name="l00308"></a>00308
|
324
|
-
<a name="l00309"></a>00309
|
325
|
-
<a name="l00310"></a>00310
|
326
|
-
<a name="l00311"></a>00311
|
327
|
-
<a name="l00312"></a>00312
|
328
|
-
<a name="l00313"></a>00313
|
329
|
-
<a name="l00314"></a>00314
|
330
|
-
<a name="l00315"></a>00315
|
331
|
-
<a name="l00316"></a>00316
|
332
|
-
<a name="l00317"></a>00317
|
333
|
-
<a name="l00318"></a>00318
|
334
|
-
<a name="l00319"></a>00319
|
335
|
-
<a name="l00320"></a>00320
|
336
|
-
<a name="l00321"></a>00321
|
337
|
-
<a name="l00322"></a>00322
|
338
|
-
<a name="l00323"></a>00323
|
339
|
-
<a name="l00324"></a>00324
|
340
|
-
<a name="l00325"></a>00325
|
341
|
-
<a name="l00326"></a>00326
|
342
|
-
<a name="l00327"></a>00327
|
343
|
-
<a name="l00328"></a>00328
|
344
|
-
<a name="l00329"></a>00329
|
345
|
-
<a name="l00330"></a>00330
|
346
|
-
<a name="l00331"></a>00331
|
347
|
-
<a name="l00332"></a>00332
|
348
|
-
<a name="l00333"></a>00333
|
349
|
-
<a name="l00334"></a>00334
|
350
|
-
<a name="l00335"></a>00335
|
351
|
-
<a name="l00336"></a>00336
|
352
|
-
<a name="l00337"></a>00337
|
353
|
-
<a name="l00338"></a>00338
|
354
|
-
<a name="l00339"></a>00339
|
355
|
-
<a name="l00340"></a>00340
|
356
|
-
<a name="l00341"></a>00341
|
357
|
-
<a name="l00342"></a>00342
|
358
|
-
<a name="l00343"></a>00343
|
359
|
-
<a name="l00344"></a>00344
|
360
|
-
<a name="l00345"></a>00345
|
361
|
-
<a name="l00346"></a>00346
|
362
|
-
<a name="l00347"></a>00347
|
363
|
-
<a name="l00348"></a>00348
|
364
|
-
<a name="l00349"></a>00349
|
365
|
-
<a name="l00350"></a>00350
|
366
|
-
<a name="l00351"></a>00351
|
367
|
-
<a name="l00352"></a>00352
|
368
|
-
<a name="l00353"></a>00353
|
369
|
-
<a name="l00354"></a>00354
|
370
|
-
<a name="l00355"></a>00355
|
371
|
-
<a name="l00356"></a>00356
|
372
|
-
<a name="l00357"></a>00357
|
373
|
-
<a name="l00358"></a>00358
|
374
|
-
<a name="l00359"></a>00359
|
375
|
-
<a name="l00360"></a>00360
|
376
|
-
<a name="l00361"></a>00361
|
377
|
-
<a name="l00362"></a>00362
|
378
|
-
<a name="l00363"></a>00363
|
379
|
-
<a name="l00364"></a>00364
|
380
|
-
<a name="l00365"></a>00365
|
381
|
-
<a name="l00366"></a>00366
|
382
|
-
<a name="l00367"></a>00367
|
383
|
-
<a name="l00368"></a>00368
|
384
|
-
<a name="l00369"></a>00369
|
385
|
-
<a name="l00370"></a>00370
|
386
|
-
<a name="l00371"></a>00371
|
387
|
-
<a name="l00372"></a>00372
|
388
|
-
<a name="l00373"></a>00373
|
389
|
-
<a name="l00374"></a>00374
|
390
|
-
<a name="l00375"></a>00375
|
391
|
-
<a name="l00376"></a>00376
|
392
|
-
<a name="l00377"></a>00377
|
393
|
-
<a name="l00378"></a>00378
|
394
|
-
<a name="l00379"></a>00379
|
395
|
-
<a name="l00380"></a>00380
|
396
|
-
<a name="l00381"></a>00381
|
397
|
-
<a name="l00382"></a>00382
|
398
|
-
<a name="l00383"></a>00383
|
399
|
-
<a name="l00384"></a>00384
|
400
|
-
<a name="l00385"></a>00385
|
401
|
-
<a name="l00386"></a>00386
|
402
|
-
<a name="l00387"></a>00387
|
403
|
-
<a name="l00388"></a>00388
|
404
|
-
<a name="l00389"></a>00389
|
405
|
-
<a name="l00390"></a>00390
|
406
|
-
<a name="l00391"></a>00391
|
407
|
-
<a name="l00392"></a>00392
|
408
|
-
<a name="l00393"></a>00393
|
409
|
-
<a name="l00394"></a>00394
|
410
|
-
<a name="l00395"></a>00395
|
411
|
-
<a name="l00396"></a>00396
|
412
|
-
<a name="l00397"></a>00397
|
413
|
-
<a name="l00398"></a>00398
|
414
|
-
<a name="l00399"></a>00399
|
415
|
-
<a name="l00400"></a>00400
|
416
|
-
<a name="l00401"></a>00401
|
417
|
-
<a name="l00402"></a>00402
|
418
|
-
<a name="l00403"></a>00403
|
419
|
-
<a name="l00404"></a>00404 <span class="
|
420
|
-
<a name="l00405"></a>00405
|
421
|
-
<a name="l00406"></a>00406
|
422
|
-
<a name="l00407"></a>00407
|
423
|
-
<a name="l00408"></a>00408
|
424
|
-
<a name="l00409"></a>00409
|
425
|
-
<a name="l00410"></a
|
426
|
-
<a name="l00411"></a>00411
|
427
|
-
<a name="l00412"></a>00412
|
428
|
-
<a name="l00413"></a>00413
|
429
|
-
<a name="l00414"></a>00414
|
430
|
-
<a name="l00415"></a>00415
|
431
|
-
<a name="l00416"></a>00416
|
432
|
-
<a name="l00417"></a>00417
|
433
|
-
<a name="l00418"></a>00418
|
434
|
-
<a name="l00419"></a>00419
|
435
|
-
<a name="l00420"></a>00420
|
436
|
-
<a name="l00421"></a>00421
|
437
|
-
<a name="l00422"></a>00422
|
438
|
-
<a name="l00423"></a>00423
|
439
|
-
<a name="l00424"></a>00424
|
440
|
-
<a name="l00425"></a>00425
|
441
|
-
<a name="l00426"></a>00426
|
442
|
-
<a name="l00427"></a>00427
|
443
|
-
<a name="l00428"></a>00428
|
444
|
-
<a name="l00429"></a>00429
|
445
|
-
<a name="l00430"></a>00430
|
446
|
-
<a name="l00431"></a>00431
|
447
|
-
<a name="l00432"></a>00432
|
448
|
-
<a name="l00433"></a>00433
|
449
|
-
<a name="l00434"></a>00434
|
450
|
-
<a name="l00435"></a>00435
|
451
|
-
<a name="l00436"></a>00436
|
452
|
-
<a name="l00437"></a>00437
|
453
|
-
<a name="l00438"></a>00438
|
454
|
-
<a name="l00439"></a>00439
|
455
|
-
<a name="l00440"></a>00440
|
456
|
-
<a name="l00441"></a>00441
|
457
|
-
<a name="l00442"></a>00442
|
458
|
-
<a name="l00443"></a>00443
|
459
|
-
<a name="l00444"></a>00444
|
460
|
-
<a name="l00445"></a>00445
|
461
|
-
<a name="l00446"></a>00446
|
462
|
-
<a name="l00447"></a>00447
|
463
|
-
<a name="l00448"></a>00448
|
464
|
-
<a name="l00449"></a>00449
|
465
|
-
<a name="l00450"></a>00450
|
466
|
-
<a name="l00451"></a
|
467
|
-
<a name="l00452"></a>00452
|
468
|
-
<a name="l00453"></a>00453
|
469
|
-
<a name="l00454"></a>00454
|
470
|
-
<a name="l00455"></a>00455
|
471
|
-
<a name="l00456"></a>00456
|
472
|
-
<a name="l00457"></a>00457
|
473
|
-
<a name="l00458"></a>00458
|
474
|
-
<a name="l00459"></a>00459
|
475
|
-
<a name="l00460"></a>00460
|
476
|
-
<a name="l00461"></a>00461
|
477
|
-
<a name="l00462"></a>00462
|
478
|
-
<a name="l00463"></a>00463
|
479
|
-
<a name="l00464"></a>00464
|
480
|
-
<a name="l00465"></a>00465
|
481
|
-
<a name="l00466"></a>00466
|
482
|
-
<a name="l00467"></a>00467
|
483
|
-
<a name="l00468"></a>00468
|
484
|
-
<a name="l00469"></a>00469
|
485
|
-
<a name="l00470"></a>00470
|
486
|
-
<a name="l00471"></a>00471
|
487
|
-
<a name="l00472"></a>00472 <span class="keywordflow">
|
488
|
-
<a name="l00473"></a>00473
|
489
|
-
<a name="l00474"></a>00474
|
490
|
-
<a name="l00475"></a>00475
|
491
|
-
<a name="l00476"></a>00476
|
492
|
-
<a name="l00477"></a>00477
|
493
|
-
<a name="l00478"></a>00478
|
494
|
-
<a name="l00479"></a>00479
|
495
|
-
<a name="l00480"></a>00480
|
496
|
-
<a name="l00481"></a>00481
|
497
|
-
<a name="l00482"></a>00482
|
498
|
-
<a name="l00483"></a>00483
|
499
|
-
<a name="l00484"></a>00484
|
500
|
-
<a name="l00485"></a>00485
|
501
|
-
<a name="l00486"></a>00486
|
502
|
-
<a name="l00487"></a>00487
|
503
|
-
<a name="l00488"></a>00488
|
504
|
-
<a name="l00489"></a>00489
|
505
|
-
<a name="l00490"></a>00490
|
506
|
-
<a name="l00491"></a>00491
|
507
|
-
<a name="l00492"></a>00492
|
508
|
-
<a name="l00493"></a>00493 <span class="
|
509
|
-
<a name="l00494"></a>00494
|
510
|
-
<a name="l00495"></a>00495
|
511
|
-
<a name="l00496"></a>00496
|
512
|
-
<a name="l00497"></a
|
513
|
-
<a name="l00498"></a>00498
|
514
|
-
<a name="l00499"></a>00499
|
515
|
-
<a name="l00500"></a>00500
|
516
|
-
<a name="l00501"></a>00501
|
517
|
-
<a name="l00502"></a>00502
|
518
|
-
<a name="l00503"></a>00503
|
519
|
-
<a name="l00504"></a>00504
|
520
|
-
<a name="l00505"></a>00505
|
521
|
-
<a name="l00506"></a>00506
|
522
|
-
<a name="l00507"></a>00507
|
523
|
-
<a name="l00508"></a>00508
|
524
|
-
<a name="l00509"></a>00509
|
525
|
-
<a name="l00510"></a>00510
|
526
|
-
<a name="l00511"></a>00511
|
527
|
-
<a name="l00512"></a
|
528
|
-
<a name="l00513"></a>00513
|
529
|
-
<a name="l00514"></a>00514
|
530
|
-
<a name="l00515"></a>00515
|
531
|
-
<a name="l00516"></a>00516
|
532
|
-
<a name="l00517"></a>00517
|
533
|
-
<a name="l00518"></a
|
534
|
-
<a name="l00519"></a>00519
|
535
|
-
<a name="l00520"></a>00520
|
536
|
-
<a name="l00521"></a>00521
|
537
|
-
<a name="l00522"></a
|
538
|
-
<a name="l00523"></a>00523
|
539
|
-
<a name="l00524"></a>00524
|
540
|
-
<a name="l00525"></a>00525
|
541
|
-
<a name="l00526"></a
|
542
|
-
<a name="l00527"></a>00527
|
543
|
-
<a name="l00528"></a>00528
|
544
|
-
<a name="l00529"></a>00529
|
545
|
-
<a name="l00530"></a>00530
|
546
|
-
<a name="l00531"></a>00531
|
547
|
-
<a name="l00532"></a>00532
|
548
|
-
<a name="l00533"></a>00533
|
549
|
-
<a name="l00534"></a>00534
|
550
|
-
|
102
|
+
<a name="l00085"></a>00085 <span class="comment"> * (Of course, StandardApplicationPool <em>is</em> usable if each process creates its own</span>
|
103
|
+
<a name="l00086"></a>00086 <span class="comment"> * StandardApplicationPool object, but that would defeat the point of having a shared pool.)</span>
|
104
|
+
<a name="l00087"></a>00087 <span class="comment"> *</span>
|
105
|
+
<a name="l00088"></a>00088 <span class="comment"> * For multi-process environments, one should use ApplicationPoolServer instead.</span>
|
106
|
+
<a name="l00089"></a>00089 <span class="comment"> *</span>
|
107
|
+
<a name="l00090"></a>00090 <span class="comment"> * @ingroup Support</span>
|
108
|
+
<a name="l00091"></a>00091 <span class="comment"> */</span>
|
109
|
+
<a name="l00092"></a><a class="code" href="classPassenger_1_1StandardApplicationPool.html">00092</a> <span class="keyword">class </span><a class="code" href="classPassenger_1_1StandardApplicationPool.html" title="A standard implementation of ApplicationPool for single-process environments.">StandardApplicationPool</a>: <span class="keyword">public</span> <a class="code" href="classPassenger_1_1ApplicationPool.html" title="A persistent pool of Applications.">ApplicationPool</a> {
|
110
|
+
<a name="l00093"></a>00093 <span class="keyword">private</span>:
|
111
|
+
<a name="l00094"></a>00094 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> DEFAULT_MAX_IDLE_TIME = 120;
|
112
|
+
<a name="l00095"></a>00095 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> DEFAULT_MAX_POOL_SIZE = 20;
|
113
|
+
<a name="l00096"></a>00096 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> DEFAULT_MAX_INSTANCES_PER_APP = 0;
|
114
|
+
<a name="l00097"></a>00097 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> CLEANER_THREAD_STACK_SIZE = 1024 * 128;
|
115
|
+
<a name="l00098"></a>00098 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> MAX_GET_ATTEMPTS = 10;
|
116
|
+
<a name="l00099"></a>00099 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> GET_TIMEOUT = 5000; <span class="comment">// In milliseconds.</span>
|
117
|
+
<a name="l00100"></a>00100
|
118
|
+
<a name="l00101"></a>00101 <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classPassenger_1_1ApplicationPoolServer.html" title="Multi-process usage support for ApplicationPool.">ApplicationPoolServer</a>;
|
119
|
+
<a name="l00102"></a>00102 <span class="keyword">struct </span>AppContainer;
|
120
|
+
<a name="l00103"></a>00103
|
121
|
+
<a name="l00104"></a>00104 <span class="keyword">typedef</span> shared_ptr<AppContainer> AppContainerPtr;
|
122
|
+
<a name="l00105"></a>00105 <span class="keyword">typedef</span> list<AppContainerPtr> AppContainerList;
|
123
|
+
<a name="l00106"></a>00106 <span class="keyword">typedef</span> shared_ptr<AppContainerList> AppContainerListPtr;
|
124
|
+
<a name="l00107"></a>00107 <span class="keyword">typedef</span> map<string, AppContainerListPtr> ApplicationMap;
|
125
|
+
<a name="l00108"></a>00108
|
126
|
+
<a name="l00109"></a>00109 <span class="keyword">struct </span>AppContainer {
|
127
|
+
<a name="l00110"></a>00110 <a class="code" href="namespacePassenger.html#6a15fd5e8765802a0b8b077e15297e18" title="Convenient alias for Application smart pointer.">ApplicationPtr</a> app;
|
128
|
+
<a name="l00111"></a>00111 time_t lastUsed;
|
129
|
+
<a name="l00112"></a>00112 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> sessions;
|
130
|
+
<a name="l00113"></a>00113 AppContainerList::iterator iterator;
|
131
|
+
<a name="l00114"></a>00114 AppContainerList::iterator ia_iterator;
|
132
|
+
<a name="l00115"></a>00115 };
|
133
|
+
<a name="l00116"></a>00116
|
134
|
+
<a name="l00117"></a>00117 <span class="keyword">struct </span>SharedData {
|
135
|
+
<a name="l00118"></a>00118 mutex lock;
|
136
|
+
<a name="l00119"></a>00119 condition activeOrMaxChanged;
|
137
|
+
<a name="l00120"></a>00120
|
138
|
+
<a name="l00121"></a>00121 ApplicationMap apps;
|
139
|
+
<a name="l00122"></a>00122 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> max;
|
140
|
+
<a name="l00123"></a>00123 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> count;
|
141
|
+
<a name="l00124"></a>00124 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> active;
|
142
|
+
<a name="l00125"></a>00125 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> maxPerApp;
|
143
|
+
<a name="l00126"></a>00126 AppContainerList inactiveApps;
|
144
|
+
<a name="l00127"></a>00127 map<string, time_t> restartFileTimes;
|
145
|
+
<a name="l00128"></a>00128 map<string, unsigned int> appInstanceCount;
|
146
|
+
<a name="l00129"></a>00129 };
|
147
|
+
<a name="l00130"></a>00130
|
148
|
+
<a name="l00131"></a>00131 <span class="keyword">typedef</span> shared_ptr<SharedData> SharedDataPtr;
|
149
|
+
<a name="l00132"></a>00132
|
150
|
+
<a name="l00133"></a>00133 <span class="keyword">struct </span>SessionCloseCallback {
|
151
|
+
<a name="l00134"></a>00134 SharedDataPtr data;
|
152
|
+
<a name="l00135"></a>00135 weak_ptr<AppContainer> container;
|
153
|
+
<a name="l00136"></a>00136
|
154
|
+
<a name="l00137"></a>00137 SessionCloseCallback(SharedDataPtr data,
|
155
|
+
<a name="l00138"></a>00138 <span class="keyword">const</span> weak_ptr<AppContainer> &container) {
|
156
|
+
<a name="l00139"></a>00139 this->data = data;
|
157
|
+
<a name="l00140"></a>00140 this->container = container;
|
158
|
+
<a name="l00141"></a>00141 }
|
159
|
+
<a name="l00142"></a>00142
|
160
|
+
<a name="l00143"></a>00143 <span class="keywordtype">void</span> operator()() {
|
161
|
+
<a name="l00144"></a>00144 mutex::scoped_lock l(data->lock);
|
162
|
+
<a name="l00145"></a>00145 AppContainerPtr container(this->container.lock());
|
163
|
+
<a name="l00146"></a>00146
|
164
|
+
<a name="l00147"></a>00147 <span class="keywordflow">if</span> (container == NULL) {
|
165
|
+
<a name="l00148"></a>00148 <span class="keywordflow">return</span>;
|
166
|
+
<a name="l00149"></a>00149 }
|
167
|
+
<a name="l00150"></a>00150
|
168
|
+
<a name="l00151"></a>00151 ApplicationMap::iterator it;
|
169
|
+
<a name="l00152"></a>00152 it = data->apps.find(container->app->getAppRoot());
|
170
|
+
<a name="l00153"></a>00153 <span class="keywordflow">if</span> (it != data->apps.end()) {
|
171
|
+
<a name="l00154"></a>00154 AppContainerListPtr list(it->second);
|
172
|
+
<a name="l00155"></a>00155 container->lastUsed = time(NULL);
|
173
|
+
<a name="l00156"></a>00156 container->sessions--;
|
174
|
+
<a name="l00157"></a>00157 <span class="keywordflow">if</span> (container->sessions == 0) {
|
175
|
+
<a name="l00158"></a>00158 list->erase(container->iterator);
|
176
|
+
<a name="l00159"></a>00159 list->push_front(container);
|
177
|
+
<a name="l00160"></a>00160 container->iterator = list->begin();
|
178
|
+
<a name="l00161"></a>00161 data->inactiveApps.push_back(container);
|
179
|
+
<a name="l00162"></a>00162 container->ia_iterator = data->inactiveApps.end();
|
180
|
+
<a name="l00163"></a>00163 container->ia_iterator--;
|
181
|
+
<a name="l00164"></a>00164 data->active--;
|
182
|
+
<a name="l00165"></a>00165 data->activeOrMaxChanged.notify_all();
|
183
|
+
<a name="l00166"></a>00166 }
|
184
|
+
<a name="l00167"></a>00167 }
|
185
|
+
<a name="l00168"></a>00168 }
|
186
|
+
<a name="l00169"></a>00169 };
|
187
|
+
<a name="l00170"></a>00170
|
188
|
+
<a name="l00171"></a>00171 <span class="preprocessor"> #ifdef PASSENGER_USE_DUMMY_SPAWN_MANAGER</span>
|
189
|
+
<a name="l00172"></a>00172 <span class="preprocessor"></span> <a class="code" href="classPassenger_1_1DummySpawnManager.html" title="A dummy SpawnManager replacement for testing/debugging purposes.">DummySpawnManager</a> spawnManager;
|
190
|
+
<a name="l00173"></a>00173 <span class="preprocessor"> #else</span>
|
191
|
+
<a name="l00174"></a>00174 <span class="preprocessor"></span> <a class="code" href="classPassenger_1_1SpawnManager.html" title="Spawning of Ruby on Rails/Rack application instances.">SpawnManager</a> spawnManager;
|
192
|
+
<a name="l00175"></a>00175 <span class="preprocessor"> #endif</span>
|
193
|
+
<a name="l00176"></a>00176 <span class="preprocessor"></span> SharedDataPtr data;
|
194
|
+
<a name="l00177"></a>00177 thread *cleanerThread;
|
195
|
+
<a name="l00178"></a>00178 <span class="keywordtype">bool</span> detached;
|
196
|
+
<a name="l00179"></a>00179 <span class="keywordtype">bool</span> done;
|
197
|
+
<a name="l00180"></a>00180 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> maxIdleTime;
|
198
|
+
<a name="l00181"></a>00181 condition cleanerThreadSleeper;
|
199
|
+
<a name="l00182"></a>00182
|
200
|
+
<a name="l00183"></a>00183 <span class="comment">// Shortcuts for instance variables in SharedData. Saves typing in get().</span>
|
201
|
+
<a name="l00184"></a>00184 mutex &lock;
|
202
|
+
<a name="l00185"></a>00185 condition &activeOrMaxChanged;
|
203
|
+
<a name="l00186"></a>00186 ApplicationMap &apps;
|
204
|
+
<a name="l00187"></a>00187 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> &max;
|
205
|
+
<a name="l00188"></a>00188 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> &count;
|
206
|
+
<a name="l00189"></a>00189 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> &active;
|
207
|
+
<a name="l00190"></a>00190 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> &maxPerApp;
|
208
|
+
<a name="l00191"></a>00191 AppContainerList &inactiveApps;
|
209
|
+
<a name="l00192"></a>00192 map<string, time_t> &restartFileTimes;
|
210
|
+
<a name="l00193"></a>00193 map<string, unsigned int> &appInstanceCount;
|
211
|
+
<a name="l00194"></a>00194 <span class="comment"></span>
|
212
|
+
<a name="l00195"></a>00195 <span class="comment"> /**</span>
|
213
|
+
<a name="l00196"></a>00196 <span class="comment"> * Verify that all the invariants are correct.</span>
|
214
|
+
<a name="l00197"></a>00197 <span class="comment"> */</span>
|
215
|
+
<a name="l00198"></a>00198 <span class="keywordtype">bool</span> <span class="keyword">inline</span> verifyState() {
|
216
|
+
<a name="l00199"></a>00199 <span class="preprocessor"> #if PASSENGER_DEBUG</span>
|
217
|
+
<a name="l00200"></a>00200 <span class="preprocessor"></span> <span class="comment">// Invariant for _apps_.</span>
|
218
|
+
<a name="l00201"></a>00201 ApplicationMap::const_iterator it;
|
219
|
+
<a name="l00202"></a>00202 <span class="keywordflow">for</span> (it = apps.begin(); it != apps.end(); it++) {
|
220
|
+
<a name="l00203"></a>00203 AppContainerList *list = it->second.get();
|
221
|
+
<a name="l00204"></a>00204 P_ASSERT(!list->empty(), <span class="keyword">false</span>, <span class="stringliteral">"List for '"</span> << it->first << <span class="stringliteral">"' is nonempty."</span>);
|
222
|
+
<a name="l00205"></a>00205
|
223
|
+
<a name="l00206"></a>00206 AppContainerList::const_iterator prev_lit;
|
224
|
+
<a name="l00207"></a>00207 AppContainerList::const_iterator lit;
|
225
|
+
<a name="l00208"></a>00208 prev_lit = list->begin();
|
226
|
+
<a name="l00209"></a>00209 lit = prev_lit;
|
227
|
+
<a name="l00210"></a>00210 lit++;
|
228
|
+
<a name="l00211"></a>00211 <span class="keywordflow">for</span> (; lit != list->end(); lit++) {
|
229
|
+
<a name="l00212"></a>00212 <span class="keywordflow">if</span> ((*prev_lit)->sessions > 0) {
|
230
|
+
<a name="l00213"></a>00213 P_ASSERT((*lit)->sessions > 0, <span class="keyword">false</span>,
|
231
|
+
<a name="l00214"></a>00214 <span class="stringliteral">"List for '"</span> << it->first <<
|
232
|
+
<a name="l00215"></a>00215 <span class="stringliteral">"' is sorted from nonactive to active"</span>);
|
233
|
+
<a name="l00216"></a>00216 }
|
234
|
+
<a name="l00217"></a>00217 }
|
235
|
+
<a name="l00218"></a>00218 }
|
236
|
+
<a name="l00219"></a>00219
|
237
|
+
<a name="l00220"></a>00220 P_ASSERT(active <= count, <span class="keyword">false</span>,
|
238
|
+
<a name="l00221"></a>00221 <span class="stringliteral">"active ("</span> << active << <span class="stringliteral">") < count ("</span> << count << <span class="stringliteral">")"</span>);
|
239
|
+
<a name="l00222"></a>00222 P_ASSERT(inactiveApps.size() == count - active, <span class="keyword">false</span>,
|
240
|
+
<a name="l00223"></a>00223 <span class="stringliteral">"inactive_apps.size() == count - active"</span>);
|
241
|
+
<a name="l00224"></a>00224 <span class="preprocessor"> #endif</span>
|
242
|
+
<a name="l00225"></a>00225 <span class="preprocessor"></span> <span class="keywordflow">return</span> <span class="keyword">true</span>;
|
243
|
+
<a name="l00226"></a>00226 }
|
244
|
+
<a name="l00227"></a>00227
|
245
|
+
<a name="l00228"></a>00228 <span class="keyword">template</span><<span class="keyword">typename</span> LockActionType>
|
246
|
+
<a name="l00229"></a>00229 <span class="keywordtype">string</span> toString(LockActionType lockAction)<span class="keyword"> const </span>{
|
247
|
+
<a name="l00230"></a>00230 unique_lock<mutex> l(lock, lockAction);
|
248
|
+
<a name="l00231"></a>00231 stringstream result;
|
249
|
+
<a name="l00232"></a>00232
|
250
|
+
<a name="l00233"></a>00233 result << <span class="stringliteral">"----------- General information -----------"</span> << endl;
|
251
|
+
<a name="l00234"></a>00234 result << <span class="stringliteral">"max = "</span> << max << endl;
|
252
|
+
<a name="l00235"></a>00235 result << <span class="stringliteral">"count = "</span> << count << endl;
|
253
|
+
<a name="l00236"></a>00236 result << <span class="stringliteral">"active = "</span> << active << endl;
|
254
|
+
<a name="l00237"></a>00237 result << <span class="stringliteral">"inactive = "</span> << inactiveApps.size() << endl;
|
255
|
+
<a name="l00238"></a>00238 result << endl;
|
256
|
+
<a name="l00239"></a>00239
|
257
|
+
<a name="l00240"></a>00240 result << <span class="stringliteral">"----------- Applications -----------"</span> << endl;
|
258
|
+
<a name="l00241"></a>00241 ApplicationMap::const_iterator it;
|
259
|
+
<a name="l00242"></a>00242 <span class="keywordflow">for</span> (it = apps.begin(); it != apps.end(); it++) {
|
260
|
+
<a name="l00243"></a>00243 AppContainerList *list = it->second.get();
|
261
|
+
<a name="l00244"></a>00244 AppContainerList::const_iterator lit;
|
262
|
+
<a name="l00245"></a>00245
|
263
|
+
<a name="l00246"></a>00246 result << it->first << <span class="stringliteral">": "</span> << endl;
|
264
|
+
<a name="l00247"></a>00247 <span class="keywordflow">for</span> (lit = list->begin(); lit != list->end(); lit++) {
|
265
|
+
<a name="l00248"></a>00248 AppContainer *container = lit->get();
|
266
|
+
<a name="l00249"></a>00249 <span class="keywordtype">char</span> buf[128];
|
267
|
+
<a name="l00250"></a>00250
|
268
|
+
<a name="l00251"></a>00251 snprintf(buf, <span class="keyword">sizeof</span>(buf), <span class="stringliteral">"PID: %-8d Sessions: %d"</span>,
|
269
|
+
<a name="l00252"></a>00252 container->app->getPid(), container->sessions);
|
270
|
+
<a name="l00253"></a>00253 result << <span class="stringliteral">" "</span> << buf << endl;
|
271
|
+
<a name="l00254"></a>00254 }
|
272
|
+
<a name="l00255"></a>00255 result << endl;
|
273
|
+
<a name="l00256"></a>00256 }
|
274
|
+
<a name="l00257"></a>00257 <span class="keywordflow">return</span> result.str();
|
275
|
+
<a name="l00258"></a>00258 }
|
276
|
+
<a name="l00259"></a>00259
|
277
|
+
<a name="l00260"></a>00260 <span class="keywordtype">bool</span> needsRestart(<span class="keyword">const</span> <span class="keywordtype">string</span> &appRoot) {
|
278
|
+
<a name="l00261"></a>00261 <span class="keywordtype">string</span> restartFile(appRoot);
|
279
|
+
<a name="l00262"></a>00262 restartFile.append(<span class="stringliteral">"/tmp/restart.txt"</span>);
|
280
|
+
<a name="l00263"></a>00263
|
281
|
+
<a name="l00264"></a>00264 <span class="keyword">struct </span>stat buf;
|
282
|
+
<a name="l00265"></a>00265 <span class="keywordtype">bool</span> result;
|
283
|
+
<a name="l00266"></a>00266 <span class="keywordtype">int</span> ret;
|
284
|
+
<a name="l00267"></a>00267
|
285
|
+
<a name="l00268"></a>00268 <span class="keywordflow">do</span> {
|
286
|
+
<a name="l00269"></a>00269 ret = stat(restartFile.c_str(), &buf);
|
287
|
+
<a name="l00270"></a>00270 } <span class="keywordflow">while</span> (ret == -1 && errno == EINTR);
|
288
|
+
<a name="l00271"></a>00271 <span class="keywordflow">if</span> (ret == 0) {
|
289
|
+
<a name="l00272"></a>00272 <span class="keywordflow">do</span> {
|
290
|
+
<a name="l00273"></a>00273 ret = unlink(restartFile.c_str());
|
291
|
+
<a name="l00274"></a>00274 } <span class="keywordflow">while</span> (ret == -1 && (errno == EINTR || errno == EAGAIN));
|
292
|
+
<a name="l00275"></a>00275 <span class="keywordflow">if</span> (ret == 0 || errno == ENOENT) {
|
293
|
+
<a name="l00276"></a>00276 restartFileTimes.erase(appRoot);
|
294
|
+
<a name="l00277"></a>00277 result = <span class="keyword">true</span>;
|
295
|
+
<a name="l00278"></a>00278 } <span class="keywordflow">else</span> {
|
296
|
+
<a name="l00279"></a>00279 map<string, time_t>::const_iterator it;
|
297
|
+
<a name="l00280"></a>00280
|
298
|
+
<a name="l00281"></a>00281 it = restartFileTimes.find(appRoot);
|
299
|
+
<a name="l00282"></a>00282 <span class="keywordflow">if</span> (it == restartFileTimes.end()) {
|
300
|
+
<a name="l00283"></a>00283 result = <span class="keyword">true</span>;
|
301
|
+
<a name="l00284"></a>00284 } <span class="keywordflow">else</span> {
|
302
|
+
<a name="l00285"></a>00285 result = buf.st_mtime != restartFileTimes[appRoot];
|
303
|
+
<a name="l00286"></a>00286 }
|
304
|
+
<a name="l00287"></a>00287 restartFileTimes[appRoot] = buf.st_mtime;
|
305
|
+
<a name="l00288"></a>00288 }
|
306
|
+
<a name="l00289"></a>00289 } <span class="keywordflow">else</span> {
|
307
|
+
<a name="l00290"></a>00290 restartFileTimes.erase(appRoot);
|
308
|
+
<a name="l00291"></a>00291 result = <span class="keyword">false</span>;
|
309
|
+
<a name="l00292"></a>00292 }
|
310
|
+
<a name="l00293"></a>00293 <span class="keywordflow">return</span> result;
|
311
|
+
<a name="l00294"></a>00294 }
|
312
|
+
<a name="l00295"></a>00295
|
313
|
+
<a name="l00296"></a>00296 <span class="keywordtype">void</span> cleanerThreadMainLoop() {
|
314
|
+
<a name="l00297"></a>00297 <a class="code" href="classboost_1_1this__thread_1_1disable__syscall__interruption.html" title="Create this struct on the stack to temporarily disable system call interruption,...">this_thread::disable_syscall_interruption</a> dsi;
|
315
|
+
<a name="l00298"></a>00298 unique_lock<mutex> l(lock);
|
316
|
+
<a name="l00299"></a>00299 <span class="keywordflow">try</span> {
|
317
|
+
<a name="l00300"></a>00300 <span class="keywordflow">while</span> (!done && !this_thread::interruption_requested()) {
|
318
|
+
<a name="l00301"></a>00301 xtime xt;
|
319
|
+
<a name="l00302"></a>00302 xtime_get(&xt, TIME_UTC);
|
320
|
+
<a name="l00303"></a>00303 xt.sec += maxIdleTime + 1;
|
321
|
+
<a name="l00304"></a>00304 <span class="keywordflow">if</span> (cleanerThreadSleeper.timed_wait(l, xt)) {
|
322
|
+
<a name="l00305"></a>00305 <span class="comment">// Condition was woken up.</span>
|
323
|
+
<a name="l00306"></a>00306 <span class="keywordflow">if</span> (done) {
|
324
|
+
<a name="l00307"></a>00307 <span class="comment">// StandardApplicationPool is being destroyed.</span>
|
325
|
+
<a name="l00308"></a>00308 <span class="keywordflow">break</span>;
|
326
|
+
<a name="l00309"></a>00309 } <span class="keywordflow">else</span> {
|
327
|
+
<a name="l00310"></a>00310 <span class="comment">// maxIdleTime changed.</span>
|
328
|
+
<a name="l00311"></a>00311 <span class="keywordflow">continue</span>;
|
329
|
+
<a name="l00312"></a>00312 }
|
330
|
+
<a name="l00313"></a>00313 }
|
331
|
+
<a name="l00314"></a>00314
|
332
|
+
<a name="l00315"></a>00315 time_t now = InterruptableCalls::time(NULL);
|
333
|
+
<a name="l00316"></a>00316 AppContainerList::iterator it;
|
334
|
+
<a name="l00317"></a>00317 <span class="keywordflow">for</span> (it = inactiveApps.begin(); it != inactiveApps.end(); it++) {
|
335
|
+
<a name="l00318"></a>00318 AppContainer &container(*it->get());
|
336
|
+
<a name="l00319"></a>00319 <a class="code" href="namespacePassenger.html#6a15fd5e8765802a0b8b077e15297e18" title="Convenient alias for Application smart pointer.">ApplicationPtr</a> app(container.app);
|
337
|
+
<a name="l00320"></a>00320 AppContainerListPtr appList(apps[app->getAppRoot()]);
|
338
|
+
<a name="l00321"></a>00321
|
339
|
+
<a name="l00322"></a>00322 <span class="keywordflow">if</span> (now - container.lastUsed > (time_t) maxIdleTime) {
|
340
|
+
<a name="l00323"></a>00323 P_DEBUG(<span class="stringliteral">"Cleaning idle app "</span> << app->getAppRoot() <<
|
341
|
+
<a name="l00324"></a>00324 <span class="stringliteral">" (PID "</span> << app->getPid() << <span class="stringliteral">")"</span>);
|
342
|
+
<a name="l00325"></a>00325 appList->erase(container.iterator);
|
343
|
+
<a name="l00326"></a>00326
|
344
|
+
<a name="l00327"></a>00327 AppContainerList::iterator prev = it;
|
345
|
+
<a name="l00328"></a>00328 prev--;
|
346
|
+
<a name="l00329"></a>00329 inactiveApps.erase(it);
|
347
|
+
<a name="l00330"></a>00330 it = prev;
|
348
|
+
<a name="l00331"></a>00331
|
349
|
+
<a name="l00332"></a>00332 appInstanceCount[app->getAppRoot()]--;
|
350
|
+
<a name="l00333"></a>00333
|
351
|
+
<a name="l00334"></a>00334 count--;
|
352
|
+
<a name="l00335"></a>00335 }
|
353
|
+
<a name="l00336"></a>00336 <span class="keywordflow">if</span> (appList->empty()) {
|
354
|
+
<a name="l00337"></a>00337 apps.erase(app->getAppRoot());
|
355
|
+
<a name="l00338"></a>00338 appInstanceCount.erase(app->getAppRoot());
|
356
|
+
<a name="l00339"></a>00339 data->restartFileTimes.erase(app->getAppRoot());
|
357
|
+
<a name="l00340"></a>00340 }
|
358
|
+
<a name="l00341"></a>00341 }
|
359
|
+
<a name="l00342"></a>00342 }
|
360
|
+
<a name="l00343"></a>00343 } <span class="keywordflow">catch</span> (<span class="keyword">const</span> exception &e) {
|
361
|
+
<a name="l00344"></a>00344 P_ERROR(<span class="stringliteral">"Uncaught exception: "</span> << e.what());
|
362
|
+
<a name="l00345"></a>00345 }
|
363
|
+
<a name="l00346"></a>00346 }
|
364
|
+
<a name="l00347"></a>00347 <span class="comment"></span>
|
365
|
+
<a name="l00348"></a>00348 <span class="comment"> /**</span>
|
366
|
+
<a name="l00349"></a>00349 <span class="comment"> * @throws boost::thread_interrupted</span>
|
367
|
+
<a name="l00350"></a>00350 <span class="comment"> * @throws SpawnException</span>
|
368
|
+
<a name="l00351"></a>00351 <span class="comment"> * @throws SystemException</span>
|
369
|
+
<a name="l00352"></a>00352 <span class="comment"> */</span>
|
370
|
+
<a name="l00353"></a>00353 pair<AppContainerPtr, AppContainerList *>
|
371
|
+
<a name="l00354"></a>00354 spawnOrUseExisting(
|
372
|
+
<a name="l00355"></a>00355 mutex::scoped_lock &l,
|
373
|
+
<a name="l00356"></a>00356 <span class="keyword">const</span> <span class="keywordtype">string</span> &appRoot,
|
374
|
+
<a name="l00357"></a>00357 <span class="keywordtype">bool</span> lowerPrivilege,
|
375
|
+
<a name="l00358"></a>00358 <span class="keyword">const</span> <span class="keywordtype">string</span> &lowestUser,
|
376
|
+
<a name="l00359"></a>00359 <span class="keyword">const</span> <span class="keywordtype">string</span> &environment,
|
377
|
+
<a name="l00360"></a>00360 <span class="keyword">const</span> <span class="keywordtype">string</span> &spawnMethod,
|
378
|
+
<a name="l00361"></a>00361 <span class="keyword">const</span> <span class="keywordtype">string</span> &appType
|
379
|
+
<a name="l00362"></a>00362 ) {
|
380
|
+
<a name="l00363"></a>00363 this_thread::disable_interruption di;
|
381
|
+
<a name="l00364"></a>00364 <a class="code" href="classboost_1_1this__thread_1_1disable__syscall__interruption.html" title="Create this struct on the stack to temporarily disable system call interruption,...">this_thread::disable_syscall_interruption</a> dsi;
|
382
|
+
<a name="l00365"></a>00365 AppContainerPtr container;
|
383
|
+
<a name="l00366"></a>00366 AppContainerList *list;
|
384
|
+
<a name="l00367"></a>00367
|
385
|
+
<a name="l00368"></a>00368 <span class="keywordflow">try</span> {
|
386
|
+
<a name="l00369"></a>00369 ApplicationMap::iterator it(apps.find(appRoot));
|
387
|
+
<a name="l00370"></a>00370
|
388
|
+
<a name="l00371"></a>00371 <span class="keywordflow">if</span> (it != apps.end() && needsRestart(appRoot)) {
|
389
|
+
<a name="l00372"></a>00372 AppContainerList::iterator it2;
|
390
|
+
<a name="l00373"></a>00373 list = it->second.get();
|
391
|
+
<a name="l00374"></a>00374 <span class="keywordflow">for</span> (it2 = list->begin(); it2 != list->end(); it2++) {
|
392
|
+
<a name="l00375"></a>00375 container = *it2;
|
393
|
+
<a name="l00376"></a>00376 <span class="keywordflow">if</span> (container->sessions == 0) {
|
394
|
+
<a name="l00377"></a>00377 inactiveApps.erase(container->ia_iterator);
|
395
|
+
<a name="l00378"></a>00378 } <span class="keywordflow">else</span> {
|
396
|
+
<a name="l00379"></a>00379 active--;
|
397
|
+
<a name="l00380"></a>00380 }
|
398
|
+
<a name="l00381"></a>00381 it2--;
|
399
|
+
<a name="l00382"></a>00382 list->erase(container->iterator);
|
400
|
+
<a name="l00383"></a>00383 count--;
|
401
|
+
<a name="l00384"></a>00384 }
|
402
|
+
<a name="l00385"></a>00385 apps.erase(appRoot);
|
403
|
+
<a name="l00386"></a>00386 appInstanceCount.erase(appRoot);
|
404
|
+
<a name="l00387"></a>00387 spawnManager.<a class="code" href="classPassenger_1_1SpawnManager.html#2e85c43042b9556ca2fd74b8d28956ce" title="Remove the cached application instances at the given application root.">reload</a>(appRoot);
|
405
|
+
<a name="l00388"></a>00388 it = apps.end();
|
406
|
+
<a name="l00389"></a>00389 activeOrMaxChanged.notify_all();
|
407
|
+
<a name="l00390"></a>00390 }
|
408
|
+
<a name="l00391"></a>00391
|
409
|
+
<a name="l00392"></a>00392 <span class="keywordflow">if</span> (it != apps.end()) {
|
410
|
+
<a name="l00393"></a>00393 list = it->second.get();
|
411
|
+
<a name="l00394"></a>00394
|
412
|
+
<a name="l00395"></a>00395 <span class="keywordflow">if</span> (list->front()->sessions == 0) {
|
413
|
+
<a name="l00396"></a>00396 container = list->front();
|
414
|
+
<a name="l00397"></a>00397 list->pop_front();
|
415
|
+
<a name="l00398"></a>00398 list->push_back(container);
|
416
|
+
<a name="l00399"></a>00399 container->iterator = list->end();
|
417
|
+
<a name="l00400"></a>00400 container->iterator--;
|
418
|
+
<a name="l00401"></a>00401 inactiveApps.erase(container->ia_iterator);
|
419
|
+
<a name="l00402"></a>00402 active++;
|
420
|
+
<a name="l00403"></a>00403 activeOrMaxChanged.notify_all();
|
421
|
+
<a name="l00404"></a>00404 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (count >= max || (
|
422
|
+
<a name="l00405"></a>00405 maxPerApp != 0 && appInstanceCount[appRoot] >= maxPerApp )
|
423
|
+
<a name="l00406"></a>00406 ) {
|
424
|
+
<a name="l00407"></a>00407 AppContainerList::iterator it(list->begin());
|
425
|
+
<a name="l00408"></a>00408 AppContainerList::iterator smallest(list->begin());
|
426
|
+
<a name="l00409"></a>00409 it++;
|
427
|
+
<a name="l00410"></a>00410 <span class="keywordflow">for</span> (; it != list->end(); it++) {
|
428
|
+
<a name="l00411"></a>00411 <span class="keywordflow">if</span> ((*it)->sessions < (*smallest)->sessions) {
|
429
|
+
<a name="l00412"></a>00412 smallest = it;
|
430
|
+
<a name="l00413"></a>00413 }
|
431
|
+
<a name="l00414"></a>00414 }
|
432
|
+
<a name="l00415"></a>00415 container = *smallest;
|
433
|
+
<a name="l00416"></a>00416 list->erase(smallest);
|
434
|
+
<a name="l00417"></a>00417 list->push_back(container);
|
435
|
+
<a name="l00418"></a>00418 container->iterator = list->end();
|
436
|
+
<a name="l00419"></a>00419 container->iterator--;
|
437
|
+
<a name="l00420"></a>00420 } <span class="keywordflow">else</span> {
|
438
|
+
<a name="l00421"></a>00421 container = <a class="code" href="group__Support.html#g41b6c4a82fed72531a147de0505a8396" title="Convenience shortcut for creating a shared_ptr.">ptr</a>(<span class="keyword">new</span> AppContainer());
|
439
|
+
<a name="l00422"></a>00422 {
|
440
|
+
<a name="l00423"></a>00423 this_thread::restore_interruption ri(di);
|
441
|
+
<a name="l00424"></a>00424 <a class="code" href="classboost_1_1this__thread_1_1restore__syscall__interruption.html" title="Creating an object of this class on the stack will restore the system call interruption...">this_thread::restore_syscall_interruption</a> rsi(dsi);
|
442
|
+
<a name="l00425"></a>00425 container->app = spawnManager.<a class="code" href="classPassenger_1_1SpawnManager.html#1bafa97204ea49a88b66272be3377d53" title="Spawn a new instance of a Ruby on Rails or Rack application.">spawn</a>(appRoot,
|
443
|
+
<a name="l00426"></a>00426 lowerPrivilege, lowestUser, environment,
|
444
|
+
<a name="l00427"></a>00427 spawnMethod, appType);
|
445
|
+
<a name="l00428"></a>00428 }
|
446
|
+
<a name="l00429"></a>00429 container->sessions = 0;
|
447
|
+
<a name="l00430"></a>00430 list->push_back(container);
|
448
|
+
<a name="l00431"></a>00431 container->iterator = list->end();
|
449
|
+
<a name="l00432"></a>00432 container->iterator--;
|
450
|
+
<a name="l00433"></a>00433 appInstanceCount[appRoot]++;
|
451
|
+
<a name="l00434"></a>00434 count++;
|
452
|
+
<a name="l00435"></a>00435 active++;
|
453
|
+
<a name="l00436"></a>00436 activeOrMaxChanged.notify_all();
|
454
|
+
<a name="l00437"></a>00437 }
|
455
|
+
<a name="l00438"></a>00438 } <span class="keywordflow">else</span> {
|
456
|
+
<a name="l00439"></a>00439 <span class="keywordflow">while</span> (!(
|
457
|
+
<a name="l00440"></a>00440 active < max &&
|
458
|
+
<a name="l00441"></a>00441 (maxPerApp == 0 || appInstanceCount[appRoot] < maxPerApp)
|
459
|
+
<a name="l00442"></a>00442 )) {
|
460
|
+
<a name="l00443"></a>00443 activeOrMaxChanged.wait(l);
|
461
|
+
<a name="l00444"></a>00444 }
|
462
|
+
<a name="l00445"></a>00445 <span class="keywordflow">if</span> (count == max) {
|
463
|
+
<a name="l00446"></a>00446 container = inactiveApps.front();
|
464
|
+
<a name="l00447"></a>00447 inactiveApps.pop_front();
|
465
|
+
<a name="l00448"></a>00448 list = apps[container->app->getAppRoot()].get();
|
466
|
+
<a name="l00449"></a>00449 list->erase(container->iterator);
|
467
|
+
<a name="l00450"></a>00450 <span class="keywordflow">if</span> (list->empty()) {
|
468
|
+
<a name="l00451"></a>00451 apps.erase(container->app->getAppRoot());
|
469
|
+
<a name="l00452"></a>00452 restartFileTimes.erase(container->app->getAppRoot());
|
470
|
+
<a name="l00453"></a>00453 appInstanceCount.erase(container->app->getAppRoot());
|
471
|
+
<a name="l00454"></a>00454 } <span class="keywordflow">else</span> {
|
472
|
+
<a name="l00455"></a>00455 appInstanceCount[container->app->getAppRoot()]--;
|
473
|
+
<a name="l00456"></a>00456 }
|
474
|
+
<a name="l00457"></a>00457 count--;
|
475
|
+
<a name="l00458"></a>00458 }
|
476
|
+
<a name="l00459"></a>00459 container = <a class="code" href="group__Support.html#g41b6c4a82fed72531a147de0505a8396" title="Convenience shortcut for creating a shared_ptr.">ptr</a>(<span class="keyword">new</span> AppContainer());
|
477
|
+
<a name="l00460"></a>00460 {
|
478
|
+
<a name="l00461"></a>00461 this_thread::restore_interruption ri(di);
|
479
|
+
<a name="l00462"></a>00462 <a class="code" href="classboost_1_1this__thread_1_1restore__syscall__interruption.html" title="Creating an object of this class on the stack will restore the system call interruption...">this_thread::restore_syscall_interruption</a> rsi(dsi);
|
480
|
+
<a name="l00463"></a>00463 container->app = spawnManager.<a class="code" href="classPassenger_1_1SpawnManager.html#1bafa97204ea49a88b66272be3377d53" title="Spawn a new instance of a Ruby on Rails or Rack application.">spawn</a>(appRoot, lowerPrivilege, lowestUser,
|
481
|
+
<a name="l00464"></a>00464 environment, spawnMethod, appType);
|
482
|
+
<a name="l00465"></a>00465 }
|
483
|
+
<a name="l00466"></a>00466 container->sessions = 0;
|
484
|
+
<a name="l00467"></a>00467 it = apps.find(appRoot);
|
485
|
+
<a name="l00468"></a>00468 <span class="keywordflow">if</span> (it == apps.end()) {
|
486
|
+
<a name="l00469"></a>00469 list = <span class="keyword">new</span> AppContainerList();
|
487
|
+
<a name="l00470"></a>00470 apps[appRoot] = <a class="code" href="group__Support.html#g41b6c4a82fed72531a147de0505a8396" title="Convenience shortcut for creating a shared_ptr.">ptr</a>(list);
|
488
|
+
<a name="l00471"></a>00471 appInstanceCount[appRoot] = 1;
|
489
|
+
<a name="l00472"></a>00472 } <span class="keywordflow">else</span> {
|
490
|
+
<a name="l00473"></a>00473 list = it->second.get();
|
491
|
+
<a name="l00474"></a>00474 appInstanceCount[appRoot]++;
|
492
|
+
<a name="l00475"></a>00475 }
|
493
|
+
<a name="l00476"></a>00476 list->push_back(container);
|
494
|
+
<a name="l00477"></a>00477 container->iterator = list->end();
|
495
|
+
<a name="l00478"></a>00478 container->iterator--;
|
496
|
+
<a name="l00479"></a>00479 count++;
|
497
|
+
<a name="l00480"></a>00480 active++;
|
498
|
+
<a name="l00481"></a>00481 activeOrMaxChanged.notify_all();
|
499
|
+
<a name="l00482"></a>00482 }
|
500
|
+
<a name="l00483"></a>00483 } <span class="keywordflow">catch</span> (<span class="keyword">const</span> <a class="code" href="classPassenger_1_1SpawnException.html" title="Thrown when SpawnManager or ApplicationPool fails to spawn an application instance...">SpawnException</a> &e) {
|
501
|
+
<a name="l00484"></a>00484 <span class="keywordtype">string</span> message(<span class="stringliteral">"Cannot spawn application '"</span>);
|
502
|
+
<a name="l00485"></a>00485 message.append(appRoot);
|
503
|
+
<a name="l00486"></a>00486 message.append(<span class="stringliteral">"': "</span>);
|
504
|
+
<a name="l00487"></a>00487 message.append(e.<a class="code" href="classPassenger_1_1SpawnException.html#d2da180f89a43423a4b37248249972ff">what</a>());
|
505
|
+
<a name="l00488"></a>00488 <span class="keywordflow">if</span> (e.<a class="code" href="classPassenger_1_1SpawnException.html#e65dc272e183fd9e5637a4091cc6bbf4" title="Check whether an error page is available.">hasErrorPage</a>()) {
|
506
|
+
<a name="l00489"></a>00489 <span class="keywordflow">throw</span> <a class="code" href="classPassenger_1_1SpawnException.html" title="Thrown when SpawnManager or ApplicationPool fails to spawn an application instance...">SpawnException</a>(message, e.<a class="code" href="classPassenger_1_1SpawnException.html#6f675a37edd7070875d0744e7dd010a1" title="Return the error page content.">getErrorPage</a>());
|
507
|
+
<a name="l00490"></a>00490 } <span class="keywordflow">else</span> {
|
508
|
+
<a name="l00491"></a>00491 <span class="keywordflow">throw</span> <a class="code" href="classPassenger_1_1SpawnException.html" title="Thrown when SpawnManager or ApplicationPool fails to spawn an application instance...">SpawnException</a>(message);
|
509
|
+
<a name="l00492"></a>00492 }
|
510
|
+
<a name="l00493"></a>00493 } <span class="keywordflow">catch</span> (<span class="keyword">const</span> exception &e) {
|
511
|
+
<a name="l00494"></a>00494 <span class="keywordtype">string</span> message(<span class="stringliteral">"Cannot spawn application '"</span>);
|
512
|
+
<a name="l00495"></a>00495 message.append(appRoot);
|
513
|
+
<a name="l00496"></a>00496 message.append(<span class="stringliteral">"': "</span>);
|
514
|
+
<a name="l00497"></a>00497 message.append(e.what());
|
515
|
+
<a name="l00498"></a>00498 <span class="keywordflow">throw</span> <a class="code" href="classPassenger_1_1SpawnException.html" title="Thrown when SpawnManager or ApplicationPool fails to spawn an application instance...">SpawnException</a>(message);
|
516
|
+
<a name="l00499"></a>00499 }
|
517
|
+
<a name="l00500"></a>00500
|
518
|
+
<a name="l00501"></a>00501 <span class="keywordflow">return</span> make_pair(container, list);
|
519
|
+
<a name="l00502"></a>00502 }
|
520
|
+
<a name="l00503"></a>00503
|
521
|
+
<a name="l00504"></a>00504 <span class="keyword">public</span>:<span class="comment"></span>
|
522
|
+
<a name="l00505"></a>00505 <span class="comment"> /**</span>
|
523
|
+
<a name="l00506"></a>00506 <span class="comment"> * Create a new StandardApplicationPool object.</span>
|
524
|
+
<a name="l00507"></a>00507 <span class="comment"> *</span>
|
525
|
+
<a name="l00508"></a>00508 <span class="comment"> * @param spawnServerCommand The filename of the spawn server to use.</span>
|
526
|
+
<a name="l00509"></a>00509 <span class="comment"> * @param logFile Specify a log file that the spawn server should use.</span>
|
527
|
+
<a name="l00510"></a>00510 <span class="comment"> * Messages on its standard output and standard error channels</span>
|
528
|
+
<a name="l00511"></a>00511 <span class="comment"> * will be written to this log file. If an empty string is</span>
|
529
|
+
<a name="l00512"></a>00512 <span class="comment"> * specified, no log file will be used, and the spawn server</span>
|
530
|
+
<a name="l00513"></a>00513 <span class="comment"> * will use the same standard output/error channels as the</span>
|
531
|
+
<a name="l00514"></a>00514 <span class="comment"> * current process.</span>
|
532
|
+
<a name="l00515"></a>00515 <span class="comment"> * @param rubyCommand The Ruby interpreter's command.</span>
|
533
|
+
<a name="l00516"></a>00516 <span class="comment"> * @param user The user that the spawn manager should run as. This</span>
|
534
|
+
<a name="l00517"></a>00517 <span class="comment"> * parameter only has effect if the current process is</span>
|
535
|
+
<a name="l00518"></a>00518 <span class="comment"> * running as root. If the empty string is given, or if</span>
|
536
|
+
<a name="l00519"></a>00519 <span class="comment"> * the <tt>user</tt> is not a valid username, then</span>
|
537
|
+
<a name="l00520"></a>00520 <span class="comment"> * the spawn manager will be run as the current user.</span>
|
538
|
+
<a name="l00521"></a>00521 <span class="comment"> * @param rubyCommand The Ruby interpreter's command.</span>
|
539
|
+
<a name="l00522"></a>00522 <span class="comment"> * @throws SystemException An error occured while trying to setup the spawn server.</span>
|
540
|
+
<a name="l00523"></a>00523 <span class="comment"> * @throws IOException The specified log file could not be opened.</span>
|
541
|
+
<a name="l00524"></a>00524 <span class="comment"> */</span>
|
542
|
+
<a name="l00525"></a><a class="code" href="classPassenger_1_1StandardApplicationPool.html#f175704fc477f37ba1d387be09fa2e6b">00525</a> <a class="code" href="classPassenger_1_1StandardApplicationPool.html#f175704fc477f37ba1d387be09fa2e6b" title="Create a new StandardApplicationPool object.">StandardApplicationPool</a>(<span class="keyword">const</span> <span class="keywordtype">string</span> &spawnServerCommand,
|
543
|
+
<a name="l00526"></a>00526 <span class="keyword">const</span> <span class="keywordtype">string</span> &logFile = <span class="stringliteral">""</span>,
|
544
|
+
<a name="l00527"></a>00527 <span class="keyword">const</span> <span class="keywordtype">string</span> &rubyCommand = <span class="stringliteral">"ruby"</span>,
|
545
|
+
<a name="l00528"></a>00528 <span class="keyword">const</span> <span class="keywordtype">string</span> &user = <span class="stringliteral">""</span>)
|
546
|
+
<a name="l00529"></a>00529 :
|
547
|
+
<a name="l00530"></a>00530 #ifndef PASSENGER_USE_DUMMY_SPAWN_MANAGER
|
548
|
+
<a name="l00531"></a>00531 spawnManager(spawnServerCommand, logFile, rubyCommand, user),
|
549
|
+
<a name="l00532"></a>00532 #endif
|
550
|
+
<a name="l00533"></a>00533 data(new SharedData()),
|
551
|
+
<a name="l00534"></a>00534 lock(data->lock),
|
552
|
+
<a name="l00535"></a>00535 activeOrMaxChanged(data->activeOrMaxChanged),
|
553
|
+
<a name="l00536"></a>00536 apps(data->apps),
|
554
|
+
<a name="l00537"></a>00537 max(data->max),
|
555
|
+
<a name="l00538"></a>00538 count(data->count),
|
556
|
+
<a name="l00539"></a>00539 active(data->active),
|
557
|
+
<a name="l00540"></a>00540 maxPerApp(data->maxPerApp),
|
558
|
+
<a name="l00541"></a>00541 inactiveApps(data->inactiveApps),
|
559
|
+
<a name="l00542"></a>00542 restartFileTimes(data->restartFileTimes),
|
560
|
+
<a name="l00543"></a>00543 appInstanceCount(data->appInstanceCount)
|
561
|
+
<a name="l00544"></a>00544 {
|
562
|
+
<a name="l00545"></a>00545 detached = <span class="keyword">false</span>;
|
563
|
+
<a name="l00546"></a>00546 done = <span class="keyword">false</span>;
|
564
|
+
<a name="l00547"></a>00547 max = DEFAULT_MAX_POOL_SIZE;
|
565
|
+
<a name="l00548"></a>00548 count = 0;
|
566
|
+
<a name="l00549"></a>00549 active = 0;
|
567
|
+
<a name="l00550"></a>00550 maxPerApp = DEFAULT_MAX_INSTANCES_PER_APP;
|
568
|
+
<a name="l00551"></a>00551 maxIdleTime = DEFAULT_MAX_IDLE_TIME;
|
569
|
+
<a name="l00552"></a>00552 cleanerThread = <span class="keyword">new</span> thread(
|
570
|
+
<a name="l00553"></a>00553 bind(&StandardApplicationPool::cleanerThreadMainLoop, <span class="keyword">this</span>),
|
571
|
+
<a name="l00554"></a>00554 CLEANER_THREAD_STACK_SIZE
|
572
|
+
<a name="l00555"></a>00555 );
|
573
|
+
<a name="l00556"></a>00556 }
|
574
|
+
<a name="l00557"></a>00557
|
575
|
+
<a name="l00558"></a>00558 <span class="keyword">virtual</span> ~<a class="code" href="classPassenger_1_1StandardApplicationPool.html" title="A standard implementation of ApplicationPool for single-process environments.">StandardApplicationPool</a>() {
|
576
|
+
<a name="l00559"></a>00559 <span class="keywordflow">if</span> (!detached) {
|
577
|
+
<a name="l00560"></a>00560 this_thread::disable_interruption di;
|
578
|
+
<a name="l00561"></a>00561 {
|
579
|
+
<a name="l00562"></a>00562 mutex::scoped_lock l(lock);
|
580
|
+
<a name="l00563"></a>00563 done = <span class="keyword">true</span>;
|
581
|
+
<a name="l00564"></a>00564 cleanerThreadSleeper.notify_one();
|
582
|
+
<a name="l00565"></a>00565 }
|
583
|
+
<a name="l00566"></a>00566 cleanerThread->join();
|
584
|
+
<a name="l00567"></a>00567 }
|
585
|
+
<a name="l00568"></a>00568 <span class="keyword">delete</span> cleanerThread;
|
586
|
+
<a name="l00569"></a>00569 }
|
587
|
+
<a name="l00570"></a>00570
|
588
|
+
<a name="l00571"></a><a class="code" href="classPassenger_1_1StandardApplicationPool.html#0dcdd88c39d7f1a1d667e24c3cb9b243">00571</a> <span class="keyword">virtual</span> <a class="code" href="classPassenger_1_1Application.html#d14f673494991460b16246a527ad8ad9" title="Convenient alias for Session smart pointer.">Application::SessionPtr</a> <span class="keyword">get</span>(
|
589
|
+
<a name="l00572"></a>00572 <span class="keyword">const</span> <span class="keywordtype">string</span> &appRoot,
|
590
|
+
<a name="l00573"></a>00573 <span class="keywordtype">bool</span> lowerPrivilege = <span class="keyword">true</span>,
|
591
|
+
<a name="l00574"></a>00574 <span class="keyword">const</span> <span class="keywordtype">string</span> &lowestUser = <span class="stringliteral">"nobody"</span>,
|
592
|
+
<a name="l00575"></a>00575 <span class="keyword">const</span> <span class="keywordtype">string</span> &environment = <span class="stringliteral">"production"</span>,
|
593
|
+
<a name="l00576"></a>00576 <span class="keyword">const</span> <span class="keywordtype">string</span> &spawnMethod = <span class="stringliteral">"smart"</span>,
|
594
|
+
<a name="l00577"></a>00577 <span class="keyword">const</span> <span class="keywordtype">string</span> &appType = <span class="stringliteral">"rails"</span>
|
595
|
+
<a name="l00578"></a>00578 ) {
|
596
|
+
<a name="l00579"></a>00579 <span class="keyword">using namespace </span>boost::posix_time;
|
597
|
+
<a name="l00580"></a>00580 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> attempt = 0;
|
598
|
+
<a name="l00581"></a>00581 ptime timeLimit(get_system_time() + millisec(GET_TIMEOUT));
|
599
|
+
<a name="l00582"></a>00582 unique_lock<mutex> l(lock);
|
600
|
+
<a name="l00583"></a>00583
|
601
|
+
<a name="l00584"></a>00584 <span class="keywordflow">while</span> (<span class="keyword">true</span>) {
|
602
|
+
<a name="l00585"></a>00585 attempt++;
|
603
|
+
<a name="l00586"></a>00586
|
604
|
+
<a name="l00587"></a>00587 pair<AppContainerPtr, AppContainerList *> p(
|
605
|
+
<a name="l00588"></a>00588 spawnOrUseExisting(l, appRoot, lowerPrivilege, lowestUser,
|
606
|
+
<a name="l00589"></a>00589 environment, spawnMethod, appType)
|
607
|
+
<a name="l00590"></a>00590 );
|
608
|
+
<a name="l00591"></a>00591 AppContainerPtr &container(p.first);
|
609
|
+
<a name="l00592"></a>00592 AppContainerList &list(*p.second);
|
610
|
+
<a name="l00593"></a>00593
|
611
|
+
<a name="l00594"></a>00594 container->lastUsed = time(NULL);
|
612
|
+
<a name="l00595"></a>00595 container->sessions++;
|
613
|
+
<a name="l00596"></a>00596
|
614
|
+
<a name="l00597"></a>00597 P_ASSERT(verifyState(), <a class="code" href="classPassenger_1_1Application.html#d14f673494991460b16246a527ad8ad9" title="Convenient alias for Session smart pointer.">Application::SessionPtr</a>(),
|
615
|
+
<a name="l00598"></a>00598 <span class="stringliteral">"State is valid:\n"</span> << <a class="code" href="group__Support.html#gf6fab368d70c18fdf16bf5a24f630407" title="Convert anything to a string.">toString</a>(<span class="keyword">false</span>));
|
616
|
+
<a name="l00599"></a>00599 <span class="keywordflow">try</span> {
|
617
|
+
<a name="l00600"></a>00600 <span class="keywordflow">return</span> container->app->connect(SessionCloseCallback(data, container));
|
618
|
+
<a name="l00601"></a>00601 } <span class="keywordflow">catch</span> (<span class="keyword">const</span> exception &e) {
|
619
|
+
<a name="l00602"></a>00602 container->sessions--;
|
620
|
+
<a name="l00603"></a>00603 <span class="keywordflow">if</span> (attempt == MAX_GET_ATTEMPTS) {
|
621
|
+
<a name="l00604"></a>00604 <span class="keywordtype">string</span> message(<span class="stringliteral">"Cannot connect to an existing "</span>
|
622
|
+
<a name="l00605"></a>00605 <span class="stringliteral">"application instance for '"</span>);
|
623
|
+
<a name="l00606"></a>00606 message.append(appRoot);
|
624
|
+
<a name="l00607"></a>00607 message.append(<span class="stringliteral">"': "</span>);
|
625
|
+
<a name="l00608"></a>00608 <span class="keywordflow">try</span> {
|
626
|
+
<a name="l00609"></a>00609 <span class="keyword">const</span> <a class="code" href="classPassenger_1_1SystemException.html" title="Represents an error returned by a system call or a standard library call.">SystemException</a> &syse =
|
627
|
+
<a name="l00610"></a>00610 <span class="keyword">dynamic_cast<</span><span class="keyword">const </span><a class="code" href="classPassenger_1_1SystemException.html" title="Represents an error returned by a system call or a standard library call.">SystemException</a> &<span class="keyword">></span>(e);
|
628
|
+
<a name="l00611"></a>00611 message.append(syse.<a class="code" href="classPassenger_1_1SystemException.html#0ef41d755fea2c9b1db2252e7c418dc8" title="Returns the system&#39;s error message.">sys</a>());
|
629
|
+
<a name="l00612"></a>00612 } <span class="keywordflow">catch</span> (<span class="keyword">const</span> bad_cast &) {
|
630
|
+
<a name="l00613"></a>00613 message.append(e.what());
|
631
|
+
<a name="l00614"></a>00614 }
|
632
|
+
<a name="l00615"></a>00615 <span class="keywordflow">throw</span> <a class="code" href="classPassenger_1_1IOException.html" title="Represents an error that occured during an I/O operation.">IOException</a>(message);
|
633
|
+
<a name="l00616"></a>00616 } <span class="keywordflow">else</span> {
|
634
|
+
<a name="l00617"></a>00617 list.erase(container->iterator);
|
635
|
+
<a name="l00618"></a>00618 <span class="keywordflow">if</span> (list.empty()) {
|
636
|
+
<a name="l00619"></a>00619 apps.erase(appRoot);
|
637
|
+
<a name="l00620"></a>00620 appInstanceCount.erase(appRoot);
|
638
|
+
<a name="l00621"></a>00621 }
|
639
|
+
<a name="l00622"></a>00622 count--;
|
640
|
+
<a name="l00623"></a>00623 active--;
|
641
|
+
<a name="l00624"></a>00624 activeOrMaxChanged.notify_all();
|
642
|
+
<a name="l00625"></a>00625 P_ASSERT(verifyState(), <a class="code" href="classPassenger_1_1Application.html#d14f673494991460b16246a527ad8ad9" title="Convenient alias for Session smart pointer.">Application::SessionPtr</a>(),
|
643
|
+
<a name="l00626"></a>00626 <span class="stringliteral">"State is valid."</span>);
|
644
|
+
<a name="l00627"></a>00627 }
|
645
|
+
<a name="l00628"></a>00628 }
|
646
|
+
<a name="l00629"></a>00629 }
|
647
|
+
<a name="l00630"></a>00630 <span class="comment">// Never reached; shut up compiler warning</span>
|
648
|
+
<a name="l00631"></a>00631 <span class="keywordflow">return</span> <a class="code" href="classPassenger_1_1Application.html#d14f673494991460b16246a527ad8ad9" title="Convenient alias for Session smart pointer.">Application::SessionPtr</a>();
|
649
|
+
<a name="l00632"></a>00632 }
|
650
|
+
<a name="l00633"></a>00633
|
651
|
+
<a name="l00634"></a><a class="code" href="classPassenger_1_1StandardApplicationPool.html#bcf8faeb4f431ae07ea0e20270661d08">00634</a> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classPassenger_1_1StandardApplicationPool.html#bcf8faeb4f431ae07ea0e20270661d08" title="Clear all application instances that are currently in the pool.">clear</a>() {
|
652
|
+
<a name="l00635"></a>00635 mutex::scoped_lock l(lock);
|
653
|
+
<a name="l00636"></a>00636 apps.clear();
|
654
|
+
<a name="l00637"></a>00637 inactiveApps.clear();
|
655
|
+
<a name="l00638"></a>00638 restartFileTimes.clear();
|
656
|
+
<a name="l00639"></a>00639 appInstanceCount.clear();
|
657
|
+
<a name="l00640"></a>00640 count = 0;
|
658
|
+
<a name="l00641"></a>00641 active = 0;
|
659
|
+
<a name="l00642"></a>00642 }
|
660
|
+
<a name="l00643"></a>00643
|
661
|
+
<a name="l00644"></a>00644 <span class="keyword">virtual</span> <span class="keywordtype">void</span> setMaxIdleTime(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> seconds) {
|
662
|
+
<a name="l00645"></a>00645 mutex::scoped_lock l(lock);
|
663
|
+
<a name="l00646"></a>00646 maxIdleTime = seconds;
|
664
|
+
<a name="l00647"></a>00647 cleanerThreadSleeper.notify_one();
|
665
|
+
<a name="l00648"></a>00648 }
|
666
|
+
<a name="l00649"></a>00649
|
667
|
+
<a name="l00650"></a><a class="code" href="classPassenger_1_1StandardApplicationPool.html#04ef8c92da189520ad2022f4f82e9553">00650</a> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classPassenger_1_1StandardApplicationPool.html#04ef8c92da189520ad2022f4f82e9553" title="Set a hard limit on the number of application instances that this ApplicationPool...">setMax</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> max) {
|
668
|
+
<a name="l00651"></a>00651 mutex::scoped_lock l(lock);
|
669
|
+
<a name="l00652"></a>00652 this->max = max;
|
670
|
+
<a name="l00653"></a>00653 activeOrMaxChanged.notify_all();
|
671
|
+
<a name="l00654"></a>00654 }
|
672
|
+
<a name="l00655"></a>00655
|
673
|
+
<a name="l00656"></a><a class="code" href="classPassenger_1_1StandardApplicationPool.html#7773c4a3dfbd88eac72401d063831788">00656</a> <span class="keyword">virtual</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classPassenger_1_1StandardApplicationPool.html#7773c4a3dfbd88eac72401d063831788" title="Get the number of active applications in the pool.">getActive</a>()<span class="keyword"> const </span>{
|
674
|
+
<a name="l00657"></a>00657 <span class="keywordflow">return</span> active;
|
675
|
+
<a name="l00658"></a>00658 }
|
676
|
+
<a name="l00659"></a>00659
|
677
|
+
<a name="l00660"></a><a class="code" href="classPassenger_1_1StandardApplicationPool.html#cdbfe2b9ffacdab4438c879c2411bf02">00660</a> <span class="keyword">virtual</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classPassenger_1_1StandardApplicationPool.html#cdbfe2b9ffacdab4438c879c2411bf02" title="Get the number of active applications in the pool.">getCount</a>()<span class="keyword"> const </span>{
|
678
|
+
<a name="l00661"></a>00661 <span class="keywordflow">return</span> count;
|
679
|
+
<a name="l00662"></a>00662 }
|
680
|
+
<a name="l00663"></a>00663
|
681
|
+
<a name="l00664"></a><a class="code" href="classPassenger_1_1StandardApplicationPool.html#3bafcda8d880f70561ad8a9da16e26ef">00664</a> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classPassenger_1_1StandardApplicationPool.html#3bafcda8d880f70561ad8a9da16e26ef" title="Set a hard limit on the number of application instances that a single application...">setMaxPerApp</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> maxPerApp) {
|
682
|
+
<a name="l00665"></a>00665 mutex::scoped_lock l(lock);
|
683
|
+
<a name="l00666"></a>00666 this->maxPerApp = maxPerApp;
|
684
|
+
<a name="l00667"></a>00667 activeOrMaxChanged.notify_all();
|
685
|
+
<a name="l00668"></a>00668 }
|
686
|
+
<a name="l00669"></a>00669
|
687
|
+
<a name="l00670"></a><a class="code" href="classPassenger_1_1StandardApplicationPool.html#6955152d237920988d20297d2fff5660">00670</a> <span class="keyword">virtual</span> pid_t <a class="code" href="classPassenger_1_1StandardApplicationPool.html#6955152d237920988d20297d2fff5660" title="Get the process ID of the spawn server that is used.">getSpawnServerPid</a>()<span class="keyword"> const </span>{
|
688
|
+
<a name="l00671"></a>00671 <span class="keywordflow">return</span> spawnManager.<a class="code" href="classPassenger_1_1SpawnManager.html#1f77e2e7e6cb464028c13a29f983ad8e" title="Get the Process ID of the spawn server.">getServerPid</a>();
|
689
|
+
<a name="l00672"></a>00672 }
|
690
|
+
<a name="l00673"></a>00673 <span class="comment"></span>
|
691
|
+
<a name="l00674"></a>00674 <span class="comment"> /**</span>
|
692
|
+
<a name="l00675"></a>00675 <span class="comment"> * Returns a textual description of the internal state of</span>
|
693
|
+
<a name="l00676"></a>00676 <span class="comment"> * the application pool.</span>
|
694
|
+
<a name="l00677"></a>00677 <span class="comment"> */</span>
|
695
|
+
<a name="l00678"></a><a class="code" href="classPassenger_1_1StandardApplicationPool.html#22b4149ca8256c3042fc342e681b0383">00678</a> <span class="keyword">virtual</span> <span class="keywordtype">string</span> <a class="code" href="group__Support.html#gf6fab368d70c18fdf16bf5a24f630407" title="Convert anything to a string.">toString</a>(<span class="keywordtype">bool</span> lockMutex = <span class="keyword">true</span>)<span class="keyword"> const </span>{
|
696
|
+
<a name="l00679"></a>00679 <span class="keywordflow">if</span> (lockMutex) {
|
697
|
+
<a name="l00680"></a>00680 <span class="keywordflow">return</span> <a class="code" href="group__Support.html#gf6fab368d70c18fdf16bf5a24f630407" title="Convert anything to a string.">toString</a>(boost::adopt_lock);
|
698
|
+
<a name="l00681"></a>00681 } <span class="keywordflow">else</span> {
|
699
|
+
<a name="l00682"></a>00682 <span class="keywordflow">return</span> <a class="code" href="group__Support.html#gf6fab368d70c18fdf16bf5a24f630407" title="Convert anything to a string.">toString</a>(boost::defer_lock);
|
700
|
+
<a name="l00683"></a>00683 }
|
701
|
+
<a name="l00684"></a>00684 }
|
702
|
+
<a name="l00685"></a>00685 };
|
703
|
+
<a name="l00686"></a>00686
|
704
|
+
<a name="l00687"></a>00687 } <span class="comment">// namespace Passenger</span>
|
705
|
+
<a name="l00688"></a>00688
|
706
|
+
<a name="l00689"></a>00689 <span class="preprocessor">#endif </span><span class="comment">/* _PASSENGER_STANDARD_APPLICATION_POOL_H_ */</span>
|
707
|
+
<a name="l00690"></a>00690
|
708
|
+
</pre></div></div>
|
709
|
+
<hr size="1"><address style="text-align: right;"><small>Generated on Tue Jun 24 14:03:42 2008 for Passenger by
|
551
710
|
<a href="http://www.doxygen.org/index.html">
|
552
|
-
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.
|
711
|
+
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
|
553
712
|
</body>
|
554
713
|
</html>
|