passenger 6.0.23 → 6.0.25
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG +158 -114
- data/LICENSE +1 -1
- data/README.md +1 -1
- data/Rakefile +9 -5
- data/bin/passenger +2 -2
- data/bin/passenger-config +2 -2
- data/bin/passenger-install-apache2-module +7 -2
- data/bin/passenger-install-nginx-module +19 -4
- data/bin/passenger-memory-stats +2 -2
- data/bin/passenger-status +2 -2
- data/build/agent.rb +2 -2
- data/build/apache2.rb +3 -3
- data/build/basics.rb +12 -6
- data/build/common_library.rb +2 -2
- data/build/cxx_tests.rb +20 -9
- data/build/integration_tests.rb +2 -2
- data/build/misc.rb +2 -2
- data/build/nginx.rb +2 -2
- data/build/node_tests.rb +2 -2
- data/build/oxt_tests.rb +2 -2
- data/build/packaging.rb +2 -2
- data/build/ruby_extension.rb +2 -2
- data/build/ruby_tests.rb +2 -2
- data/build/schema_printer.rb +2 -2
- data/build/support/cplusplus.rb +2 -2
- data/build/support/cxx_dependency_map.rb +40 -6
- data/build/support/general.rb +2 -2
- data/build/support/vendor/cxx_hinted_parser/LICENSE.md +1 -1
- data/build/support/vendor/cxx_hinted_parser/lib/cxx_hinted_parser/parser.rb +2 -2
- data/build/support/vendor/cxx_hinted_parser/lib/cxx_hinted_parser.rb +2 -2
- data/build/support/vendor/cxxcodebuilder/LICENSE.md +1 -1
- data/build/support/vendor/cxxcodebuilder/lib/cxxcodebuilder/builder.rb +2 -2
- data/build/support/vendor/cxxcodebuilder/lib/cxxcodebuilder/initializer_builder.rb +2 -2
- data/build/support/vendor/cxxcodebuilder/lib/cxxcodebuilder.rb +2 -2
- data/build/test_basics.rb +6 -14
- data/dev/copy_boost_headers +2 -2
- data/dev/nginx_version_sha256 +2 -2
- data/doc/DesignAspects/LimitedGemDependencies.md +39 -0
- data/doc/DesignAspects/NoGemActivationDuringRubyLoaderInitialization.md +27 -0
- data/package.json +1 -1
- data/passenger.gemspec +5 -1
- data/resources/templates/apache2/deployment_example.txt.erb +1 -1
- data/resources/templates/nginx/deployment_example.txt.erb +1 -1
- data/resources/templates/standalone/http.erb +1 -0
- data/src/agent/AgentMain.cpp +2 -2
- data/src/agent/Core/AdminPanelConnector.h +2 -2
- data/src/agent/Core/ApiServer.h +2 -2
- data/src/agent/Core/ApplicationPool/AbstractSession.h +2 -2
- data/src/agent/Core/ApplicationPool/BasicGroupInfo.h +2 -2
- data/src/agent/Core/ApplicationPool/BasicProcessInfo.h +2 -2
- data/src/agent/Core/ApplicationPool/Common.h +2 -2
- data/src/agent/Core/ApplicationPool/Context.h +7 -4
- data/src/agent/Core/ApplicationPool/Group/InitializationAndShutdown.cpp +10 -2
- data/src/agent/Core/ApplicationPool/Group/InternalUtils.cpp +12 -4
- data/src/agent/Core/ApplicationPool/Group/LifetimeAndBasics.cpp +10 -2
- data/src/agent/Core/ApplicationPool/Group/Miscellaneous.cpp +11 -2
- data/src/agent/Core/ApplicationPool/Group/OutOfBandWork.cpp +11 -2
- data/src/agent/Core/ApplicationPool/Group/ProcessListManagement.cpp +85 -5
- data/src/agent/Core/ApplicationPool/Group/SessionManagement.cpp +42 -12
- data/src/agent/Core/ApplicationPool/Group/SpawningAndRestarting.cpp +10 -2
- data/src/agent/Core/ApplicationPool/Group/StateInspection.cpp +10 -2
- data/src/agent/Core/ApplicationPool/Group/Verification.cpp +10 -2
- data/src/agent/Core/ApplicationPool/Group.h +18 -7
- data/src/agent/Core/ApplicationPool/Implementation.cpp +2 -2
- data/src/agent/Core/ApplicationPool/Options.h +3 -4
- data/src/agent/Core/ApplicationPool/Pool/AnalyticsCollection.cpp +7 -2
- data/src/agent/Core/ApplicationPool/Pool/GarbageCollection.cpp +7 -2
- data/src/agent/Core/ApplicationPool/Pool/GeneralUtils.cpp +7 -2
- data/src/agent/Core/ApplicationPool/Pool/GroupUtils.cpp +7 -2
- data/src/agent/Core/ApplicationPool/Pool/InitializationAndShutdown.cpp +7 -2
- data/src/agent/Core/ApplicationPool/Pool/Miscellaneous.cpp +7 -2
- data/src/agent/Core/ApplicationPool/Pool/ProcessUtils.cpp +7 -2
- data/src/agent/Core/ApplicationPool/Pool/StateInspection.cpp +13 -3
- data/src/agent/Core/ApplicationPool/Pool.h +2 -4
- data/src/agent/Core/ApplicationPool/Process.cpp +2 -2
- data/src/agent/Core/ApplicationPool/Process.h +24 -8
- data/src/agent/Core/ApplicationPool/Session.h +8 -3
- data/src/agent/Core/ApplicationPool/Socket.h +2 -2
- data/src/agent/Core/ApplicationPool/TestSession.h +2 -2
- data/src/agent/Core/Config.h +10 -5
- data/src/agent/Core/ConfigChange.cpp +2 -2
- data/src/agent/Core/ConfigChange.h +2 -2
- data/src/agent/Core/Controller/AppResponse.h +2 -2
- data/src/agent/Core/Controller/BufferBody.cpp +2 -2
- data/src/agent/Core/Controller/CheckoutSession.cpp +2 -2
- data/src/agent/Core/Controller/Client.h +2 -2
- data/src/agent/Core/Controller/Config.cpp +2 -2
- data/src/agent/Core/Controller/Config.h +9 -4
- data/src/agent/Core/Controller/ForwardResponse.cpp +2 -2
- data/src/agent/Core/Controller/Hooks.cpp +2 -2
- data/src/agent/Core/Controller/Implementation.cpp +2 -2
- data/src/agent/Core/Controller/InitRequest.cpp +2 -3
- data/src/agent/Core/Controller/InitializationAndShutdown.cpp +2 -2
- data/src/agent/Core/Controller/InternalUtils.cpp +2 -2
- data/src/agent/Core/Controller/Miscellaneous.cpp +2 -2
- data/src/agent/Core/Controller/Request.h +2 -2
- data/src/agent/Core/Controller/SendRequest.cpp +2 -2
- data/src/agent/Core/Controller/StateInspection.cpp +2 -2
- data/src/agent/Core/Controller/TurboCaching.h +2 -2
- data/src/agent/Core/Controller.h +2 -2
- data/src/agent/Core/CoreMain.cpp +13 -20
- data/src/agent/Core/OptionParser.h +7 -2
- data/src/agent/Core/ResponseCache.h +2 -2
- data/src/agent/Core/SecurityUpdateChecker.h +2 -2
- data/src/agent/Core/SpawningKit/Config/AutoGeneratedCode.h +2 -2
- data/src/agent/Core/SpawningKit/Config/AutoGeneratedCode.h.cxxcodebuilder +2 -2
- data/src/agent/Core/SpawningKit/Config.h +2 -2
- data/src/agent/Core/SpawningKit/Context.h +2 -2
- data/src/agent/Core/SpawningKit/DirectSpawner.h +2 -2
- data/src/agent/Core/SpawningKit/DummySpawner.h +2 -2
- data/src/agent/Core/SpawningKit/ErrorRenderer.h +2 -2
- data/src/agent/Core/SpawningKit/Exceptions.h +2 -2
- data/src/agent/Core/SpawningKit/Factory.h +2 -2
- data/src/agent/Core/SpawningKit/Handshake/BackgroundIOCapturer.h +2 -2
- data/src/agent/Core/SpawningKit/Handshake/Perform.h +2 -2
- data/src/agent/Core/SpawningKit/Handshake/Prepare.h +3 -55
- data/src/agent/Core/SpawningKit/Handshake/Session.h +5 -2
- data/src/agent/Core/SpawningKit/Handshake/WorkDir.h +7 -4
- data/src/agent/Core/SpawningKit/Journey.h +2 -2
- data/src/agent/Core/SpawningKit/PipeWatcher.h +2 -2
- data/src/agent/Core/SpawningKit/Result/AutoGeneratedCode.h +2 -2
- data/src/agent/Core/SpawningKit/Result/AutoGeneratedCode.h.cxxcodebuilder +2 -2
- data/src/agent/Core/SpawningKit/Result.h +2 -2
- data/src/agent/Core/SpawningKit/SmartSpawner.h +8 -4
- data/src/agent/Core/SpawningKit/Spawner.h +6 -2
- data/src/agent/Core/SpawningKit/UserSwitchingRules.h +2 -2
- data/src/agent/Core/TelemetryCollector.h +2 -2
- data/src/agent/ExecHelper/ExecHelperMain.cpp +2 -2
- data/src/agent/FileReadHelper/FileReadHelperMain.cpp +2 -2
- data/src/agent/MainFunctions.h +2 -2
- data/src/agent/Shared/ApiAccountUtils.h +2 -2
- data/src/agent/Shared/ApiServerUtils.h +2 -2
- data/src/agent/Shared/ApplicationPoolApiKey.h +2 -2
- data/src/agent/Shared/Fundamentals/AbortHandler.cpp +90 -11
- data/src/agent/Shared/Fundamentals/AbortHandler.h +4 -2
- data/src/agent/Shared/Fundamentals/Initialization.cpp +11 -5
- data/src/agent/Shared/Fundamentals/Initialization.h +5 -5
- data/src/agent/Shared/Fundamentals/Utils.cpp +2 -2
- data/src/agent/Shared/Fundamentals/Utils.h +2 -2
- data/src/agent/SpawnEnvSetupper/SpawnEnvSetupperMain.cpp +8 -9
- data/src/agent/SystemMetrics/SystemMetricsMain.cpp +2 -2
- data/src/agent/TempDirToucher/TempDirToucherMain.cpp +2 -2
- data/src/agent/Watchdog/AgentWatcher.cpp +2 -2
- data/src/agent/Watchdog/ApiServer.h +2 -2
- data/src/agent/Watchdog/Config.h +4 -3
- data/src/agent/Watchdog/CoreWatcher.cpp +2 -2
- data/src/agent/Watchdog/InstanceDirToucher.cpp +2 -2
- data/src/agent/Watchdog/WatchdogMain.cpp +6 -9
- data/src/apache2_module/Bucket.cpp +2 -2
- data/src/apache2_module/Bucket.h +2 -2
- data/src/apache2_module/CBindings.cpp +2 -2
- data/src/apache2_module/Config.cpp +2 -2
- data/src/apache2_module/Config.h +2 -2
- data/src/apache2_module/ConfigGeneral/AutoGeneratedDefinitions.cpp +7 -2
- data/src/apache2_module/ConfigGeneral/AutoGeneratedDefinitions.cpp.cxxcodebuilder +2 -2
- data/src/apache2_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.cpp +7 -2
- data/src/apache2_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.cpp.cxxcodebuilder +2 -2
- data/src/apache2_module/ConfigGeneral/AutoGeneratedSetterFuncs.cpp +17 -2
- data/src/apache2_module/ConfigGeneral/AutoGeneratedSetterFuncs.cpp.cxxcodebuilder +2 -2
- data/src/apache2_module/ConfigGeneral/Common.h +2 -2
- data/src/apache2_module/ConfigGeneral/ManifestGeneration.h +7 -5
- data/src/apache2_module/ConfigGeneral/SetterFuncs.h +2 -2
- data/src/apache2_module/DirConfig/AutoGeneratedCreateFunction.cpp +2 -2
- data/src/apache2_module/DirConfig/AutoGeneratedCreateFunction.cpp.cxxcodebuilder +2 -2
- data/src/apache2_module/DirConfig/AutoGeneratedHeaderSerialization.cpp +2 -2
- data/src/apache2_module/DirConfig/AutoGeneratedHeaderSerialization.cpp.cxxcodebuilder +2 -2
- data/src/apache2_module/DirConfig/AutoGeneratedManifestGeneration.cpp +2 -2
- data/src/apache2_module/DirConfig/AutoGeneratedManifestGeneration.cpp.cxxcodebuilder +2 -2
- data/src/apache2_module/DirConfig/AutoGeneratedMergeFunction.cpp +2 -2
- data/src/apache2_module/DirConfig/AutoGeneratedMergeFunction.cpp.cxxcodebuilder +2 -2
- data/src/apache2_module/DirConfig/AutoGeneratedStruct.h +5 -2
- data/src/apache2_module/DirConfig/AutoGeneratedStruct.h.cxxcodebuilder +5 -2
- data/src/apache2_module/DirectoryMapper.h +2 -2
- data/src/apache2_module/Hooks.cpp +3 -2
- data/src/apache2_module/Hooks.h +2 -2
- data/src/apache2_module/ServerConfig/AutoGeneratedManifestGeneration.cpp +11 -2
- data/src/apache2_module/ServerConfig/AutoGeneratedManifestGeneration.cpp.cxxcodebuilder +2 -2
- data/src/apache2_module/ServerConfig/AutoGeneratedStruct.h +15 -3
- data/src/apache2_module/ServerConfig/AutoGeneratedStruct.h.cxxcodebuilder +4 -3
- data/src/apache2_module/Utils.h +2 -2
- data/src/apache2_module/mod_passenger.c +2 -2
- data/src/cxx_supportlib/Algorithms/Hasher.cpp +2 -2
- data/src/cxx_supportlib/Algorithms/Hasher.h +2 -2
- data/src/cxx_supportlib/Algorithms/MovingAverage.h +2 -8
- data/src/cxx_supportlib/AppLocalConfigFileUtils.h +2 -2
- data/src/cxx_supportlib/AppTypeDetector/CBindings.cpp +2 -2
- data/src/cxx_supportlib/AppTypeDetector/CBindings.h +2 -2
- data/src/cxx_supportlib/AppTypeDetector/Detector.h +2 -2
- data/src/cxx_supportlib/BackgroundEventLoop.cpp +2 -2
- data/src/cxx_supportlib/BackgroundEventLoop.h +2 -2
- data/src/cxx_supportlib/ConfigKit/AsyncUtils.h +2 -2
- data/src/cxx_supportlib/ConfigKit/Common.h +2 -2
- data/src/cxx_supportlib/ConfigKit/ConfigKit.h +2 -2
- data/src/cxx_supportlib/ConfigKit/DummyTranslator.h +2 -2
- data/src/cxx_supportlib/ConfigKit/PrefixTranslator.h +2 -2
- data/src/cxx_supportlib/ConfigKit/Schema.h +2 -2
- data/src/cxx_supportlib/ConfigKit/SchemaUtils.h +2 -2
- data/src/cxx_supportlib/ConfigKit/Store.h +2 -2
- data/src/cxx_supportlib/ConfigKit/SubComponentUtils.h +2 -2
- data/src/cxx_supportlib/ConfigKit/TableTranslator.h +2 -2
- data/src/cxx_supportlib/ConfigKit/Translator.h +2 -2
- data/src/cxx_supportlib/ConfigKit/Utils.h +2 -2
- data/src/cxx_supportlib/Constants.h +3 -3
- data/src/cxx_supportlib/Constants.h.cxxcodebuilder +2 -2
- data/src/cxx_supportlib/DataStructures/HashMap.h +2 -2
- data/src/cxx_supportlib/DataStructures/HashedStaticString.h +2 -2
- data/src/cxx_supportlib/DataStructures/LString.cpp +2 -2
- data/src/cxx_supportlib/DataStructures/LString.h +2 -2
- data/src/cxx_supportlib/DataStructures/StringKeyTable.h +2 -2
- data/src/cxx_supportlib/DataStructures/StringMap.h +2 -3
- data/src/cxx_supportlib/Exceptions.cpp +2 -2
- data/src/cxx_supportlib/Exceptions.h +2 -2
- data/src/cxx_supportlib/FileDescriptor.h +2 -2
- data/src/cxx_supportlib/FileTools/FileManip.cpp +2 -2
- data/src/cxx_supportlib/FileTools/FileManip.h +2 -2
- data/src/cxx_supportlib/FileTools/LargeFiles.h +2 -2
- data/src/cxx_supportlib/FileTools/PathManip.cpp +3 -3
- data/src/cxx_supportlib/FileTools/PathManip.h +2 -2
- data/src/cxx_supportlib/FileTools/PathManipCBindings.cpp +2 -2
- data/src/cxx_supportlib/FileTools/PathManipCBindings.h +2 -2
- data/src/cxx_supportlib/FileTools/PathSecurityCheck.cpp +2 -2
- data/src/cxx_supportlib/FileTools/PathSecurityCheck.h +2 -2
- data/src/cxx_supportlib/Hooks.h +2 -2
- data/src/cxx_supportlib/IOTools/BufferedIO.h +2 -2
- data/src/cxx_supportlib/IOTools/IOUtils.cpp +2 -2
- data/src/cxx_supportlib/IOTools/IOUtils.h +2 -2
- data/src/cxx_supportlib/IOTools/MessageIO.h +2 -2
- data/src/cxx_supportlib/IOTools/MessageSerialization.h +2 -2
- data/src/cxx_supportlib/InstanceDirectory.h +2 -2
- data/src/cxx_supportlib/Integrations/LibevJsonUtils.h +2 -2
- data/src/cxx_supportlib/JsonTools/Autocast.h +2 -2
- data/src/cxx_supportlib/JsonTools/CBindings.cpp +2 -2
- data/src/cxx_supportlib/JsonTools/CBindings.h +2 -2
- data/src/cxx_supportlib/JsonTools/JsonUtils.h +2 -2
- data/src/cxx_supportlib/LoggingKit/Assert.h +2 -2
- data/src/cxx_supportlib/LoggingKit/Config.h +2 -2
- data/src/cxx_supportlib/LoggingKit/Context.h +2 -2
- data/src/cxx_supportlib/LoggingKit/Forward.h +2 -2
- data/src/cxx_supportlib/LoggingKit/Implementation.cpp +2 -2
- data/src/cxx_supportlib/LoggingKit/Logging.h +2 -2
- data/src/cxx_supportlib/LoggingKit/LoggingKit.h +2 -2
- data/src/cxx_supportlib/LveLoggingDecorator.h +2 -2
- data/src/cxx_supportlib/MemoryKit/mbuf.cpp +2 -2
- data/src/cxx_supportlib/MemoryKit/mbuf.h +2 -2
- data/src/cxx_supportlib/MemoryKit/palloc.cpp +1 -1
- data/src/cxx_supportlib/MemoryKit/palloc.h +1 -1
- data/src/cxx_supportlib/ProcessManagement/Ruby.cpp +2 -2
- data/src/cxx_supportlib/ProcessManagement/Ruby.h +2 -2
- data/src/cxx_supportlib/ProcessManagement/Spawn.cpp +2 -2
- data/src/cxx_supportlib/ProcessManagement/Spawn.h +2 -2
- data/src/cxx_supportlib/ProcessManagement/Utils.cpp +2 -2
- data/src/cxx_supportlib/ProcessManagement/Utils.h +2 -2
- data/src/cxx_supportlib/RandomGenerator.h +2 -2
- data/src/cxx_supportlib/ResourceLocator.h +2 -2
- data/src/cxx_supportlib/SafeLibev.h +3 -5
- data/src/cxx_supportlib/SecurityKit/Crypto.cpp +2 -2
- data/src/cxx_supportlib/SecurityKit/Crypto.h +2 -2
- data/src/cxx_supportlib/SecurityKit/MemZeroGuard.h +2 -2
- data/src/cxx_supportlib/ServerKit/AcceptLoadBalancer.h +2 -2
- data/src/cxx_supportlib/ServerKit/Channel.h +2 -2
- data/src/cxx_supportlib/ServerKit/Client.h +2 -2
- data/src/cxx_supportlib/ServerKit/ClientRef.h +2 -2
- data/src/cxx_supportlib/ServerKit/Config.h +2 -2
- data/src/cxx_supportlib/ServerKit/Context.h +2 -2
- data/src/cxx_supportlib/ServerKit/CookieUtils.h +2 -2
- data/src/cxx_supportlib/ServerKit/Errors.h +2 -2
- data/src/cxx_supportlib/ServerKit/FdSinkChannel.h +2 -2
- data/src/cxx_supportlib/ServerKit/FdSourceChannel.h +2 -2
- data/src/cxx_supportlib/ServerKit/FileBufferedChannel.h +2 -2
- data/src/cxx_supportlib/ServerKit/FileBufferedFdSinkChannel.h +2 -2
- data/src/cxx_supportlib/ServerKit/HeaderTable.h +2 -2
- data/src/cxx_supportlib/ServerKit/Hooks.h +4 -4
- data/src/cxx_supportlib/ServerKit/HttpChunkedBodyParser.h +2 -2
- data/src/cxx_supportlib/ServerKit/HttpChunkedBodyParserState.h +2 -2
- data/src/cxx_supportlib/ServerKit/HttpClient.h +2 -2
- data/src/cxx_supportlib/ServerKit/HttpHeaderParser.h +2 -3
- data/src/cxx_supportlib/ServerKit/HttpHeaderParserState.h +2 -2
- data/src/cxx_supportlib/ServerKit/HttpRequest.h +2 -2
- data/src/cxx_supportlib/ServerKit/HttpRequestRef.h +2 -2
- data/src/cxx_supportlib/ServerKit/HttpServer.h +17 -12
- data/src/cxx_supportlib/ServerKit/Implementation.cpp +2 -2
- data/src/cxx_supportlib/ServerKit/Server.h +2 -8
- data/src/cxx_supportlib/StaticString.h +2 -2
- data/src/cxx_supportlib/StrIntTools/DateParsing.h +2 -2
- data/src/cxx_supportlib/StrIntTools/StrIntUtils.cpp +2 -2
- data/src/cxx_supportlib/StrIntTools/StrIntUtils.h +2 -2
- data/src/cxx_supportlib/StrIntTools/StrIntUtilsNoStrictAliasing.cpp +2 -2
- data/src/cxx_supportlib/StrIntTools/StringScanning.h +2 -2
- data/src/cxx_supportlib/StrIntTools/Template.h +2 -2
- data/src/cxx_supportlib/SystemTools/ContainerHelpers.h +2 -2
- data/src/cxx_supportlib/SystemTools/ProcessMetricsCollector.h +2 -2
- data/src/cxx_supportlib/SystemTools/SystemMetricsCollector.h +2 -2
- data/src/cxx_supportlib/SystemTools/SystemTime.cpp +2 -2
- data/src/cxx_supportlib/SystemTools/SystemTime.h +2 -2
- data/src/cxx_supportlib/SystemTools/UserDatabase.cpp +2 -2
- data/src/cxx_supportlib/SystemTools/UserDatabase.h +2 -2
- data/src/cxx_supportlib/Utils/AnsiColorConstants.h +2 -2
- data/src/cxx_supportlib/Utils/AsyncSignalSafeUtils.h +4 -2
- data/src/cxx_supportlib/Utils/BlockingQueue.h +2 -2
- data/src/cxx_supportlib/Utils/CachedFileStat.cpp +2 -2
- data/src/cxx_supportlib/Utils/CachedFileStat.h +2 -2
- data/src/cxx_supportlib/Utils/CachedFileStat.hpp +2 -2
- data/src/cxx_supportlib/Utils/ClassUtils.h +2 -2
- data/src/cxx_supportlib/Utils/Curl.h +2 -2
- data/src/cxx_supportlib/Utils/FastStringStream.h +2 -2
- data/src/cxx_supportlib/Utils/FileChangeChecker.h +2 -2
- data/src/cxx_supportlib/Utils/HttpConstants.h +2 -2
- data/src/cxx_supportlib/Utils/IniFile.h +2 -2
- data/src/cxx_supportlib/Utils/MessagePassing.h +2 -2
- data/src/cxx_supportlib/Utils/OptionParsing.h +2 -2
- data/src/cxx_supportlib/Utils/ReleaseableScopedPointer.h +2 -2
- data/src/cxx_supportlib/Utils/ScopeGuard.h +2 -2
- data/src/cxx_supportlib/Utils/SpeedMeter.h +2 -5
- data/src/cxx_supportlib/Utils/Timer.h +2 -2
- data/src/cxx_supportlib/Utils/VariantMap.h +2 -2
- data/src/cxx_supportlib/Utils.cpp +2 -2
- data/src/cxx_supportlib/Utils.h +2 -2
- data/src/cxx_supportlib/WatchdogLauncher.cpp +2 -2
- data/src/cxx_supportlib/WatchdogLauncher.h +3 -5
- data/src/cxx_supportlib/WebSocketCommandReverseServer.h +2 -2
- data/src/cxx_supportlib/WrapperRegistry/CBindings.cpp +2 -2
- data/src/cxx_supportlib/WrapperRegistry/CBindings.h +2 -2
- data/src/cxx_supportlib/WrapperRegistry/Entry.h +2 -2
- data/src/cxx_supportlib/WrapperRegistry/Registry.h +2 -2
- data/src/cxx_supportlib/oxt/backtrace.hpp +1 -1
- data/src/cxx_supportlib/oxt/detail/backtrace_disabled.hpp +1 -1
- data/src/cxx_supportlib/oxt/detail/backtrace_enabled.hpp +1 -1
- data/src/cxx_supportlib/oxt/detail/context.hpp +1 -1
- data/src/cxx_supportlib/oxt/detail/spin_lock_darwin.hpp +1 -1
- data/src/cxx_supportlib/oxt/detail/spin_lock_gcc_x86.hpp +1 -1
- data/src/cxx_supportlib/oxt/detail/spin_lock_portable.hpp +1 -1
- data/src/cxx_supportlib/oxt/detail/spin_lock_pthreads.hpp +1 -1
- data/src/cxx_supportlib/oxt/detail/tracable_exception_disabled.hpp +1 -1
- data/src/cxx_supportlib/oxt/detail/tracable_exception_enabled.hpp +1 -1
- data/src/cxx_supportlib/oxt/dynamic_thread_group.hpp +1 -1
- data/src/cxx_supportlib/oxt/implementation.cpp +12 -1
- data/src/cxx_supportlib/oxt/initialize.hpp +1 -1
- data/src/cxx_supportlib/oxt/macros.hpp +1 -1
- data/src/cxx_supportlib/oxt/spin_lock.hpp +1 -1
- data/src/cxx_supportlib/oxt/system_calls.cpp +11 -4
- data/src/cxx_supportlib/oxt/system_calls.hpp +1 -1
- data/src/cxx_supportlib/oxt/thread.hpp +2 -2
- data/src/cxx_supportlib/oxt/tracable_exception.hpp +1 -1
- data/src/cxx_supportlib/vendor-copy/adhoc_lve.h +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/as_tuple.hpp +35 -9
- data/src/cxx_supportlib/vendor-modified/boost/asio/associated_immediate_executor.hpp +3 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/associator.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/async_result.hpp +74 -68
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_datagram_socket.hpp +11 -11
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_deadline_timer.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_random_access_file.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_raw_socket.hpp +10 -10
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_readable_pipe.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_seq_packet_socket.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_serial_port.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_signal_set.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket_acceptor.hpp +9 -9
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_stream_file.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_stream_socket.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_waitable_timer.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_writable_pipe.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/bind_allocator.hpp +88 -22
- data/src/cxx_supportlib/vendor-modified/boost/asio/bind_cancellation_slot.hpp +91 -22
- data/src/cxx_supportlib/vendor-modified/boost/asio/bind_executor.hpp +105 -23
- data/src/cxx_supportlib/vendor-modified/boost/asio/bind_immediate_executor.hpp +90 -23
- data/src/cxx_supportlib/vendor-modified/boost/asio/buffer.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/buffer_registration.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/cancel_after.hpp +303 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/cancel_at.hpp +296 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/{experimental/impl/co_composed.hpp → co_composed.hpp} +208 -61
- data/src/cxx_supportlib/vendor-modified/boost/asio/completion_condition.hpp +49 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/compose.hpp +10 -201
- data/src/cxx_supportlib/vendor-modified/boost/asio/composed.hpp +415 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/connect.hpp +214 -48
- data/src/cxx_supportlib/vendor-modified/boost/asio/coroutine.hpp +3 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/default_completion_token.hpp +91 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/deferred.hpp +9 -5
- data/src/cxx_supportlib/vendor-modified/boost/asio/detached.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/buffered_stream_storage.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/{experimental/detail/channel_message.hpp → detail/completion_message.hpp} +14 -16
- data/src/cxx_supportlib/vendor-modified/boost/asio/{experimental/detail/channel_payload.hpp → detail/completion_payload.hpp} +30 -32
- data/src/cxx_supportlib/vendor-modified/boost/asio/{experimental/detail/channel_handler.hpp → detail/completion_payload_handler.hpp} +15 -13
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/config.hpp +26 -32
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/deadline_timer_service.hpp +5 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_alloc_helpers.hpp +14 -118
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/descriptor_ops.ipp +36 -33
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/dev_poll_reactor.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/reactive_descriptor_service.ipp +7 -5
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/reactive_socket_service_base.ipp +6 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/socket_ops.ipp +44 -35
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/socket_select_interrupter.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/initiation_base.hpp +64 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/memory.hpp +0 -11
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_descriptor_service.hpp +20 -16
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_send_op.hpp +0 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_service.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_service_base.hpp +23 -18
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/recycling_allocator.hpp +9 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolve_endpoint_op.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolve_query_op.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread_info_base.hpp +11 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timed_cancel_op.hpp +363 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/wrapped_handler.hpp +29 -51
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/allocator.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/blocking.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/blocking_adaptation.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/context.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/mapping.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/occupancy.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/outstanding_work.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/relationship.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/basic_channel.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/basic_concurrent_channel.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/co_composed.hpp +2 -114
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_receive_op.hpp +2 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_send_functions.hpp +27 -19
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_send_op.hpp +0 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_service.hpp +17 -15
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/coro_promise_allocator.hpp +2 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/impl/channel_service.hpp +4 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/partial_promise.hpp +3 -5
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/as_single.hpp +12 -7
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/coro.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/parallel_group.hpp +38 -40
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/promise.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/use_coro.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/use_promise.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/immediate.hpp +144 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/append.hpp +14 -7
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/as_tuple.hpp +45 -14
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/awaitable.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/cancel_after.hpp +270 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/cancel_at.hpp +270 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/co_spawn.hpp +8 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/connect.hpp +60 -166
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/consign.hpp +14 -7
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/detached.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/prepend.hpp +14 -7
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read.hpp +26 -177
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_at.hpp +16 -82
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_until.hpp +13 -286
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/redirect_error.hpp +55 -18
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/spawn.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/write.hpp +26 -185
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/write_at.hpp +16 -87
- data/src/cxx_supportlib/vendor-modified/boost/asio/io_context_strand.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/detail/socket_option.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v6.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/placeholders.hpp +12 -6
- data/src/cxx_supportlib/vendor-modified/boost/asio/posix/basic_descriptor.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/posix/basic_stream_descriptor.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/read.hpp +127 -28
- data/src/cxx_supportlib/vendor-modified/boost/asio/read_at.hpp +70 -20
- data/src/cxx_supportlib/vendor-modified/boost/asio/read_until.hpp +114 -36
- data/src/cxx_supportlib/vendor-modified/boost/asio/redirect_error.hpp +43 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/registered_buffer.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/spawn.hpp +0 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/impl/openssl_init.ipp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/context.ipp +10 -7
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/stream.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/asio/this_coro.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/use_awaitable.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/use_future.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/uses_executor.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/version.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/write.hpp +147 -35
- data/src/cxx_supportlib/vendor-modified/boost/asio/write_at.hpp +74 -22
- data/src/cxx_supportlib/vendor-modified/boost/asio.hpp +6 -0
- data/src/cxx_supportlib/vendor-modified/boost/assert/source_location.hpp +4 -1
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/futex.hpp +42 -11
- data/src/cxx_supportlib/vendor-modified/boost/bind/bind.hpp +15 -37
- data/src/cxx_supportlib/vendor-modified/boost/container/adaptive_pool.hpp +8 -8
- data/src/cxx_supportlib/vendor-modified/boost/container/allocator.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/allocator_traits.hpp +151 -10
- data/src/cxx_supportlib/vendor-modified/boost/container/container_fwd.hpp +11 -9
- data/src/cxx_supportlib/vendor-modified/boost/container/deque.hpp +611 -102
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/adaptive_node_pool.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/adaptive_node_pool_impl.hpp +47 -47
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/advanced_insert_int.hpp +25 -24
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/allocation_type.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/block_list.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/block_slist.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/construct_in_place.hpp +35 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/copy_move_algo.hpp +14 -14
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/dispatch_uses_allocator.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/flat_tree.hpp +55 -23
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/function_detector.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/is_container.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/is_contiguous_container.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/is_pair.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/iterators.hpp +8 -8
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/math_functions.hpp +9 -9
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/mpl.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/multiallocation_chain.hpp +96 -10
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_alloc_holder.hpp +19 -4
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_pool.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/pair.hpp +17 -17
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/pool_common.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/pool_common_alloc.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/pool_resource.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/tree.hpp +86 -52
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/version_type.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/workaround.hpp +12 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/devector.hpp +145 -65
- data/src/cxx_supportlib/vendor-modified/boost/container/flat_map.hpp +105 -22
- data/src/cxx_supportlib/vendor-modified/boost/container/flat_set.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/list.hpp +30 -22
- data/src/cxx_supportlib/vendor-modified/boost/container/map.hpp +19 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/new_allocator.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/node_allocator.hpp +15 -8
- data/src/cxx_supportlib/vendor-modified/boost/container/node_handle.hpp +6 -5
- data/src/cxx_supportlib/vendor-modified/boost/container/options.hpp +15 -15
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/memory_resource.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/monotonic_buffer_resource.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/resource_adaptor.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/container/scoped_allocator.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/set.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/slist.hpp +31 -24
- data/src/cxx_supportlib/vendor-modified/boost/container/small_vector.hpp +45 -43
- data/src/cxx_supportlib/vendor-modified/boost/container/stable_vector.hpp +45 -33
- data/src/cxx_supportlib/vendor-modified/boost/container/static_vector.hpp +5 -7
- data/src/cxx_supportlib/vendor-modified/boost/container/string.hpp +55 -47
- data/src/cxx_supportlib/vendor-modified/boost/container/uses_allocator.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/container/vector.hpp +222 -73
- data/src/cxx_supportlib/vendor-modified/boost/core/detail/minstd_rand.hpp +58 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/detail/string_view.hpp +13 -13
- data/src/cxx_supportlib/vendor-modified/boost/core/empty_value.hpp +53 -5
- data/src/cxx_supportlib/vendor-modified/boost/core/lightweight_test.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/pointer_in_range.hpp +49 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/span.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/type_name.hpp +7 -2
- data/src/cxx_supportlib/vendor-modified/boost/function/function_base.hpp +22 -34
- data/src/cxx_supportlib/vendor-modified/boost/function/function_template.hpp +141 -38
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/algorithm.hpp +8 -8
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hash.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hook_traits.hpp +8 -6
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/pointer_traits.hpp +18 -18
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical_streams.hpp +22 -17
- data/src/cxx_supportlib/vendor-modified/boost/libs/random/src/random_device.cpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/config_begin.hpp +0 -1
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/launder.hpp +53 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/type_traits.hpp +9 -1
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/workaround.hpp +6 -1
- data/src/cxx_supportlib/vendor-modified/boost/mp11/version.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/integral_wrapper.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/predef/version.h +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/requires_cxx11.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_has_gcc_intrinsics.hpp +4 -1
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/generic_category_message.hpp +13 -1
- data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_flat_map.hpp +13 -1
- data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_flat_map_fwd.hpp +15 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_flat_set.hpp +13 -1
- data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_flat_set_fwd.hpp +15 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/fca.hpp +22 -6
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/concurrent_table.hpp +38 -10
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/core.hpp +111 -2
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/cumulative_stats.hpp +177 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/table.hpp +11 -1
- data/src/cxx_supportlib/vendor-modified/boost/unordered/hash_traits.hpp +33 -7
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_map.hpp +12 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_map_fwd.hpp +15 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_set.hpp +12 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_set_fwd.hpp +14 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_map_fwd.hpp +19 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_map.hpp +12 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_map_fwd.hpp +15 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_set.hpp +12 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_set_fwd.hpp +14 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_set_fwd.hpp +17 -0
- data/src/cxx_supportlib/vendor-modified/boost/utility/detail/minstd_rand.hpp +1 -43
- data/src/cxx_supportlib/vendor-modified/boost/version.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/modp_b64_strict_aliasing.cpp +2 -2
- data/src/helper-scripts/backtrace-sanitizer.rb +2 -2
- data/src/helper-scripts/crash-watch.rb +1 -1
- data/src/helper-scripts/download_binaries/extconf.rb +2 -2
- data/src/helper-scripts/meteor-loader.rb +9 -4
- data/src/helper-scripts/node-loader.js +2 -2
- data/src/helper-scripts/prespawn +2 -2
- data/src/helper-scripts/rack-loader.rb +2 -2
- data/src/helper-scripts/rack-preloader.rb +2 -2
- data/src/helper-scripts/wsgi-loader.py +2 -2
- data/src/nginx_module/ConfigGeneral/AutoGeneratedDefinitions.c +10 -2
- data/src/nginx_module/ConfigGeneral/AutoGeneratedDefinitions.c.cxxcodebuilder +2 -2
- data/src/nginx_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.c +8 -2
- data/src/nginx_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.c.cxxcodebuilder +2 -2
- data/src/nginx_module/ConfigGeneral/AutoGeneratedSetterFuncs.c +14 -2
- data/src/nginx_module/ConfigGeneral/AutoGeneratedSetterFuncs.c.cxxcodebuilder +2 -2
- data/src/nginx_module/Configuration.c +1 -1
- data/src/nginx_module/Configuration.h +1 -1
- data/src/nginx_module/ContentHandler.c +1 -1
- data/src/nginx_module/ContentHandler.h +1 -1
- data/src/nginx_module/LocationConfig/AutoGeneratedCreateFunction.c +2 -2
- data/src/nginx_module/LocationConfig/AutoGeneratedCreateFunction.c.cxxcodebuilder +2 -2
- data/src/nginx_module/LocationConfig/AutoGeneratedHeaderSerialization.c +2 -2
- data/src/nginx_module/LocationConfig/AutoGeneratedHeaderSerialization.c.cxxcodebuilder +2 -2
- data/src/nginx_module/LocationConfig/AutoGeneratedManifestGeneration.c +2 -2
- data/src/nginx_module/LocationConfig/AutoGeneratedManifestGeneration.c.cxxcodebuilder +2 -2
- data/src/nginx_module/LocationConfig/AutoGeneratedMergeFunction.c +2 -2
- data/src/nginx_module/LocationConfig/AutoGeneratedMergeFunction.c.cxxcodebuilder +2 -2
- data/src/nginx_module/LocationConfig/AutoGeneratedStruct.h +2 -2
- data/src/nginx_module/LocationConfig/AutoGeneratedStruct.h.cxxcodebuilder +2 -2
- data/src/nginx_module/MainConfig/AutoGeneratedCreateFunction.c +7 -2
- data/src/nginx_module/MainConfig/AutoGeneratedCreateFunction.c.cxxcodebuilder +2 -2
- data/src/nginx_module/MainConfig/AutoGeneratedManifestGeneration.c +13 -2
- data/src/nginx_module/MainConfig/AutoGeneratedManifestGeneration.c.cxxcodebuilder +2 -2
- data/src/nginx_module/MainConfig/AutoGeneratedStruct.h +6 -2
- data/src/nginx_module/MainConfig/AutoGeneratedStruct.h.cxxcodebuilder +2 -2
- data/src/nginx_module/StaticContentHandler.c +1 -1
- data/src/nginx_module/StaticContentHandler.h +1 -1
- data/src/nginx_module/ngx_http_passenger_module.c +2 -2
- data/src/nginx_module/ngx_http_passenger_module.h +1 -1
- data/src/nodejs_supportlib/phusion_passenger/line_reader.js +2 -2
- data/src/ruby_native_extension/extconf.rb +2 -2
- data/src/ruby_native_extension/passenger_native_support.c +2 -2
- data/src/ruby_supportlib/phusion_passenger/abstract_installer.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/admin_tools/instance.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/admin_tools/instance_registry.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/admin_tools/memory_stats.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/admin_tools.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/apache2/config_options.rb +9 -2
- data/src/ruby_supportlib/phusion_passenger/apache2/config_utils.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/common_library.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/config/about_command.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/config/agent_compiler.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/config/api_call_command.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/config/build_native_support_command.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/config/command.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/config/compile_agent_command.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/config/compile_nginx_engine_command.rb +8 -4
- data/src/ruby_supportlib/phusion_passenger/config/detach_process_command.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/config/download_agent_command.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/config/download_nginx_engine_command.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/config/install_agent_command.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/config/install_standalone_runtime_command.rb +12 -2
- data/src/ruby_supportlib/phusion_passenger/config/installation_utils.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/config/list_instances_command.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/config/main.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/config/nginx_engine_compiler.rb +14 -6
- data/src/ruby_supportlib/phusion_passenger/config/reopen_logs_command.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/config/restart_app_command.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/config/system_metrics_command.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/config/system_properties_command.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/config/utils.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/config/validate_install_command.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/console_text_template.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/constants.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/debug_logging.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/loader_shared_helpers.rb +12 -4
- data/src/ruby_supportlib/phusion_passenger/message_channel.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/message_client.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/native_support.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/nginx/config_options.rb +10 -2
- data/src/ruby_supportlib/phusion_passenger/packaging.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/platform_info/apache.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/platform_info/apache_detector.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/platform_info/binary_compatibility.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/platform_info/compiler.rb +34 -7
- data/src/ruby_supportlib/phusion_passenger/platform_info/crypto.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/platform_info/curl.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/platform_info/cxx_portability.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/platform_info/linux.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/platform_info/networking.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/platform_info/openssl.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/platform_info/operating_system.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/platform_info/pcre.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/platform_info/ruby.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/platform_info/zlib.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/platform_info.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/plugin.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/preloader_shared_helpers.rb +14 -8
- data/src/ruby_supportlib/phusion_passenger/public_api.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/rack/handler.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/rack/out_of_band_gc.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/rack/thread_handler_extension.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/rack_handler.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/request_handler/thread_handler.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/request_handler.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/ruby_core_enhancements.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/ruby_core_io_enhancements.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/simple_benchmarking.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/standalone/app_finder.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/standalone/command.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/standalone/config_options_list.rb +14 -3
- data/src/ruby_supportlib/phusion_passenger/standalone/config_utils.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/standalone/control_utils.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/standalone/main.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/standalone/start_command/builtin_engine.rb +5 -3
- data/src/ruby_supportlib/phusion_passenger/standalone/start_command/nginx_engine.rb +3 -3
- data/src/ruby_supportlib/phusion_passenger/standalone/start_command.rb +2 -6
- data/src/ruby_supportlib/phusion_passenger/standalone/status_command.rb +3 -4
- data/src/ruby_supportlib/phusion_passenger/standalone/stop_command.rb +9 -3
- data/src/ruby_supportlib/phusion_passenger/standalone/version_command.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/utils/ansi_colors.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/utils/download.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/utils/file_system_watcher.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/utils/hosts_file_parser.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/utils/json.rb +5 -1
- data/src/ruby_supportlib/phusion_passenger/utils/lock.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/utils/native_support_utils.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/utils/progress_bar.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/utils/strscan.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/utils/terminal_choice_menu.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/utils/unseekable_socket.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/utils.rb +7 -17
- data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/app.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/base.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/gdb_controller.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/lldb_controller.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/utils.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/version.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/vendor/daemon_controller/lock_file.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/vendor/daemon_controller/spawn.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/vendor/daemon_controller/version.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/vendor/daemon_controller.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger.rb +8 -8
- data/src/schema_printer/SchemaPrinterMain.cpp +2 -2
- data/src/schema_printer/SchemaPrinterMain.cpp.cxxcodebuilder +2 -2
- metadata +23 -8
data/build/test_basics.rb
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
# Phusion Passenger - https://www.phusionpassenger.com/
|
2
|
-
# Copyright (c) 2010-
|
2
|
+
# Copyright (c) 2010-2025 Asynchronous B.V.
|
3
3
|
#
|
4
4
|
# "Passenger", "Phusion Passenger" and "Union Station" are registered
|
5
|
-
# trademarks of
|
5
|
+
# trademarks of Asynchronous B.V.
|
6
6
|
#
|
7
7
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
8
8
|
# of this software and associated documentation files (the "Software"), to deal
|
@@ -34,7 +34,7 @@ task :test => ['test:oxt', 'test:cxx', 'test:ruby', 'test:node', 'test:integrati
|
|
34
34
|
desc "Clean all compiled test files"
|
35
35
|
task 'test:clean' do
|
36
36
|
sh("rm -rf #{TEST_OUTPUT_DIR}")
|
37
|
-
sh("rm -f test/cxx/*.gch")
|
37
|
+
sh("rm -f test/cxx/*.#{PlatformInfo.precompiled_header_extension} test/cxx/*.gch test/cxx/*.pch")
|
38
38
|
end
|
39
39
|
|
40
40
|
task :clean => 'test:clean'
|
@@ -66,19 +66,11 @@ task 'test:install_deps' do
|
|
66
66
|
sh "#{gem_install} bundler"
|
67
67
|
end
|
68
68
|
|
69
|
-
if install_base_deps
|
70
|
-
unless Gem::Version.new(RUBY_VERSION) >= Gem::Version.new('3.0.0') || RUBY_PLATFORM =~ /darwin/
|
71
|
-
if bundler_too_new?
|
72
|
-
sh "bundle config set --local without future"
|
73
|
-
else
|
74
|
-
bundle_args.concat(["--without", "future"])
|
75
|
-
end
|
76
|
-
end
|
77
|
-
else
|
69
|
+
if !install_base_deps
|
78
70
|
if bundler_too_new?
|
79
|
-
sh "bundle config set --local without 'base
|
71
|
+
sh "bundle config set --local without 'base'"
|
80
72
|
else
|
81
|
-
bundle_args.concat(["--without", "base"
|
73
|
+
bundle_args.concat(["--without", "base"])
|
82
74
|
end
|
83
75
|
end
|
84
76
|
sh "bundle install #{bundle_args.join(' ')} #{ENV['BUNDLE_ARGS']}"
|
data/dev/copy_boost_headers
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
# Phusion Passenger - https://www.phusionpassenger.com/
|
3
|
-
# Copyright (c) 2010-
|
3
|
+
# Copyright (c) 2010-2025 Asynchronous B.V.
|
4
4
|
#
|
5
5
|
# "Passenger", "Phusion Passenger" and "Union Station" are registered
|
6
|
-
# trademarks of
|
6
|
+
# trademarks of Asynchronous B.V.
|
7
7
|
#
|
8
8
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
9
9
|
# of this software and associated documentation files (the "Software"), to deal
|
data/dev/nginx_version_sha256
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
# Phusion Passenger - https://www.phusionpassenger.com/
|
3
|
-
# Copyright (c) 2024
|
3
|
+
# Copyright (c) 2024-2025 Asynchronous B.V.
|
4
4
|
#
|
5
5
|
# "Passenger", "Phusion Passenger" and "Union Station" are registered
|
6
|
-
# trademarks of
|
6
|
+
# trademarks of Asynchronous B.V.
|
7
7
|
#
|
8
8
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
9
9
|
# of this software and associated documentation files (the "Software"), to deal
|
@@ -0,0 +1,39 @@
|
|
1
|
+
# Limited gem dependencies
|
2
|
+
|
3
|
+
## Context
|
4
|
+
|
5
|
+
- We provide native packages (APT/YUM) for Passenger.
|
6
|
+
- Passenger has a bunch of tools (e.g. `bin/passenger-status`, `helper-scripts/backtrace-sanitizer.rb`, `helper-scripts/prespawn`) that are written in Ruby. When Passenger is natively packaged, we ensure that these tools run in the "system" Ruby.
|
7
|
+
- On Debian-based systems, the OS package repositories may supply multiple Ruby versions. So our native packaging can't assume a single Ruby version.
|
8
|
+
|
9
|
+
This raises the question of how to deal with Passenger's own gem dependencies. An analysis of possible strategies and their implications/tradeoffs:
|
10
|
+
|
11
|
+
1. If the OS package repositories supply dependent gems, then our native packages can depend on those directly.
|
12
|
+
|
13
|
+
Drawbacks:
|
14
|
+
|
15
|
+
- Limited selection of gems.
|
16
|
+
|
17
|
+
2. We package the gem dependencies ourselves. In addition, any dependency with native extensions must be packaged separately, once for each Ruby version installable through the native OS package repositories.
|
18
|
+
|
19
|
+
Drawbacks:
|
20
|
+
|
21
|
+
- More work for us.
|
22
|
+
|
23
|
+
3. We vendor the gem dependencies within the native packages. In addition, any dependency with native extensions must be vendored separately, once for each Ruby version installable through the native OS package repositories.
|
24
|
+
|
25
|
+
## Decision
|
26
|
+
|
27
|
+
We pick strategy 1.
|
28
|
+
|
29
|
+
## Consequences
|
30
|
+
|
31
|
+
- Any gems that the written-in-Ruby tools depend on, must either be available through OS repositories, or must be a Ruby standard library gem.
|
32
|
+
- All such dependencies must be specified in the Passenger gemspec.
|
33
|
+
- Development-related Passenger Ruby code can depend on any gem, since they're not included in native packages.
|
34
|
+
- All such dependencies must be specified in the Passenger Gemfile.
|
35
|
+
|
36
|
+
## See also
|
37
|
+
|
38
|
+
- [No gem activation during Ruby loader initialization](NoGemActivationDuringRubyLoaderInitialization.md)
|
39
|
+
- System Ruby runner (only used in Debian packages): `packaging/debian/debian_specs/passenger/passenger_system_ruby.c.erb`
|
@@ -0,0 +1,27 @@
|
|
1
|
+
# No gem activation during Ruby loader initialization
|
2
|
+
|
3
|
+
## Context
|
4
|
+
|
5
|
+
Passenger loads a Ruby app using loader scripts (rack-loader.rb and rack-preloader.rb). These scripts perform these steps:
|
6
|
+
|
7
|
+
1. Initialization, e.g., to setup communication with the Passenger Core.
|
8
|
+
2. Activate Bundler.
|
9
|
+
3. Load the application (config.ru).
|
10
|
+
|
11
|
+
If step 1 activates any gems, then that may conflict with Bundler activation because Gemfile could specify a different gem version.
|
12
|
+
|
13
|
+
## Decision
|
14
|
+
|
15
|
+
All code callable by the Ruby loaders' initialization steps, must not activate any gems.
|
16
|
+
|
17
|
+
## Consequences
|
18
|
+
|
19
|
+
Any needed functionality that's typically provided by gems, must be reimplemented within the `PhusionPassenger` module.
|
20
|
+
|
21
|
+
For example, the initialization step needs to parse JSON. Instead of activating the JSON gem, we reimplement a JSON parser in `PhusionPassenger::Utils::JSON`.
|
22
|
+
|
23
|
+
### Caveat: standard library gems
|
24
|
+
|
25
|
+
More and more parts of the Ruby standard library are becoming [gemified](https://stdgems.org/). This increases the chances of the initialization step activating a standard library gem. In principle, our strategy remains the same: we reimplement those libraries. For example, we reimplemented StringScanner (needed by our JSON implementation) in `PhusionPassenger::Utils::StringScanner`, but we limited its scope to just the functionality needed by the JSON implementation.
|
26
|
+
|
27
|
+
If the standard library in question is a native extension (e.g., `etc`), then the strategy is to reimplement it in C++ as part of the [Passenger Agent binary](../../src/agent/README.md), as a separately callable tool. The Ruby code then spawns the written-in-C++ tool and parses its output.
|
data/package.json
CHANGED
data/passenger.gemspec
CHANGED
@@ -23,9 +23,13 @@ Gem::Specification.new do |s|
|
|
23
23
|
"mailing_list_uri" => "https://www.phusionpassenger.com/contact",
|
24
24
|
"wiki_uri" => "https://github.com/phusion/passenger/wiki"
|
25
25
|
}
|
26
|
+
|
27
|
+
# Limit dependencies only to those available through OS package repositories.
|
28
|
+
# See doc/DesignAspects/LimitedGemDependencies.md
|
26
29
|
s.add_dependency 'rake', '>= 12.3.3'
|
27
30
|
s.add_dependency 'rack', '>= 1.6.13'
|
28
|
-
s.add_dependency 'rackup'
|
31
|
+
s.add_dependency 'rackup', '>= 2.0.0'
|
32
|
+
|
29
33
|
s.files = Dir[*PhusionPassenger::Packaging::GLOB] -
|
30
34
|
Dir[*PhusionPassenger::Packaging::EXCLUDE_GLOB]
|
31
35
|
s.executables = PhusionPassenger::Packaging::USER_EXECUTABLES +
|
@@ -32,6 +32,7 @@ passenger_user_switching off;
|
|
32
32
|
<%= nginx_http_option(:pool_idle_time) %>
|
33
33
|
<%= nginx_http_option(:max_preloader_idle_time) %>
|
34
34
|
<%= nginx_http_option(:turbocaching) %>
|
35
|
+
<%= nginx_http_option(:old_routing) %>
|
35
36
|
<%= nginx_http_option(:instance_registry_dir) %>
|
36
37
|
<%= nginx_http_option(:spawn_dir) %>
|
37
38
|
<%= nginx_http_option(:disable_security_update_check) %>
|
data/src/agent/AgentMain.cpp
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
/*
|
2
2
|
* Phusion Passenger - https://www.phusionpassenger.com/
|
3
|
-
* Copyright (c) 2014-
|
3
|
+
* Copyright (c) 2014-2025 Asynchronous B.V.
|
4
4
|
*
|
5
5
|
* "Passenger", "Phusion Passenger" and "Union Station" are registered
|
6
|
-
* trademarks of
|
6
|
+
* trademarks of Asynchronous B.V.
|
7
7
|
*
|
8
8
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
9
9
|
* of this software and associated documentation files (the "Software"), to deal
|
@@ -1,9 +1,9 @@
|
|
1
1
|
/*
|
2
2
|
* Phusion Passenger - https://www.phusionpassenger.com/
|
3
|
-
* Copyright (c) 2017-
|
3
|
+
* Copyright (c) 2017-2025 Asynchronous B.V.
|
4
4
|
*
|
5
5
|
* "Passenger", "Phusion Passenger" and "Union Station" are registered
|
6
|
-
* trademarks of
|
6
|
+
* trademarks of Asynchronous B.V.
|
7
7
|
*
|
8
8
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
9
9
|
* of this software and associated documentation files (the "Software"), to deal
|
data/src/agent/Core/ApiServer.h
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
/*
|
2
2
|
* Phusion Passenger - https://www.phusionpassenger.com/
|
3
|
-
* Copyright (c) 2013-
|
3
|
+
* Copyright (c) 2013-2025 Asynchronous B.V.
|
4
4
|
*
|
5
5
|
* "Passenger", "Phusion Passenger" and "Union Station" are registered
|
6
|
-
* trademarks of
|
6
|
+
* trademarks of Asynchronous B.V.
|
7
7
|
*
|
8
8
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
9
9
|
* of this software and associated documentation files (the "Software"), to deal
|
@@ -1,9 +1,9 @@
|
|
1
1
|
/*
|
2
2
|
* Phusion Passenger - https://www.phusionpassenger.com/
|
3
|
-
* Copyright (c) 2016-
|
3
|
+
* Copyright (c) 2016-2025 Asynchronous B.V.
|
4
4
|
*
|
5
5
|
* "Passenger", "Phusion Passenger" and "Union Station" are registered
|
6
|
-
* trademarks of
|
6
|
+
* trademarks of Asynchronous B.V.
|
7
7
|
*
|
8
8
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
9
9
|
* of this software and associated documentation files (the "Software"), to deal
|
@@ -1,9 +1,9 @@
|
|
1
1
|
/*
|
2
2
|
* Phusion Passenger - https://www.phusionpassenger.com/
|
3
|
-
* Copyright (c) 2014-
|
3
|
+
* Copyright (c) 2014-2025 Asynchronous B.V.
|
4
4
|
*
|
5
5
|
* "Passenger", "Phusion Passenger" and "Union Station" are registered
|
6
|
-
* trademarks of
|
6
|
+
* trademarks of Asynchronous B.V.
|
7
7
|
*
|
8
8
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
9
9
|
* of this software and associated documentation files (the "Software"), to deal
|
@@ -1,9 +1,9 @@
|
|
1
1
|
/*
|
2
2
|
* Phusion Passenger - https://www.phusionpassenger.com/
|
3
|
-
* Copyright (c) 2014-
|
3
|
+
* Copyright (c) 2014-2025 Asynchronous B.V.
|
4
4
|
*
|
5
5
|
* "Passenger", "Phusion Passenger" and "Union Station" are registered
|
6
|
-
* trademarks of
|
6
|
+
* trademarks of Asynchronous B.V.
|
7
7
|
*
|
8
8
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
9
9
|
* of this software and associated documentation files (the "Software"), to deal
|
@@ -1,9 +1,9 @@
|
|
1
1
|
/*
|
2
2
|
* Phusion Passenger - https://www.phusionpassenger.com/
|
3
|
-
* Copyright (c) 2011-
|
3
|
+
* Copyright (c) 2011-2025 Asynchronous B.V.
|
4
4
|
*
|
5
5
|
* "Passenger", "Phusion Passenger" and "Union Station" are registered
|
6
|
-
* trademarks of
|
6
|
+
* trademarks of Asynchronous B.V.
|
7
7
|
*
|
8
8
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
9
9
|
* of this software and associated documentation files (the "Software"), to deal
|
@@ -1,9 +1,9 @@
|
|
1
1
|
/*
|
2
2
|
* Phusion Passenger - https://www.phusionpassenger.com/
|
3
|
-
* Copyright (c) 2014-
|
3
|
+
* Copyright (c) 2014-2025 Asynchronous B.V.
|
4
4
|
*
|
5
5
|
* "Passenger", "Phusion Passenger" and "Union Station" are registered
|
6
|
-
* trademarks of
|
6
|
+
* trademarks of Asynchronous B.V.
|
7
7
|
*
|
8
8
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
9
9
|
* of this software and associated documentation files (the "Software"), to deal
|
@@ -61,6 +61,8 @@ public:
|
|
61
61
|
boost::object_pool<Process> processObjectPool;
|
62
62
|
mutable boost::mutex agentConfigSyncher;
|
63
63
|
|
64
|
+
// Whether to use the old routing algorithm
|
65
|
+
bool oldRouting;
|
64
66
|
|
65
67
|
/****** Dependencies ******/
|
66
68
|
|
@@ -68,9 +70,10 @@ public:
|
|
68
70
|
Json::Value agentConfig;
|
69
71
|
|
70
72
|
|
71
|
-
Context()
|
73
|
+
Context(bool _oldRouting)
|
72
74
|
: sessionObjectPool(64, 1024),
|
73
|
-
processObjectPool(4, 64)
|
75
|
+
processObjectPool(4, 64),
|
76
|
+
oldRouting(_oldRouting)
|
74
77
|
{ }
|
75
78
|
|
76
79
|
void finalize() {
|
@@ -1,9 +1,9 @@
|
|
1
1
|
/*
|
2
2
|
* Phusion Passenger - https://www.phusionpassenger.com/
|
3
|
-
* Copyright (c) 2011-
|
3
|
+
* Copyright (c) 2011-2025 Asynchronous B.V.
|
4
4
|
*
|
5
5
|
* "Passenger", "Phusion Passenger" and "Union Station" are registered
|
6
|
-
* trademarks of
|
6
|
+
* trademarks of Asynchronous B.V.
|
7
7
|
*
|
8
8
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
9
9
|
* of this software and associated documentation files (the "Software"), to deal
|
@@ -23,6 +23,12 @@
|
|
23
23
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
24
24
|
* THE SOFTWARE.
|
25
25
|
*/
|
26
|
+
#ifndef _PASSENGER_APPLICATION_POOL_GROUP_INITIALIZATION_AND_SHUTDOWN_CPP_
|
27
|
+
#define _PASSENGER_APPLICATION_POOL_GROUP_INITIALIZATION_AND_SHUTDOWN_CPP_
|
28
|
+
|
29
|
+
#ifdef INTELLISENSE
|
30
|
+
#include <Core/ApplicationPool/Pool.h>
|
31
|
+
#endif
|
26
32
|
#include <Core/ApplicationPool/Group.h>
|
27
33
|
|
28
34
|
/*************************************************************************
|
@@ -179,3 +185,5 @@ Group::shutdown(const Callback &callback,
|
|
179
185
|
|
180
186
|
} // namespace ApplicationPool2
|
181
187
|
} // namespace Passenger
|
188
|
+
|
189
|
+
#endif // _PASSENGER_APPLICATION_POOL_GROUP_INITIALIZATION_AND_SHUTDOWN_CPP_
|
@@ -1,9 +1,9 @@
|
|
1
1
|
/*
|
2
2
|
* Phusion Passenger - https://www.phusionpassenger.com/
|
3
|
-
* Copyright (c) 2011-
|
3
|
+
* Copyright (c) 2011-2025 Asynchronous B.V.
|
4
4
|
*
|
5
5
|
* "Passenger", "Phusion Passenger" and "Union Station" are registered
|
6
|
-
* trademarks of
|
6
|
+
* trademarks of Asynchronous B.V.
|
7
7
|
*
|
8
8
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
9
9
|
* of this software and associated documentation files (the "Software"), to deal
|
@@ -23,6 +23,12 @@
|
|
23
23
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
24
24
|
* THE SOFTWARE.
|
25
25
|
*/
|
26
|
+
#ifndef _PASSENGER_APPLICATION_POOL_GROUP_INTERNAL_UTILS_CPP_
|
27
|
+
#define _PASSENGER_APPLICATION_POOL_GROUP_INTERNAL_UTILS_CPP_
|
28
|
+
|
29
|
+
#ifdef INTELLISENSE
|
30
|
+
#include <Core/ApplicationPool/Pool.h>
|
31
|
+
#endif
|
26
32
|
#include <Core/ApplicationPool/Group.h>
|
27
33
|
|
28
34
|
/*************************************************************************
|
@@ -178,7 +184,7 @@ Group::createNullProcessObject() {
|
|
178
184
|
LockGuard l(context->memoryManagementSyncher);
|
179
185
|
Process *process = context->processObjectPool.malloc();
|
180
186
|
Guard guard(context, process);
|
181
|
-
process = new (process) Process(&info, args);
|
187
|
+
process = new (process) Process(&info, info.group->restartsInitiated, args);
|
182
188
|
process->shutdownNotRequired();
|
183
189
|
guard.clear();
|
184
190
|
return ProcessPtr(process, false);
|
@@ -215,7 +221,7 @@ Group::createProcessObject(const SpawningKit::Spawner &spawner,
|
|
215
221
|
LockGuard l(context->memoryManagementSyncher);
|
216
222
|
Process *process = context->processObjectPool.malloc();
|
217
223
|
Guard guard(context, process);
|
218
|
-
process = new (process) Process(&info, spawnResult, args);
|
224
|
+
process = new (process) Process(&info, info.group->restartsInitiated, spawnResult, args);
|
219
225
|
guard.clear();
|
220
226
|
return ProcessPtr(process, false);
|
221
227
|
}
|
@@ -374,3 +380,5 @@ Group::callAbortLongRunningConnectionsCallback(const ProcessPtr &process) {
|
|
374
380
|
|
375
381
|
} // namespace ApplicationPool2
|
376
382
|
} // namespace Passenger
|
383
|
+
|
384
|
+
#endif // _PASSENGER_APPLICATION_POOL_GROUP_INTERNAL_UTILS_CPP_
|
@@ -1,9 +1,9 @@
|
|
1
1
|
/*
|
2
2
|
* Phusion Passenger - https://www.phusionpassenger.com/
|
3
|
-
* Copyright (c) 2011-
|
3
|
+
* Copyright (c) 2011-2025 Asynchronous B.V.
|
4
4
|
*
|
5
5
|
* "Passenger", "Phusion Passenger" and "Union Station" are registered
|
6
|
-
* trademarks of
|
6
|
+
* trademarks of Asynchronous B.V.
|
7
7
|
*
|
8
8
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
9
9
|
* of this software and associated documentation files (the "Software"), to deal
|
@@ -23,6 +23,12 @@
|
|
23
23
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
24
24
|
* THE SOFTWARE.
|
25
25
|
*/
|
26
|
+
#ifndef _PASSENGER_APPLICATION_POOL_GROUP_LIFETIME_AND_BASICS_CPP_
|
27
|
+
#define _PASSENGER_APPLICATION_POOL_GROUP_LIFETIME_AND_BASICS_CPP_
|
28
|
+
|
29
|
+
#ifdef INTELLISENSE
|
30
|
+
#include <Core/ApplicationPool/Pool.h>
|
31
|
+
#endif
|
26
32
|
#include <Core/ApplicationPool/Group.h>
|
27
33
|
|
28
34
|
/*************************************************************************
|
@@ -107,3 +113,5 @@ Group::getWrapperRegistry() const {
|
|
107
113
|
|
108
114
|
} // namespace ApplicationPool2
|
109
115
|
} // namespace Passenger
|
116
|
+
|
117
|
+
#endif // _PASSENGER_APPLICATION_POOL_GROUP_LIFETIME_AND_BASICS_CPP_
|
@@ -1,9 +1,9 @@
|
|
1
1
|
/*
|
2
2
|
* Phusion Passenger - https://www.phusionpassenger.com/
|
3
|
-
* Copyright (c) 2011-
|
3
|
+
* Copyright (c) 2011-2025 Asynchronous B.V.
|
4
4
|
*
|
5
5
|
* "Passenger", "Phusion Passenger" and "Union Station" are registered
|
6
|
-
* trademarks of
|
6
|
+
* trademarks of Asynchronous B.V.
|
7
7
|
*
|
8
8
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
9
9
|
* of this software and associated documentation files (the "Software"), to deal
|
@@ -23,6 +23,13 @@
|
|
23
23
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
24
24
|
* THE SOFTWARE.
|
25
25
|
*/
|
26
|
+
|
27
|
+
#ifndef _PASSENGER_APPLICATION_POOL_GROUP_MISCELLANEOUS_CPP_
|
28
|
+
#define _PASSENGER_APPLICATION_POOL_GROUP_MISCELLANEOUS_CPP_
|
29
|
+
|
30
|
+
#ifdef INTELLISENSE
|
31
|
+
#include <Core/ApplicationPool/Pool.h>
|
32
|
+
#endif
|
26
33
|
#include <Core/ApplicationPool/Group.h>
|
27
34
|
|
28
35
|
/*************************************************************************
|
@@ -65,3 +72,5 @@ Group::authorizeByApiKey(const ApiKey &key) const {
|
|
65
72
|
|
66
73
|
} // namespace ApplicationPool2
|
67
74
|
} // namespace Passenger
|
75
|
+
|
76
|
+
#endif // _PASSENGER_APPLICATION_POOL_GROUP_MISCELLANEOUS_CPP_
|
@@ -1,9 +1,9 @@
|
|
1
1
|
/*
|
2
2
|
* Phusion Passenger - https://www.phusionpassenger.com/
|
3
|
-
* Copyright (c) 2011-
|
3
|
+
* Copyright (c) 2011-2025 Asynchronous B.V.
|
4
4
|
*
|
5
5
|
* "Passenger", "Phusion Passenger" and "Union Station" are registered
|
6
|
-
* trademarks of
|
6
|
+
* trademarks of Asynchronous B.V.
|
7
7
|
*
|
8
8
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
9
9
|
* of this software and associated documentation files (the "Software"), to deal
|
@@ -23,6 +23,13 @@
|
|
23
23
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
24
24
|
* THE SOFTWARE.
|
25
25
|
*/
|
26
|
+
|
27
|
+
#ifndef _PASSENGER_APPLICATION_POOL_GROUP_OUT_OF_BAND_WORK_CPP_
|
28
|
+
#define _PASSENGER_APPLICATION_POOL_GROUP_OUT_OF_BAND_WORK_CPP_
|
29
|
+
|
30
|
+
#ifdef INTELLISENSE
|
31
|
+
#include <Core/ApplicationPool/Pool.h>
|
32
|
+
#endif
|
26
33
|
#include <Core/ApplicationPool/Group.h>
|
27
34
|
#include <IOTools/MessageSerialization.h>
|
28
35
|
|
@@ -322,3 +329,5 @@ Group::requestOOBW(const ProcessPtr &process) {
|
|
322
329
|
|
323
330
|
} // namespace ApplicationPool2
|
324
331
|
} // namespace Passenger
|
332
|
+
|
333
|
+
#endif // _PASSENGER_APPLICATION_POOL_GROUP_OUT_OF_BAND_WORK_CPP_
|
@@ -1,9 +1,9 @@
|
|
1
1
|
/*
|
2
2
|
* Phusion Passenger - https://www.phusionpassenger.com/
|
3
|
-
* Copyright (c) 2011-
|
3
|
+
* Copyright (c) 2011-2025 Asynchronous B.V.
|
4
4
|
*
|
5
5
|
* "Passenger", "Phusion Passenger" and "Union Station" are registered
|
6
|
-
* trademarks of
|
6
|
+
* trademarks of Asynchronous B.V.
|
7
7
|
*
|
8
8
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
9
9
|
* of this software and associated documentation files (the "Software"), to deal
|
@@ -23,6 +23,12 @@
|
|
23
23
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
24
24
|
* THE SOFTWARE.
|
25
25
|
*/
|
26
|
+
#ifndef _PASSENGER_APPLICATION_POOL_GROUP_PROCESS_LIST_MANAGEMENT_CPP_
|
27
|
+
#define _PASSENGER_APPLICATION_POOL_GROUP_PROCESS_LIST_MANAGEMENT_CPP_
|
28
|
+
|
29
|
+
#ifdef INTELLISENSE
|
30
|
+
#include <Core/ApplicationPool/Pool.h>
|
31
|
+
#endif
|
26
32
|
#include <Core/ApplicationPool/Group.h>
|
27
33
|
|
28
34
|
/*************************************************************************
|
@@ -63,7 +69,6 @@ Group::findProcessWithStickySessionIdOrLowestBusyness(unsigned int id) const {
|
|
63
69
|
int lowestBusyness = 0;
|
64
70
|
unsigned int i, size = enabledProcessBusynessLevels.size();
|
65
71
|
const int *enabledProcessBusynessLevels = &this->enabledProcessBusynessLevels[0];
|
66
|
-
|
67
72
|
for (i = 0; i < size; i++) {
|
68
73
|
Process *process = enabledProcesses[i].get();
|
69
74
|
if (process->getStickySessionId() == id) {
|
@@ -125,6 +130,77 @@ Group::findEnabledProcessWithLowestBusyness() const {
|
|
125
130
|
return enabledProcesses[leastBusyProcessIndex].get();
|
126
131
|
}
|
127
132
|
|
133
|
+
/**
|
134
|
+
* Return the process with the given sticky session ID if it exists.
|
135
|
+
* If not, then find the "best" enabled process to route a request to,
|
136
|
+
* according to the same criteria documented for findBestProcess().
|
137
|
+
*
|
138
|
+
* - If the process with the given sticky session ID exists, then always
|
139
|
+
* returns that process. Meaning that this process could be `!canBeRoutedTo()`.
|
140
|
+
* - If there is no process that can be routed to, then returns nullptr.
|
141
|
+
*/
|
142
|
+
Process *
|
143
|
+
Group::findBestProcessPreferringStickySessionId(unsigned int id) const {
|
144
|
+
Process *bestProcess = nullptr;
|
145
|
+
ProcessList::const_iterator it;
|
146
|
+
ProcessList::const_iterator end = enabledProcesses.end();
|
147
|
+
|
148
|
+
for (it = enabledProcesses.begin(); it != end; it++) {
|
149
|
+
Process *process = it->get();
|
150
|
+
if (process->getStickySessionId() == id) {
|
151
|
+
return process;
|
152
|
+
} else if (!process->isTotallyBusy()
|
153
|
+
&& (
|
154
|
+
bestProcess == nullptr
|
155
|
+
|| process->generation > bestProcess->generation
|
156
|
+
|| (process->generation == bestProcess->generation && process->spawnStartTime < bestProcess->spawnStartTime)
|
157
|
+
|| (process->generation == bestProcess->generation && process->spawnStartTime == bestProcess->spawnStartTime && process->busyness() < bestProcess->busyness())
|
158
|
+
)
|
159
|
+
) {
|
160
|
+
bestProcess = process;
|
161
|
+
}
|
162
|
+
}
|
163
|
+
|
164
|
+
return bestProcess;
|
165
|
+
}
|
166
|
+
|
167
|
+
/**
|
168
|
+
* Given a ProcessList, find the "best" process to route a request to.
|
169
|
+
* At the moment, "best" is defined as the process with the highest generation,
|
170
|
+
* lowest start time, and lowest busyness, in that order of priority.
|
171
|
+
*
|
172
|
+
* If there is no process that can be routed to, then returns nullptr.
|
173
|
+
*
|
174
|
+
* @post result != nullptr || result.canBeRoutedTo()
|
175
|
+
*/
|
176
|
+
Process *
|
177
|
+
Group::findBestProcess(const ProcessList &processes) const {
|
178
|
+
if (processes.empty()) {
|
179
|
+
return nullptr;
|
180
|
+
}
|
181
|
+
|
182
|
+
Process *bestProcess = nullptr;
|
183
|
+
ProcessList::const_iterator it;
|
184
|
+
ProcessList::const_iterator end = processes.end();
|
185
|
+
|
186
|
+
for (it = processes.begin(); it != end; it++) {
|
187
|
+
Process *process = it->get();
|
188
|
+
|
189
|
+
if (!process->isTotallyBusy()
|
190
|
+
&& (
|
191
|
+
bestProcess == nullptr
|
192
|
+
|| process->generation > bestProcess->generation
|
193
|
+
|| (process->generation == bestProcess->generation && process->spawnStartTime < bestProcess->spawnStartTime)
|
194
|
+
|| (process->generation == bestProcess->generation && process->spawnStartTime == bestProcess->spawnStartTime && process->busyness() < bestProcess->busyness())
|
195
|
+
)
|
196
|
+
) {
|
197
|
+
bestProcess = process;
|
198
|
+
}
|
199
|
+
}
|
200
|
+
|
201
|
+
return bestProcess;
|
202
|
+
}
|
203
|
+
|
128
204
|
/**
|
129
205
|
* Adds a process to the given list (enabledProcess, disablingProcesses, disabledProcesses)
|
130
206
|
* and sets the process->enabled flag accordingly.
|
@@ -222,6 +298,7 @@ void
|
|
222
298
|
Group::removeFromDisableWaitlist(const ProcessPtr &p, DisableResult result,
|
223
299
|
boost::container::vector<Callback> &postLockActions)
|
224
300
|
{
|
301
|
+
const deque<DisableWaiter> &disableWaitlist = this->disableWaitlist;
|
225
302
|
deque<DisableWaiter>::const_iterator it, end = disableWaitlist.end();
|
226
303
|
deque<DisableWaiter> newList;
|
227
304
|
for (it = disableWaitlist.begin(); it != end; it++) {
|
@@ -233,7 +310,7 @@ Group::removeFromDisableWaitlist(const ProcessPtr &p, DisableResult result,
|
|
233
310
|
newList.push_back(waiter);
|
234
311
|
}
|
235
312
|
}
|
236
|
-
disableWaitlist = newList;
|
313
|
+
this->disableWaitlist = newList;
|
237
314
|
}
|
238
315
|
|
239
316
|
void
|
@@ -428,6 +505,7 @@ Group::attach(const ProcessPtr &process,
|
|
428
505
|
/* Now that there are enough resources, relevant processes in
|
429
506
|
* 'disableWaitlist' can be disabled.
|
430
507
|
*/
|
508
|
+
const deque<DisableWaiter> &disableWaitlist = this->disableWaitlist;
|
431
509
|
deque<DisableWaiter>::const_iterator it, end = disableWaitlist.end();
|
432
510
|
deque<DisableWaiter> newDisableWaitlist;
|
433
511
|
for (it = disableWaitlist.begin(); it != end; it++) {
|
@@ -451,7 +529,7 @@ Group::attach(const ProcessPtr &process,
|
|
451
529
|
newDisableWaitlist.push_back(waiter);
|
452
530
|
}
|
453
531
|
}
|
454
|
-
disableWaitlist = newDisableWaitlist;
|
532
|
+
this->disableWaitlist = newDisableWaitlist;
|
455
533
|
|
456
534
|
// Update GC sleep timer.
|
457
535
|
wakeUpGarbageCollector();
|
@@ -616,3 +694,5 @@ Group::disable(const ProcessPtr &process, const DisableCallback &callback) {
|
|
616
694
|
|
617
695
|
} // namespace ApplicationPool2
|
618
696
|
} // namespace Passenger
|
697
|
+
|
698
|
+
#endif // _PASSENGER_APPLICATION_POOL_GROUP_PROCESS_LIST_MANAGEMENT_CPP_
|