passenger 6.2.0 → 6.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG +33 -1
- data/CONTRIBUTING.md +7 -311
- data/CONTRIBUTORS +1 -0
- data/LICENSE +1 -1
- data/README.md +1 -1
- data/Rakefile +1 -1
- data/bin/passenger +1 -1
- data/bin/passenger-config +1 -1
- data/bin/passenger-install-apache2-module +1 -1
- data/bin/passenger-install-nginx-module +4 -9
- data/bin/passenger-memory-stats +1 -1
- data/bin/passenger-status +1 -1
- data/build/agent.rb +13 -15
- data/build/apache2.rb +13 -16
- data/build/basics.rb +10 -13
- data/build/common_library.rb +5 -9
- data/build/cxx_tests.rb +37 -12
- data/build/integration_tests.rb +5 -2
- data/build/misc.rb +1 -1
- data/build/nginx.rb +1 -1
- data/build/node_tests.rb +1 -1
- data/build/oxt_tests.rb +6 -8
- data/build/packaging.rb +1 -1
- data/build/ruby_extension.rb +1 -1
- data/build/ruby_tests.rb +1 -1
- data/build/schema_printer.rb +13 -15
- data/build/support/cplusplus.rb +61 -69
- data/build/support/cxx_dependency_map.rb +2 -1
- data/build/support/general.rb +1 -1
- data/build/support/vendor/cxx_hinted_parser/LICENSE.md +1 -1
- data/build/support/vendor/cxx_hinted_parser/lib/cxx_hinted_parser/parser.rb +1 -1
- data/build/support/vendor/cxx_hinted_parser/lib/cxx_hinted_parser.rb +1 -1
- data/build/support/vendor/cxxcodebuilder/LICENSE.md +1 -1
- data/build/support/vendor/cxxcodebuilder/lib/cxxcodebuilder/builder.rb +1 -1
- data/build/support/vendor/cxxcodebuilder/lib/cxxcodebuilder/initializer_builder.rb +1 -1
- data/build/support/vendor/cxxcodebuilder/lib/cxxcodebuilder.rb +1 -1
- data/build/test_basics.rb +1 -1
- data/dev/copy_boost_headers +1 -1
- data/dev/index_cxx_dependencies.rb +5 -1
- data/dev/libev-changes.patch +108 -0
- data/dev/nginx_version_sha256 +1 -1
- data/dev/ruby_server.rb +1 -6
- data/dev/upgrading_libuv.sh +16 -0
- data/doc/BasicArchitectureOverview.md +55 -0
- data/doc/BuildCaching.md +23 -0
- data/doc/BuildSystem.md +49 -0
- data/doc/DebuggingAndStressTesting.md +2 -0
- data/doc/DesignAspects/LimitedGemDependencies.md +1 -0
- data/doc/DevEnvironmentSetup.md +46 -0
- data/doc/DevHandbook.md +28 -0
- data/doc/Packaging.md +1 -1
- data/doc/RunningTests.md +88 -0
- data/doc/{TempFileHandling.md → SecureTempFileHandling.md} +1 -1
- data/doc/{CxxTestingGuide.md → WritingCxxTests.md} +1 -20
- data/src/agent/AgentMain.cpp +1 -1
- data/src/agent/Core/ApiServer.h +1 -1
- data/src/agent/Core/ApplicationPool/AbstractSession.h +1 -1
- data/src/agent/Core/ApplicationPool/BasicGroupInfo.h +1 -1
- data/src/agent/Core/ApplicationPool/BasicProcessInfo.h +1 -1
- data/src/agent/Core/ApplicationPool/Common.h +1 -1
- data/src/agent/Core/ApplicationPool/Context.h +1 -1
- data/src/agent/Core/ApplicationPool/Group/InitializationAndShutdown.cpp +1 -1
- data/src/agent/Core/ApplicationPool/Group/InternalUtils.cpp +1 -1
- data/src/agent/Core/ApplicationPool/Group/LifetimeAndBasics.cpp +1 -1
- data/src/agent/Core/ApplicationPool/Group/Miscellaneous.cpp +1 -1
- data/src/agent/Core/ApplicationPool/Group/OutOfBandWork.cpp +1 -1
- data/src/agent/Core/ApplicationPool/Group/ProcessListManagement.cpp +1 -1
- data/src/agent/Core/ApplicationPool/Group/SessionManagement.cpp +1 -1
- data/src/agent/Core/ApplicationPool/Group/SpawningAndRestarting.cpp +1 -1
- data/src/agent/Core/ApplicationPool/Group/StateInspection.cpp +1 -1
- data/src/agent/Core/ApplicationPool/Group/Verification.cpp +1 -1
- data/src/agent/Core/ApplicationPool/Group.h +1 -1
- data/src/agent/Core/ApplicationPool/Implementation.cpp +1 -1
- data/src/agent/Core/ApplicationPool/Options.h +1 -1
- data/src/agent/Core/ApplicationPool/Pool/AnalyticsCollection.cpp +1 -1
- data/src/agent/Core/ApplicationPool/Pool/GarbageCollection.cpp +1 -1
- data/src/agent/Core/ApplicationPool/Pool/GeneralUtils.cpp +1 -1
- data/src/agent/Core/ApplicationPool/Pool/GroupUtils.cpp +1 -1
- data/src/agent/Core/ApplicationPool/Pool/InitializationAndShutdown.cpp +1 -1
- data/src/agent/Core/ApplicationPool/Pool/Miscellaneous.cpp +1 -1
- data/src/agent/Core/ApplicationPool/Pool/ProcessUtils.cpp +1 -1
- data/src/agent/Core/ApplicationPool/Pool/StateInspection.cpp +1 -1
- data/src/agent/Core/ApplicationPool/Pool.h +1 -1
- data/src/agent/Core/ApplicationPool/Process.cpp +1 -1
- data/src/agent/Core/ApplicationPool/Process.h +1 -1
- data/src/agent/Core/ApplicationPool/Session.h +1 -1
- data/src/agent/Core/ApplicationPool/Socket.h +1 -1
- data/src/agent/Core/ApplicationPool/TestSession.h +1 -1
- data/src/agent/Core/Config.h +3 -2
- data/src/agent/Core/ConfigChange.cpp +1 -1
- data/src/agent/Core/ConfigChange.h +1 -1
- data/src/agent/Core/Controller/AppResponse.h +1 -1
- data/src/agent/Core/Controller/BufferBody.cpp +1 -1
- data/src/agent/Core/Controller/CheckoutSession.cpp +8 -5
- data/src/agent/Core/Controller/Client.h +1 -1
- data/src/agent/Core/Controller/Config.cpp +1 -1
- data/src/agent/Core/Controller/Config.h +2 -2
- data/src/agent/Core/Controller/ForwardResponse.cpp +2 -2
- data/src/agent/Core/Controller/Hooks.cpp +12 -9
- data/src/agent/Core/Controller/Implementation.cpp +1 -1
- data/src/agent/Core/Controller/InitRequest.cpp +1 -1
- data/src/agent/Core/Controller/InitializationAndShutdown.cpp +1 -1
- data/src/agent/Core/Controller/InternalUtils.cpp +1 -1
- data/src/agent/Core/Controller/Miscellaneous.cpp +1 -1
- data/src/agent/Core/Controller/Request.h +1 -1
- data/src/agent/Core/Controller/SendRequest.cpp +1 -1
- data/src/agent/Core/Controller/StateInspection.cpp +1 -1
- data/src/agent/Core/Controller/TurboCaching.h +1 -1
- data/src/agent/Core/Controller.h +1 -1
- data/src/agent/Core/CoreMain.cpp +1 -1
- data/src/agent/Core/OptionParser.h +1 -1
- data/src/agent/Core/ResponseCache.h +1 -1
- data/src/agent/Core/SecurityUpdateChecker.h +1 -1
- data/src/agent/Core/SpawningKit/Config/AutoGeneratedCode.h +1 -1
- data/src/agent/Core/SpawningKit/Config/AutoGeneratedCode.h.cxxcodebuilder +1 -1
- data/src/agent/Core/SpawningKit/Config.h +1 -1
- data/src/agent/Core/SpawningKit/Context.h +1 -1
- data/src/agent/Core/SpawningKit/DirectSpawner.h +1 -1
- data/src/agent/Core/SpawningKit/DummySpawner.h +1 -1
- data/src/agent/Core/SpawningKit/ErrorRenderer.h +1 -1
- data/src/agent/Core/SpawningKit/Exceptions.h +63 -2
- data/src/agent/Core/SpawningKit/Factory.h +1 -1
- data/src/agent/Core/SpawningKit/Handshake/BackgroundIOCapturer.h +1 -1
- data/src/agent/Core/SpawningKit/Handshake/Perform.h +3 -2
- data/src/agent/Core/SpawningKit/Handshake/Prepare.h +1 -1
- data/src/agent/Core/SpawningKit/Handshake/Session.h +1 -1
- data/src/agent/Core/SpawningKit/Handshake/WorkDir.h +1 -1
- data/src/agent/Core/SpawningKit/Journey.h +1 -1
- data/src/agent/Core/SpawningKit/PipeWatcher.h +1 -1
- data/src/agent/Core/SpawningKit/README.md +3 -3
- data/src/agent/Core/SpawningKit/Result/AutoGeneratedCode.h +1 -1
- data/src/agent/Core/SpawningKit/Result/AutoGeneratedCode.h.cxxcodebuilder +1 -1
- data/src/agent/Core/SpawningKit/Result.h +1 -1
- data/src/agent/Core/SpawningKit/SmartSpawner.h +17 -17
- data/src/agent/Core/SpawningKit/Spawner.h +1 -1
- data/src/agent/Core/SpawningKit/UserSwitchingRules.h +1 -1
- data/src/agent/Core/TelemetryCollector.h +1 -1
- data/src/agent/ExecHelper/ExecHelperMain.cpp +1 -1
- data/src/agent/FileReadHelper/FileReadHelperMain.cpp +1 -1
- data/src/agent/MainFunctions.h +1 -1
- data/src/agent/Shared/ApiAccountUtils.h +4 -3
- data/src/agent/Shared/ApiServerUtils.h +1 -2
- data/src/agent/Shared/ApplicationPoolApiKey.h +1 -1
- data/src/agent/Shared/Fundamentals/AbortHandler.cpp +1 -1
- data/src/agent/Shared/Fundamentals/AbortHandler.h +1 -1
- data/src/agent/Shared/Fundamentals/Initialization.cpp +1 -1
- data/src/agent/Shared/Fundamentals/Initialization.h +1 -1
- data/src/agent/Shared/Fundamentals/Utils.cpp +1 -1
- data/src/agent/Shared/Fundamentals/Utils.h +1 -1
- data/src/agent/SpawnEnvSetupper/SpawnEnvSetupperMain.cpp +1 -1
- data/src/agent/SystemMetrics/SystemMetricsMain.cpp +1 -1
- data/src/agent/TempDirToucher/TempDirToucherMain.cpp +1 -1
- data/src/agent/Watchdog/ApiServer.h +7 -6
- data/src/agent/Watchdog/Config.h +2 -2
- data/src/apache2_module/Bucket.cpp +1 -1
- data/src/apache2_module/Bucket.h +1 -1
- data/src/apache2_module/CBindings.cpp +1 -1
- data/src/apache2_module/Config.cpp +1 -1
- data/src/apache2_module/Config.h +1 -1
- data/src/apache2_module/ConfigGeneral/AutoGeneratedDefinitions.cpp +104 -104
- data/src/apache2_module/ConfigGeneral/AutoGeneratedDefinitions.cpp.cxxcodebuilder +2 -2
- data/src/apache2_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.cpp +1 -1
- data/src/apache2_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.cpp.cxxcodebuilder +1 -1
- data/src/apache2_module/ConfigGeneral/AutoGeneratedSetterFuncs.cpp +1 -1
- data/src/apache2_module/ConfigGeneral/AutoGeneratedSetterFuncs.cpp.cxxcodebuilder +1 -1
- data/src/apache2_module/ConfigGeneral/Common.h +1 -1
- data/src/apache2_module/ConfigGeneral/ManifestGeneration.h +1 -1
- data/src/apache2_module/ConfigGeneral/SetterFuncs.h +1 -1
- data/src/apache2_module/DirConfig/AutoGeneratedCreateFunction.cpp +1 -1
- data/src/apache2_module/DirConfig/AutoGeneratedCreateFunction.cpp.cxxcodebuilder +1 -1
- data/src/apache2_module/DirConfig/AutoGeneratedHeaderSerialization.cpp +1 -1
- data/src/apache2_module/DirConfig/AutoGeneratedHeaderSerialization.cpp.cxxcodebuilder +1 -1
- data/src/apache2_module/DirConfig/AutoGeneratedManifestGeneration.cpp +1 -1
- data/src/apache2_module/DirConfig/AutoGeneratedManifestGeneration.cpp.cxxcodebuilder +1 -1
- data/src/apache2_module/DirConfig/AutoGeneratedMergeFunction.cpp +1 -1
- data/src/apache2_module/DirConfig/AutoGeneratedMergeFunction.cpp.cxxcodebuilder +1 -1
- data/src/apache2_module/DirConfig/AutoGeneratedStruct.h +1 -1
- data/src/apache2_module/DirConfig/AutoGeneratedStruct.h.cxxcodebuilder +1 -1
- data/src/apache2_module/DirectoryMapper.h +1 -1
- data/src/apache2_module/Hooks.cpp +8 -2
- data/src/apache2_module/Hooks.h +1 -1
- data/src/apache2_module/ServerConfig/AutoGeneratedManifestGeneration.cpp +1 -1
- data/src/apache2_module/ServerConfig/AutoGeneratedManifestGeneration.cpp.cxxcodebuilder +1 -1
- data/src/apache2_module/ServerConfig/AutoGeneratedStruct.h +1 -1
- data/src/apache2_module/ServerConfig/AutoGeneratedStruct.h.cxxcodebuilder +1 -1
- data/src/apache2_module/Utils.h +1 -1
- data/src/apache2_module/mod_passenger.c +1 -1
- data/src/cxx_supportlib/Algorithms/Hasher.cpp +1 -1
- data/src/cxx_supportlib/Algorithms/Hasher.h +1 -1
- data/src/cxx_supportlib/Algorithms/MovingAverage.h +1 -1
- data/src/cxx_supportlib/AppLocalConfigFileUtils.h +1 -1
- data/src/cxx_supportlib/AppTypeDetector/CBindings.cpp +1 -1
- data/src/cxx_supportlib/AppTypeDetector/CBindings.h +1 -1
- data/src/cxx_supportlib/AppTypeDetector/Detector.h +1 -1
- data/src/cxx_supportlib/BackgroundEventLoop.cpp +1 -1
- data/src/cxx_supportlib/BackgroundEventLoop.h +1 -1
- data/src/cxx_supportlib/ConfigKit/AsyncUtils.h +1 -1
- data/src/cxx_supportlib/ConfigKit/Common.h +1 -1
- data/src/cxx_supportlib/ConfigKit/ConfigKit.h +1 -1
- data/src/cxx_supportlib/ConfigKit/DummyTranslator.h +1 -1
- data/src/cxx_supportlib/ConfigKit/IN_PRACTICE.md +1 -3
- data/src/cxx_supportlib/ConfigKit/PrefixTranslator.h +3 -3
- data/src/cxx_supportlib/ConfigKit/Schema.h +1 -1
- data/src/cxx_supportlib/ConfigKit/SchemaUtils.h +1 -1
- data/src/cxx_supportlib/ConfigKit/Store.h +1 -1
- data/src/cxx_supportlib/ConfigKit/SubComponentUtils.h +1 -1
- data/src/cxx_supportlib/ConfigKit/TableTranslator.h +1 -1
- data/src/cxx_supportlib/ConfigKit/Translator.h +1 -1
- data/src/cxx_supportlib/ConfigKit/Utils.h +1 -1
- data/src/cxx_supportlib/Constants.h +2 -2
- data/src/cxx_supportlib/Constants.h.cxxcodebuilder +1 -1
- data/src/cxx_supportlib/DataStructures/HashedStaticString.h +1 -1
- data/src/cxx_supportlib/DataStructures/LString.cpp +1 -1
- data/src/cxx_supportlib/DataStructures/LString.h +1 -1
- data/src/cxx_supportlib/DataStructures/StringKeyTable.h +1 -1
- data/src/cxx_supportlib/DataStructures/StringMap.h +1 -1
- data/src/cxx_supportlib/Exceptions.cpp +1 -1
- data/src/cxx_supportlib/Exceptions.h +1 -1
- data/src/cxx_supportlib/FileDescriptor.h +1 -1
- data/src/cxx_supportlib/FileTools/FileManip.cpp +1 -1
- data/src/cxx_supportlib/FileTools/FileManip.h +1 -1
- data/src/cxx_supportlib/FileTools/PathManip.cpp +1 -1
- data/src/cxx_supportlib/FileTools/PathManip.h +1 -1
- data/src/cxx_supportlib/FileTools/PathManipCBindings.cpp +1 -1
- data/src/cxx_supportlib/FileTools/PathManipCBindings.h +1 -1
- data/src/cxx_supportlib/FileTools/PathSecurityCheck.cpp +1 -1
- data/src/cxx_supportlib/FileTools/PathSecurityCheck.h +1 -1
- data/src/cxx_supportlib/Hooks.h +1 -1
- data/src/cxx_supportlib/IOTools/BufferedIO.h +1 -1
- data/src/cxx_supportlib/IOTools/IOUtils.cpp +10 -10
- data/src/cxx_supportlib/IOTools/IOUtils.h +1 -1
- data/src/cxx_supportlib/IOTools/MessageIO.h +1 -1
- data/src/cxx_supportlib/IOTools/MessageSerialization.h +1 -1
- data/src/cxx_supportlib/InstanceDirectory.h +1 -1
- data/src/cxx_supportlib/Integrations/LibevJsonUtils.h +1 -1
- data/src/cxx_supportlib/JsonTools/Autocast.h +1 -1
- data/src/cxx_supportlib/JsonTools/CBindings.cpp +1 -1
- data/src/cxx_supportlib/JsonTools/CBindings.h +1 -1
- data/src/cxx_supportlib/JsonTools/JsonUtils.h +1 -1
- data/src/cxx_supportlib/LoggingKit/Assert.h +1 -1
- data/src/cxx_supportlib/LoggingKit/Config.h +2 -1
- data/src/cxx_supportlib/LoggingKit/Context.h +1 -1
- data/src/cxx_supportlib/LoggingKit/Forward.h +1 -1
- data/src/cxx_supportlib/LoggingKit/Implementation.cpp +11 -1
- data/src/cxx_supportlib/LoggingKit/Logging.h +1 -1
- data/src/cxx_supportlib/LoggingKit/LoggingKit.h +1 -1
- data/src/cxx_supportlib/LveLoggingDecorator.h +1 -1
- data/src/cxx_supportlib/MemoryKit/mbuf.cpp +1 -1
- data/src/cxx_supportlib/MemoryKit/mbuf.h +1 -1
- 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 +1 -1
- data/src/cxx_supportlib/ProcessManagement/Ruby.h +1 -1
- data/src/cxx_supportlib/ProcessManagement/Spawn.cpp +1 -1
- data/src/cxx_supportlib/ProcessManagement/Spawn.h +1 -1
- data/src/cxx_supportlib/ProcessManagement/Utils.cpp +1 -1
- data/src/cxx_supportlib/ProcessManagement/Utils.h +1 -1
- data/src/cxx_supportlib/RandomGenerator.h +1 -1
- data/src/cxx_supportlib/ResourceLocator.h +1 -1
- data/src/cxx_supportlib/SafeLibev.h +1 -1
- data/src/cxx_supportlib/SecurityKit/Crypto.cpp +9 -27
- data/src/cxx_supportlib/SecurityKit/Crypto.h +2 -2
- data/src/cxx_supportlib/SecurityKit/MemZeroGuard.h +1 -1
- data/src/cxx_supportlib/ServerKit/AcceptLoadBalancer.h +1 -1
- data/src/cxx_supportlib/ServerKit/Channel.h +1 -1
- data/src/cxx_supportlib/ServerKit/Client.h +1 -1
- data/src/cxx_supportlib/ServerKit/ClientRef.h +1 -1
- data/src/cxx_supportlib/ServerKit/Config.h +1 -1
- data/src/cxx_supportlib/ServerKit/Context.h +1 -1
- data/src/cxx_supportlib/ServerKit/CookieUtils.h +1 -1
- data/src/cxx_supportlib/ServerKit/Errors.h +1 -1
- data/src/cxx_supportlib/ServerKit/FdSinkChannel.h +1 -1
- data/src/cxx_supportlib/ServerKit/FdSourceChannel.h +1 -1
- data/src/cxx_supportlib/ServerKit/FileBufferedChannel.h +54 -2
- data/src/cxx_supportlib/ServerKit/FileBufferedFdSinkChannel.h +1 -1
- data/src/cxx_supportlib/ServerKit/HeaderTable.h +1 -1
- data/src/cxx_supportlib/ServerKit/Hooks.h +1 -1
- data/src/cxx_supportlib/ServerKit/HttpChunkedBodyParser.h +1 -1
- data/src/cxx_supportlib/ServerKit/HttpChunkedBodyParserState.h +1 -1
- data/src/cxx_supportlib/ServerKit/HttpClient.h +1 -1
- data/src/cxx_supportlib/ServerKit/HttpHeaderParser.h +1 -1
- data/src/cxx_supportlib/ServerKit/HttpHeaderParserState.h +1 -1
- data/src/cxx_supportlib/ServerKit/HttpRequest.h +1 -1
- data/src/cxx_supportlib/ServerKit/HttpRequestRef.h +1 -1
- data/src/cxx_supportlib/ServerKit/HttpServer.h +1 -1
- data/src/cxx_supportlib/ServerKit/Implementation.cpp +1 -1
- data/src/cxx_supportlib/ServerKit/Server.h +4 -2
- data/src/cxx_supportlib/StaticString.h +1 -1
- data/src/cxx_supportlib/StrIntTools/DateParsing.h +1 -1
- data/src/cxx_supportlib/StrIntTools/StrIntUtils.cpp +1 -1
- data/src/cxx_supportlib/StrIntTools/StrIntUtils.h +1 -1
- data/src/cxx_supportlib/StrIntTools/StrIntUtilsNoStrictAliasing.cpp +1 -1
- data/src/cxx_supportlib/StrIntTools/StringScanning.h +1 -1
- data/src/cxx_supportlib/StrIntTools/Template.h +1 -1
- data/src/cxx_supportlib/SystemTools/ContainerHelpers.h +1 -1
- data/src/cxx_supportlib/SystemTools/ProcessMetricsCollector.h +1 -1
- data/src/cxx_supportlib/SystemTools/SystemMetricsCollector.h +1 -1
- data/src/cxx_supportlib/SystemTools/SystemTime.cpp +1 -1
- data/src/cxx_supportlib/SystemTools/SystemTime.h +1 -1
- data/src/cxx_supportlib/SystemTools/UserDatabase.cpp +1 -1
- data/src/cxx_supportlib/SystemTools/UserDatabase.h +1 -1
- data/src/cxx_supportlib/Utils/AnsiColorConstants.h +1 -1
- data/src/cxx_supportlib/Utils/AsyncSignalSafeUtils.h +1 -1
- data/src/cxx_supportlib/Utils/BlockingQueue.h +1 -1
- data/src/cxx_supportlib/Utils/CachedFileStat.cpp +1 -1
- data/src/cxx_supportlib/Utils/CachedFileStat.h +1 -1
- data/src/cxx_supportlib/Utils/CachedFileStat.hpp +1 -1
- data/src/cxx_supportlib/Utils/ClassUtils.h +1 -1
- data/src/cxx_supportlib/Utils/Curl.h +1 -1
- data/src/cxx_supportlib/Utils/FastStringStream.h +1 -1
- data/src/cxx_supportlib/Utils/FileChangeChecker.h +1 -1
- data/src/cxx_supportlib/Utils/HttpConstants.h +1 -1
- data/src/cxx_supportlib/Utils/IniFile.h +1 -1
- data/src/cxx_supportlib/Utils/MessagePassing.h +1 -1
- data/src/cxx_supportlib/Utils/OptionParsing.h +1 -1
- data/src/cxx_supportlib/Utils/ReleaseableScopedPointer.h +1 -1
- data/src/cxx_supportlib/Utils/ScopeGuard.h +1 -1
- data/src/cxx_supportlib/Utils/SpeedMeter.h +1 -1
- data/src/cxx_supportlib/Utils/Timer.h +1 -1
- data/src/cxx_supportlib/Utils/VariantMap.h +1 -1
- data/src/cxx_supportlib/Utils.cpp +1 -1
- data/src/cxx_supportlib/Utils.h +1 -1
- data/src/cxx_supportlib/WatchdogLauncher.cpp +1 -1
- data/src/cxx_supportlib/WatchdogLauncher.h +1 -1
- data/src/cxx_supportlib/WrapperRegistry/CBindings.cpp +1 -1
- data/src/cxx_supportlib/WrapperRegistry/CBindings.h +1 -1
- data/src/cxx_supportlib/WrapperRegistry/Entry.h +1 -1
- data/src/cxx_supportlib/WrapperRegistry/Registry.h +1 -1
- 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/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 +1 -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 +1 -1
- data/src/cxx_supportlib/oxt/system_calls.hpp +1 -1
- data/src/cxx_supportlib/oxt/thread.hpp +1 -1
- data/src/cxx_supportlib/oxt/tracable_exception.hpp +1 -1
- data/src/cxx_supportlib/vendor-copy/adhoc_lve.h +1 -1
- data/src/cxx_supportlib/vendor-copy/libuv/AUTHORS +353 -3
- data/src/cxx_supportlib/vendor-copy/libuv/ChangeLog +3981 -2
- data/src/cxx_supportlib/vendor-copy/libuv/LICENSE +1 -28
- data/src/cxx_supportlib/vendor-copy/libuv/LICENSE-docs +396 -0
- data/src/cxx_supportlib/vendor-copy/libuv/LICENSE-extra +36 -0
- data/src/cxx_supportlib/vendor-copy/libuv/Makefile.am +275 -58
- data/src/cxx_supportlib/vendor-copy/libuv/Makefile.in +4380 -2125
- data/src/cxx_supportlib/vendor-copy/libuv/aclocal.m4 +425 -221
- data/src/cxx_supportlib/vendor-copy/libuv/ar-lib +30 -10
- data/src/cxx_supportlib/vendor-copy/libuv/compile +31 -14
- data/src/cxx_supportlib/vendor-copy/libuv/config.guess +1084 -690
- data/src/cxx_supportlib/vendor-copy/libuv/config.sub +1844 -1297
- data/src/cxx_supportlib/vendor-copy/libuv/configure +6935 -3664
- data/src/cxx_supportlib/vendor-copy/libuv/configure.ac +43 -19
- data/src/cxx_supportlib/vendor-copy/libuv/depcomp +12 -11
- data/src/cxx_supportlib/vendor-copy/libuv/include/{uv-darwin.h → uv/darwin.h} +3 -3
- data/src/cxx_supportlib/vendor-copy/libuv/include/{uv-errno.h → uv/errno.h} +119 -60
- data/src/cxx_supportlib/vendor-copy/libuv/include/{uv-linux.h → uv/linux.h} +1 -1
- data/src/cxx_supportlib/vendor-copy/libuv/include/uv/os390.h +33 -0
- data/src/cxx_supportlib/vendor-copy/libuv/include/uv/posix.h +31 -0
- data/src/cxx_supportlib/vendor-copy/libuv/include/{uv-threadpool.h → uv/threadpool.h} +1 -1
- data/src/cxx_supportlib/vendor-copy/libuv/include/{tree.h → uv/tree.h} +3 -250
- data/src/cxx_supportlib/vendor-copy/libuv/include/{uv-unix.h → uv/unix.h} +186 -60
- data/src/cxx_supportlib/vendor-copy/libuv/include/{uv-version.h → uv/version.h} +3 -3
- data/src/cxx_supportlib/vendor-copy/libuv/include/uv/win.h +703 -0
- data/src/cxx_supportlib/vendor-copy/libuv/include/uv.h +528 -40
- data/src/cxx_supportlib/vendor-copy/libuv/install-sh +110 -70
- data/src/cxx_supportlib/vendor-copy/libuv/libuv-static.pc.in +12 -0
- data/src/cxx_supportlib/vendor-copy/libuv/libuv.pc.in +4 -2
- data/src/cxx_supportlib/vendor-copy/libuv/ltmain.sh +995 -619
- data/src/cxx_supportlib/vendor-copy/libuv/m4/ax_pthread.m4 +485 -0
- data/src/cxx_supportlib/vendor-copy/libuv/m4/libtool.m4 +438 -289
- data/src/cxx_supportlib/vendor-copy/libuv/m4/libuv-check-flags.m4 +21 -4
- data/src/cxx_supportlib/vendor-copy/libuv/m4/libuv-check-versions.m4 +7 -0
- data/src/cxx_supportlib/vendor-copy/libuv/m4/ltoptions.m4 +69 -39
- data/src/cxx_supportlib/vendor-copy/libuv/m4/ltsugar.m4 +1 -1
- data/src/cxx_supportlib/vendor-copy/libuv/m4/ltversion.m4 +7 -6
- data/src/cxx_supportlib/vendor-copy/libuv/m4/lt~obsolete.m4 +2 -2
- data/src/cxx_supportlib/vendor-copy/libuv/missing +55 -34
- data/src/cxx_supportlib/vendor-copy/libuv/src/fs-poll.c +52 -20
- data/src/cxx_supportlib/vendor-copy/libuv/src/idna.c +560 -0
- data/src/cxx_supportlib/vendor-copy/libuv/src/idna.h +31 -0
- data/src/cxx_supportlib/vendor-copy/libuv/src/inet.c +5 -16
- data/src/cxx_supportlib/vendor-copy/libuv/src/queue.h +68 -86
- data/src/cxx_supportlib/vendor-copy/libuv/src/random.c +123 -0
- data/src/cxx_supportlib/vendor-copy/libuv/src/strscpy.c +38 -0
- data/src/cxx_supportlib/vendor-copy/libuv/src/strscpy.h +39 -0
- data/src/cxx_supportlib/vendor-copy/libuv/src/strtok.c +52 -0
- data/src/cxx_supportlib/vendor-copy/libuv/src/strtok.h +27 -0
- data/src/cxx_supportlib/vendor-copy/libuv/src/thread-common.c +175 -0
- data/src/cxx_supportlib/vendor-copy/libuv/src/threadpool.c +172 -57
- data/src/cxx_supportlib/vendor-copy/libuv/src/{unix/timer.c → timer.c} +57 -29
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/aix-common.c +89 -0
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/aix.c +418 -256
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/async.c +168 -129
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/bsd-ifaddrs.c +163 -0
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/bsd-proctitle.c +99 -0
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/core.c +1312 -378
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/cygwin.c +93 -0
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/darwin-proctitle.c +18 -32
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/darwin-stub.h +97 -0
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/darwin-syscalls.h +17 -0
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/darwin.c +41 -139
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/dl.c +1 -1
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/freebsd.c +75 -235
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/fs.c +1308 -299
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/fsevents.c +150 -148
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/getaddrinfo.c +58 -8
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/getnameinfo.c +3 -2
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/haiku.c +172 -0
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/hurd.c +172 -0
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/ibmi.c +542 -0
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/internal.h +297 -106
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/kqueue.c +325 -94
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/linux.c +2708 -0
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/loop-watcher.c +11 -11
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/loop.c +105 -24
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/netbsd.c +51 -157
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/no-fsevents.c +42 -0
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/no-proctitle.c +45 -0
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/openbsd.c +42 -183
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/os390-proctitle.c +136 -0
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/os390-syscalls.c +536 -0
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/os390-syscalls.h +75 -0
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/os390.c +1070 -0
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/pipe.c +324 -55
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/poll.c +58 -11
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/posix-hrtime.c +36 -0
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/posix-poll.c +385 -0
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/process.c +795 -248
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/procfs-exepath.c +45 -0
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/proctitle.c +77 -22
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/qnx.c +142 -0
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/random-devurandom.c +93 -0
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/random-getentropy.c +57 -0
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/random-getrandom.c +86 -0
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/random-sysctl-linux.c +99 -0
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/signal.c +147 -39
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/stream.c +426 -474
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/sunos.c +240 -98
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/sysinfo-loadavg.c +36 -0
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/sysinfo-memory.c +42 -0
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/tcp.c +402 -91
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/thread.c +497 -145
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/tty.c +269 -45
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/udp.c +695 -165
- data/src/cxx_supportlib/vendor-copy/libuv/src/uv-common.c +463 -61
- data/src/cxx_supportlib/vendor-copy/libuv/src/uv-common.h +248 -44
- data/src/cxx_supportlib/vendor-copy/libuv/src/uv-data-getter-setters.c +119 -0
- data/src/cxx_supportlib/vendor-copy/libuv/tsansupp.txt +2 -0
- data/src/cxx_supportlib/vendor-modified/libev/Changes +109 -0
- data/src/cxx_supportlib/vendor-modified/libev/Makefile.am +2 -1
- data/src/cxx_supportlib/vendor-modified/libev/Makefile.in +47 -33
- data/src/cxx_supportlib/vendor-modified/libev/README +2 -1
- data/src/cxx_supportlib/vendor-modified/libev/aclocal.m4 +1653 -1224
- data/src/cxx_supportlib/vendor-modified/libev/config.guess +376 -316
- data/src/cxx_supportlib/vendor-modified/libev/config.h.in +13 -2
- data/src/cxx_supportlib/vendor-modified/libev/config.sub +156 -154
- data/src/cxx_supportlib/vendor-modified/libev/configure +1431 -940
- data/src/cxx_supportlib/vendor-modified/libev/configure.ac +3 -3
- data/src/cxx_supportlib/vendor-modified/libev/depcomp +5 -5
- data/src/cxx_supportlib/vendor-modified/libev/ev++.h +109 -107
- data/src/cxx_supportlib/vendor-modified/libev/ev.c +807 -319
- data/src/cxx_supportlib/vendor-modified/libev/ev.h +111 -105
- data/src/cxx_supportlib/vendor-modified/libev/ev_epoll.c +42 -29
- data/src/cxx_supportlib/vendor-modified/libev/ev_iouring.c +694 -0
- data/src/cxx_supportlib/vendor-modified/libev/ev_kqueue.c +15 -9
- data/src/cxx_supportlib/vendor-modified/libev/ev_linuxaio.c +620 -0
- data/src/cxx_supportlib/vendor-modified/libev/ev_poll.c +19 -14
- data/src/cxx_supportlib/vendor-modified/libev/ev_port.c +8 -5
- data/src/cxx_supportlib/vendor-modified/libev/ev_select.c +6 -6
- data/src/cxx_supportlib/vendor-modified/libev/ev_vars.h +48 -3
- data/src/cxx_supportlib/vendor-modified/libev/ev_win32.c +2 -2
- data/src/cxx_supportlib/vendor-modified/libev/ev_wrap.h +72 -0
- data/src/cxx_supportlib/vendor-modified/libev/install-sh +23 -13
- data/src/cxx_supportlib/vendor-modified/libev/libev.m4 +6 -1
- data/src/cxx_supportlib/vendor-modified/libev/ltmain.sh +3581 -1993
- data/src/cxx_supportlib/vendor-modified/libev/missing +8 -8
- data/src/cxx_supportlib/vendor-modified/libev/mkinstalldirs +3 -3
- data/src/cxx_supportlib/vendor-modified/modp_b64_strict_aliasing.cpp +1 -1
- data/src/helper-scripts/backtrace-sanitizer.rb +1 -1
- data/src/helper-scripts/crash-watch.rb +1 -1
- data/src/helper-scripts/download_binaries/extconf.rb +1 -1
- data/src/helper-scripts/meteor-loader.rb +1 -1
- data/src/helper-scripts/node-loader.js +1 -1
- data/src/helper-scripts/prespawn +1 -1
- data/src/helper-scripts/rack-loader.rb +1 -1
- data/src/helper-scripts/rack-preloader.rb +1 -1
- data/src/helper-scripts/wsgi-loader.py +1 -1
- data/src/nginx_module/ConfigGeneral/AutoGeneratedDefinitions.c +1 -1
- data/src/nginx_module/ConfigGeneral/AutoGeneratedDefinitions.c.cxxcodebuilder +1 -1
- data/src/nginx_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.c +1 -1
- data/src/nginx_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.c.cxxcodebuilder +1 -1
- data/src/nginx_module/ConfigGeneral/AutoGeneratedSetterFuncs.c +1 -1
- data/src/nginx_module/ConfigGeneral/AutoGeneratedSetterFuncs.c.cxxcodebuilder +1 -1
- 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 +1 -1
- data/src/nginx_module/LocationConfig/AutoGeneratedCreateFunction.c.cxxcodebuilder +1 -1
- data/src/nginx_module/LocationConfig/AutoGeneratedHeaderSerialization.c +1 -1
- data/src/nginx_module/LocationConfig/AutoGeneratedHeaderSerialization.c.cxxcodebuilder +1 -1
- data/src/nginx_module/LocationConfig/AutoGeneratedManifestGeneration.c +1 -1
- data/src/nginx_module/LocationConfig/AutoGeneratedManifestGeneration.c.cxxcodebuilder +1 -1
- data/src/nginx_module/LocationConfig/AutoGeneratedMergeFunction.c +1 -1
- data/src/nginx_module/LocationConfig/AutoGeneratedMergeFunction.c.cxxcodebuilder +1 -1
- data/src/nginx_module/LocationConfig/AutoGeneratedStruct.h +1 -1
- data/src/nginx_module/LocationConfig/AutoGeneratedStruct.h.cxxcodebuilder +1 -1
- data/src/nginx_module/MainConfig/AutoGeneratedCreateFunction.c +1 -1
- data/src/nginx_module/MainConfig/AutoGeneratedCreateFunction.c.cxxcodebuilder +1 -1
- data/src/nginx_module/MainConfig/AutoGeneratedManifestGeneration.c +1 -1
- data/src/nginx_module/MainConfig/AutoGeneratedManifestGeneration.c.cxxcodebuilder +1 -1
- data/src/nginx_module/MainConfig/AutoGeneratedStruct.h +1 -1
- data/src/nginx_module/MainConfig/AutoGeneratedStruct.h.cxxcodebuilder +1 -1
- 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 +1 -1
- data/src/nginx_module/ngx_http_passenger_module.h +1 -1
- data/src/nodejs_supportlib/phusion_passenger/line_reader.js +1 -1
- data/src/ruby_native_extension/extconf.rb +1 -1
- data/src/ruby_native_extension/passenger_native_support.c +1 -1
- data/src/ruby_supportlib/phusion_passenger/abstract_installer.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/admin_tools/instance.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/admin_tools/instance_registry.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/admin_tools/memory_stats.rb +2 -12
- data/src/ruby_supportlib/phusion_passenger/admin_tools.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/apache2/config_options.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/apache2/config_utils.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/common_library.rb +8 -10
- data/src/ruby_supportlib/phusion_passenger/config/about_command.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/config/agent_compiler.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/config/api_call_command.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/config/build_native_support_command.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/config/command.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/config/compile_agent_command.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/config/compile_nginx_engine_command.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/config/detach_process_command.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/config/download_agent_command.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/config/download_nginx_engine_command.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/config/install_agent_command.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/config/install_standalone_runtime_command.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/config/installation_utils.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/config/list_instances_command.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/config/main.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/config/nginx_engine_compiler.rb +3 -2
- data/src/ruby_supportlib/phusion_passenger/config/reopen_logs_command.rb +6 -1
- data/src/ruby_supportlib/phusion_passenger/config/restart_app_command.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/config/system_metrics_command.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/config/system_properties_command.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/config/utils.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/config/validate_install_command.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/console_text_template.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/constants.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/debug_logging.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/loader_shared_helpers.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/message_channel.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/message_client.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/native_support.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/nginx/config_options.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/packaging.rb +4 -3
- data/src/ruby_supportlib/phusion_passenger/platform_info/apache.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/platform_info/apache_detector.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/platform_info/binary_compatibility.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/platform_info/compiler.rb +195 -11
- data/src/ruby_supportlib/phusion_passenger/platform_info/crypto.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/platform_info/curl.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/platform_info/cxx_portability.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/platform_info/linux.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/platform_info/networking.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/platform_info/openssl.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/platform_info/operating_system.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/platform_info/pcre.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/platform_info/ruby.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/platform_info/zlib.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/platform_info.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/plugin.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/preloader_shared_helpers.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/public_api.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/rack/handler.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/rack/out_of_band_gc.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/rack/thread_handler_extension.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/rack_handler.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/request_handler/thread_handler.rb +2 -7
- data/src/ruby_supportlib/phusion_passenger/request_handler.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/ruby_core_enhancements.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/ruby_core_io_enhancements.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/simple_benchmarking.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/standalone/app_finder.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/standalone/command.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/standalone/config_options_list.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/standalone/config_utils.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/standalone/control_utils.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/standalone/main.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/standalone/start_command/builtin_engine.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/standalone/start_command/nginx_engine.rb +4 -8
- data/src/ruby_supportlib/phusion_passenger/standalone/start_command.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/standalone/status_command.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/standalone/stop_command.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/standalone/version_command.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/utils/ansi_colors.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/utils/download.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/utils/file_system_watcher.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/utils/hosts_file_parser.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/utils/lock.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/utils/native_support_utils.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/utils/progress_bar.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/utils/strscan.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/utils/terminal_choice_menu.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/utils/unseekable_socket.rb +3 -13
- data/src/ruby_supportlib/phusion_passenger/utils.rb +1 -1
- 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 +8 -6
- data/src/ruby_supportlib/phusion_passenger/vendor/daemon_controller/spawn.rb +4 -3
- data/src/ruby_supportlib/phusion_passenger/vendor/daemon_controller/version.rb +6 -4
- data/src/ruby_supportlib/phusion_passenger/vendor/daemon_controller.rb +395 -579
- data/src/ruby_supportlib/phusion_passenger.rb +8 -8
- data/src/schema_printer/SchemaPrinterMain.cpp +1 -1
- data/src/schema_printer/SchemaPrinterMain.cpp.cxxcodebuilder +1 -1
- metadata +69 -32
- data/doc/DeveloperQuickstart.md +0 -70
- data/src/README.md +0 -7
- data/src/cxx_supportlib/vendor-copy/libuv/README.md +0 -245
- data/src/cxx_supportlib/vendor-copy/libuv/checksparse.sh +0 -234
- data/src/cxx_supportlib/vendor-copy/libuv/common.gypi +0 -210
- data/src/cxx_supportlib/vendor-copy/libuv/gyp_uv.py +0 -93
- data/src/cxx_supportlib/vendor-copy/libuv/include/android-ifaddrs.h +0 -54
- data/src/cxx_supportlib/vendor-copy/libuv/include/pthread-fixes.h +0 -72
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/android-ifaddrs.c +0 -703
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/atomic-ops.h +0 -77
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/linux-core.c +0 -899
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/linux-inotify.c +0 -285
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/linux-syscalls.c +0 -471
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/linux-syscalls.h +0 -158
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/pthread-fixes.c +0 -104
- data/src/cxx_supportlib/vendor-copy/libuv/src/unix/spinlock.h +0 -53
- data/src/cxx_supportlib/vendor-copy/libuv/uv.gyp +0 -508
- /data/src/cxx_supportlib/vendor-copy/libuv/include/{uv-aix.h → uv/aix.h} +0 -0
- /data/src/cxx_supportlib/vendor-copy/libuv/include/{uv-bsd.h → uv/bsd.h} +0 -0
- /data/src/cxx_supportlib/vendor-copy/libuv/include/{uv-sunos.h → uv/sunos.h} +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/*
|
|
2
2
|
* libev native API header
|
|
3
3
|
*
|
|
4
|
-
* Copyright (c) 2007
|
|
4
|
+
* Copyright (c) 2007-2020 Marc Alexander Lehmann <libev@schmorp.de>
|
|
5
5
|
* All rights reserved.
|
|
6
6
|
*
|
|
7
7
|
* Redistribution and use in source and binary forms, with or without modifica-
|
|
@@ -43,14 +43,15 @@
|
|
|
43
43
|
#ifdef __cplusplus
|
|
44
44
|
# define EV_CPP(x) x
|
|
45
45
|
# if __cplusplus >= 201103L
|
|
46
|
-
# define
|
|
46
|
+
# define EV_NOEXCEPT noexcept
|
|
47
47
|
# else
|
|
48
|
-
# define
|
|
48
|
+
# define EV_NOEXCEPT
|
|
49
49
|
# endif
|
|
50
50
|
#else
|
|
51
51
|
# define EV_CPP(x)
|
|
52
|
-
# define
|
|
52
|
+
# define EV_NOEXCEPT
|
|
53
53
|
#endif
|
|
54
|
+
#define EV_THROW EV_NOEXCEPT /* pre-4.25, do not use in new code */
|
|
54
55
|
|
|
55
56
|
EV_CPP(extern "C" {)
|
|
56
57
|
|
|
@@ -150,7 +151,10 @@ EV_CPP(extern "C" {)
|
|
|
150
151
|
|
|
151
152
|
/*****************************************************************************/
|
|
152
153
|
|
|
153
|
-
|
|
154
|
+
#ifndef EV_TSTAMP_T
|
|
155
|
+
# define EV_TSTAMP_T double
|
|
156
|
+
#endif
|
|
157
|
+
typedef EV_TSTAMP_T ev_tstamp;
|
|
154
158
|
|
|
155
159
|
#include <string.h> /* for memmove */
|
|
156
160
|
|
|
@@ -211,7 +215,7 @@ struct ev_loop;
|
|
|
211
215
|
/*****************************************************************************/
|
|
212
216
|
|
|
213
217
|
#define EV_VERSION_MAJOR 4
|
|
214
|
-
#define EV_VERSION_MINOR
|
|
218
|
+
#define EV_VERSION_MINOR 33
|
|
215
219
|
|
|
216
220
|
/* eventmask, revents, events... */
|
|
217
221
|
enum {
|
|
@@ -339,7 +343,7 @@ typedef struct ev_periodic
|
|
|
339
343
|
|
|
340
344
|
ev_tstamp offset; /* rw */
|
|
341
345
|
ev_tstamp interval; /* rw */
|
|
342
|
-
ev_tstamp (*reschedule_cb)(struct ev_periodic *w, ev_tstamp now)
|
|
346
|
+
ev_tstamp (*reschedule_cb)(struct ev_periodic *w, ev_tstamp now) EV_NOEXCEPT; /* rw */
|
|
343
347
|
} ev_periodic;
|
|
344
348
|
|
|
345
349
|
/* invoked when the given signal has been received */
|
|
@@ -388,14 +392,12 @@ typedef struct ev_stat
|
|
|
388
392
|
} ev_stat;
|
|
389
393
|
#endif
|
|
390
394
|
|
|
391
|
-
#if EV_IDLE_ENABLE
|
|
392
395
|
/* invoked when the nothing else needs to be done, keeps the process from blocking */
|
|
393
396
|
/* revent EV_IDLE */
|
|
394
397
|
typedef struct ev_idle
|
|
395
398
|
{
|
|
396
399
|
EV_WATCHER (ev_idle)
|
|
397
400
|
} ev_idle;
|
|
398
|
-
#endif
|
|
399
401
|
|
|
400
402
|
/* invoked for each run of the mainloop, just before the blocking call */
|
|
401
403
|
/* you can still change events in any way you like */
|
|
@@ -412,23 +414,19 @@ typedef struct ev_check
|
|
|
412
414
|
EV_WATCHER (ev_check)
|
|
413
415
|
} ev_check;
|
|
414
416
|
|
|
415
|
-
#if EV_FORK_ENABLE
|
|
416
417
|
/* the callback gets invoked before check in the child process when a fork was detected */
|
|
417
418
|
/* revent EV_FORK */
|
|
418
419
|
typedef struct ev_fork
|
|
419
420
|
{
|
|
420
421
|
EV_WATCHER (ev_fork)
|
|
421
422
|
} ev_fork;
|
|
422
|
-
#endif
|
|
423
423
|
|
|
424
|
-
#if EV_CLEANUP_ENABLE
|
|
425
424
|
/* is invoked just before the loop gets destroyed */
|
|
426
425
|
/* revent EV_CLEANUP */
|
|
427
426
|
typedef struct ev_cleanup
|
|
428
427
|
{
|
|
429
428
|
EV_WATCHER (ev_cleanup)
|
|
430
429
|
} ev_cleanup;
|
|
431
|
-
#endif
|
|
432
430
|
|
|
433
431
|
#if EV_EMBED_ENABLE
|
|
434
432
|
/* used to embed an event loop inside another */
|
|
@@ -438,16 +436,18 @@ typedef struct ev_embed
|
|
|
438
436
|
EV_WATCHER (ev_embed)
|
|
439
437
|
|
|
440
438
|
struct ev_loop *other; /* ro */
|
|
439
|
+
#undef EV_IO_ENABLE
|
|
440
|
+
#define EV_IO_ENABLE 1
|
|
441
441
|
ev_io io; /* private */
|
|
442
|
+
#undef EV_PREPARE_ENABLE
|
|
443
|
+
#define EV_PREPARE_ENABLE 1
|
|
442
444
|
ev_prepare prepare; /* private */
|
|
443
445
|
ev_check check; /* unused */
|
|
444
446
|
ev_timer timer; /* unused */
|
|
445
447
|
ev_periodic periodic; /* unused */
|
|
446
448
|
ev_idle idle; /* unused */
|
|
447
449
|
ev_fork fork; /* private */
|
|
448
|
-
#if EV_CLEANUP_ENABLE
|
|
449
450
|
ev_cleanup cleanup; /* unused */
|
|
450
|
-
#endif
|
|
451
451
|
} ev_embed;
|
|
452
452
|
#endif
|
|
453
453
|
|
|
@@ -500,41 +500,44 @@ union ev_any_watcher
|
|
|
500
500
|
/* flag bits for ev_default_loop and ev_loop_new */
|
|
501
501
|
enum {
|
|
502
502
|
/* the default */
|
|
503
|
-
EVFLAG_AUTO
|
|
503
|
+
EVFLAG_AUTO = 0x00000000U, /* not quite a mask */
|
|
504
504
|
/* flag bits */
|
|
505
|
-
EVFLAG_NOENV
|
|
506
|
-
EVFLAG_FORKCHECK
|
|
505
|
+
EVFLAG_NOENV = 0x01000000U, /* do NOT consult environment */
|
|
506
|
+
EVFLAG_FORKCHECK = 0x02000000U, /* check for a fork in each iteration */
|
|
507
507
|
/* debugging/feature disable */
|
|
508
|
-
EVFLAG_NOINOTIFY
|
|
508
|
+
EVFLAG_NOINOTIFY = 0x00100000U, /* do not attempt to use inotify */
|
|
509
509
|
#if EV_COMPAT3
|
|
510
|
-
EVFLAG_NOSIGFD
|
|
510
|
+
EVFLAG_NOSIGFD = 0, /* compatibility to pre-3.9 */
|
|
511
511
|
#endif
|
|
512
|
-
EVFLAG_SIGNALFD
|
|
513
|
-
EVFLAG_NOSIGMASK
|
|
512
|
+
EVFLAG_SIGNALFD = 0x00200000U, /* attempt to use signalfd */
|
|
513
|
+
EVFLAG_NOSIGMASK = 0x00400000U, /* avoid modifying the signal mask */
|
|
514
|
+
EVFLAG_NOTIMERFD = 0x00800000U /* avoid creating a timerfd */
|
|
514
515
|
};
|
|
515
516
|
|
|
516
517
|
/* method bits to be ored together */
|
|
517
518
|
enum {
|
|
518
|
-
EVBACKEND_SELECT
|
|
519
|
-
EVBACKEND_POLL
|
|
520
|
-
EVBACKEND_EPOLL
|
|
521
|
-
EVBACKEND_KQUEUE
|
|
522
|
-
EVBACKEND_DEVPOLL
|
|
523
|
-
EVBACKEND_PORT
|
|
524
|
-
|
|
525
|
-
|
|
519
|
+
EVBACKEND_SELECT = 0x00000001U, /* available just about anywhere */
|
|
520
|
+
EVBACKEND_POLL = 0x00000002U, /* !win, !aix, broken on osx */
|
|
521
|
+
EVBACKEND_EPOLL = 0x00000004U, /* linux */
|
|
522
|
+
EVBACKEND_KQUEUE = 0x00000008U, /* bsd, broken on osx */
|
|
523
|
+
EVBACKEND_DEVPOLL = 0x00000010U, /* solaris 8 */ /* NYI */
|
|
524
|
+
EVBACKEND_PORT = 0x00000020U, /* solaris 10 */
|
|
525
|
+
EVBACKEND_LINUXAIO = 0x00000040U, /* linux AIO, 4.19+ */
|
|
526
|
+
EVBACKEND_IOURING = 0x00000080U, /* linux io_uring, 5.1+ */
|
|
527
|
+
EVBACKEND_ALL = 0x000000FFU, /* all known backends */
|
|
528
|
+
EVBACKEND_MASK = 0x0000FFFFU /* all future backends */
|
|
526
529
|
};
|
|
527
530
|
|
|
528
531
|
#if EV_PROTOTYPES
|
|
529
|
-
EV_API_DECL int ev_version_major (void)
|
|
530
|
-
EV_API_DECL int ev_version_minor (void)
|
|
532
|
+
EV_API_DECL int ev_version_major (void) EV_NOEXCEPT;
|
|
533
|
+
EV_API_DECL int ev_version_minor (void) EV_NOEXCEPT;
|
|
531
534
|
|
|
532
|
-
EV_API_DECL unsigned int ev_supported_backends (void)
|
|
533
|
-
EV_API_DECL unsigned int ev_recommended_backends (void)
|
|
534
|
-
EV_API_DECL unsigned int ev_embeddable_backends (void)
|
|
535
|
+
EV_API_DECL unsigned int ev_supported_backends (void) EV_NOEXCEPT;
|
|
536
|
+
EV_API_DECL unsigned int ev_recommended_backends (void) EV_NOEXCEPT;
|
|
537
|
+
EV_API_DECL unsigned int ev_embeddable_backends (void) EV_NOEXCEPT;
|
|
535
538
|
|
|
536
|
-
EV_API_DECL ev_tstamp ev_time (void)
|
|
537
|
-
EV_API_DECL void ev_sleep (ev_tstamp delay)
|
|
539
|
+
EV_API_DECL ev_tstamp ev_time (void) EV_NOEXCEPT;
|
|
540
|
+
EV_API_DECL void ev_sleep (ev_tstamp delay) EV_NOEXCEPT; /* sleep for a while */
|
|
538
541
|
|
|
539
542
|
/* Sets the allocation function to use, works like realloc.
|
|
540
543
|
* It is used to allocate and free memory.
|
|
@@ -542,26 +545,26 @@ EV_API_DECL void ev_sleep (ev_tstamp delay) EV_THROW; /* sleep for a while */
|
|
|
542
545
|
* or take some potentially destructive action.
|
|
543
546
|
* The default is your system realloc function.
|
|
544
547
|
*/
|
|
545
|
-
EV_API_DECL void ev_set_allocator (void *(*cb)(void *ptr, long size))
|
|
548
|
+
EV_API_DECL void ev_set_allocator (void *(*cb)(void *ptr, long size)) EV_NOEXCEPT;
|
|
546
549
|
|
|
547
550
|
/* set the callback function to call on a
|
|
548
551
|
* retryable syscall error
|
|
549
552
|
* (such as failed select, poll, epoll_wait)
|
|
550
553
|
*/
|
|
551
|
-
EV_API_DECL void ev_set_syserr_cb (void (*cb)(const char *msg))
|
|
554
|
+
EV_API_DECL void ev_set_syserr_cb (void (*cb)(const char *msg)) EV_NOEXCEPT;
|
|
552
555
|
|
|
553
556
|
#if EV_MULTIPLICITY
|
|
554
557
|
|
|
555
558
|
/* the default loop is the only one that handles signals and child watchers */
|
|
556
559
|
/* you can call this as often as you like */
|
|
557
|
-
EV_API_DECL struct ev_loop *ev_default_loop (unsigned int flags EV_CPP (= 0))
|
|
560
|
+
EV_API_DECL struct ev_loop *ev_default_loop (unsigned int flags EV_CPP (= 0)) EV_NOEXCEPT;
|
|
558
561
|
|
|
559
562
|
#ifdef EV_API_STATIC
|
|
560
563
|
EV_API_DECL struct ev_loop *ev_default_loop_ptr;
|
|
561
564
|
#endif
|
|
562
565
|
|
|
563
566
|
EV_INLINE struct ev_loop *
|
|
564
|
-
ev_default_loop_uc_ (void)
|
|
567
|
+
ev_default_loop_uc_ (void) EV_NOEXCEPT
|
|
565
568
|
{
|
|
566
569
|
extern struct ev_loop *ev_default_loop_ptr;
|
|
567
570
|
|
|
@@ -569,31 +572,31 @@ ev_default_loop_uc_ (void) EV_THROW
|
|
|
569
572
|
}
|
|
570
573
|
|
|
571
574
|
EV_INLINE int
|
|
572
|
-
ev_is_default_loop (EV_P)
|
|
575
|
+
ev_is_default_loop (EV_P) EV_NOEXCEPT
|
|
573
576
|
{
|
|
574
577
|
return EV_A == EV_DEFAULT_UC;
|
|
575
578
|
}
|
|
576
579
|
|
|
577
580
|
/* create and destroy alternative loops that don't handle signals */
|
|
578
|
-
EV_API_DECL struct ev_loop *ev_loop_new (unsigned int flags EV_CPP (= 0))
|
|
581
|
+
EV_API_DECL struct ev_loop *ev_loop_new (unsigned int flags EV_CPP (= 0)) EV_NOEXCEPT;
|
|
579
582
|
|
|
580
|
-
EV_API_DECL ev_tstamp ev_now (EV_P)
|
|
583
|
+
EV_API_DECL ev_tstamp ev_now (EV_P) EV_NOEXCEPT; /* time w.r.t. timers and the eventloop, updated after each poll */
|
|
581
584
|
|
|
582
585
|
#else
|
|
583
586
|
|
|
584
|
-
EV_API_DECL int ev_default_loop (unsigned int flags EV_CPP (= 0))
|
|
587
|
+
EV_API_DECL int ev_default_loop (unsigned int flags EV_CPP (= 0)) EV_NOEXCEPT; /* returns true when successful */
|
|
585
588
|
|
|
586
589
|
EV_API_DECL ev_tstamp ev_rt_now;
|
|
587
590
|
|
|
588
591
|
EV_INLINE ev_tstamp
|
|
589
|
-
ev_now (void)
|
|
592
|
+
ev_now (void) EV_NOEXCEPT
|
|
590
593
|
{
|
|
591
594
|
return ev_rt_now;
|
|
592
595
|
}
|
|
593
596
|
|
|
594
597
|
/* looks weird, but ev_is_default_loop (EV_A) still works if this exists */
|
|
595
598
|
EV_INLINE int
|
|
596
|
-
ev_is_default_loop (void)
|
|
599
|
+
ev_is_default_loop (void) EV_NOEXCEPT
|
|
597
600
|
{
|
|
598
601
|
return 1;
|
|
599
602
|
}
|
|
@@ -607,11 +610,11 @@ EV_API_DECL void ev_loop_destroy (EV_P);
|
|
|
607
610
|
/* when you want to re-use it in the child */
|
|
608
611
|
/* you can call it in either the parent or the child */
|
|
609
612
|
/* you can actually call it at any time, anywhere :) */
|
|
610
|
-
EV_API_DECL void ev_loop_fork (EV_P)
|
|
613
|
+
EV_API_DECL void ev_loop_fork (EV_P) EV_NOEXCEPT;
|
|
611
614
|
|
|
612
|
-
EV_API_DECL unsigned int ev_backend (EV_P)
|
|
615
|
+
EV_API_DECL unsigned int ev_backend (EV_P) EV_NOEXCEPT; /* backend in use by loop */
|
|
613
616
|
|
|
614
|
-
EV_API_DECL void ev_now_update (EV_P)
|
|
617
|
+
EV_API_DECL void ev_now_update (EV_P) EV_NOEXCEPT; /* update event loop time */
|
|
615
618
|
|
|
616
619
|
EV_API_DECL int ev_backend_fd (EV_P) EV_THROW;
|
|
617
620
|
EV_API_DECL int ev_loop_get_pipe (EV_P_ unsigned int index) EV_THROW;
|
|
@@ -620,7 +623,7 @@ EV_API_DECL int ev_loop_get_pipe (EV_P_ unsigned int index) EV_THROW;
|
|
|
620
623
|
/* walk (almost) all watchers in the loop of a given type, invoking the */
|
|
621
624
|
/* callback on every such watcher. The callback might stop the watcher, */
|
|
622
625
|
/* but do nothing else with the loop */
|
|
623
|
-
EV_API_DECL void ev_walk (EV_P_ int types, void (*cb)(EV_P_ int type, void *w))
|
|
626
|
+
EV_API_DECL void ev_walk (EV_P_ int types, void (*cb)(EV_P_ int type, void *w)) EV_NOEXCEPT;
|
|
624
627
|
#endif
|
|
625
628
|
|
|
626
629
|
#endif /* prototypes */
|
|
@@ -640,46 +643,47 @@ enum {
|
|
|
640
643
|
|
|
641
644
|
#if EV_PROTOTYPES
|
|
642
645
|
EV_API_DECL int ev_run (EV_P_ int flags EV_CPP (= 0));
|
|
643
|
-
EV_API_DECL void ev_break (EV_P_ int how EV_CPP (= EVBREAK_ONE))
|
|
646
|
+
EV_API_DECL void ev_break (EV_P_ int how EV_CPP (= EVBREAK_ONE)) EV_NOEXCEPT; /* break out of the loop */
|
|
644
647
|
|
|
645
648
|
/*
|
|
646
649
|
* ref/unref can be used to add or remove a refcount on the mainloop. every watcher
|
|
647
650
|
* keeps one reference. if you have a long-running watcher you never unregister that
|
|
648
651
|
* should not keep ev_loop from running, unref() after starting, and ref() before stopping.
|
|
649
652
|
*/
|
|
650
|
-
EV_API_DECL void ev_ref (EV_P)
|
|
651
|
-
EV_API_DECL void ev_unref (EV_P)
|
|
653
|
+
EV_API_DECL void ev_ref (EV_P) EV_NOEXCEPT;
|
|
654
|
+
EV_API_DECL void ev_unref (EV_P) EV_NOEXCEPT;
|
|
652
655
|
|
|
653
656
|
/*
|
|
654
657
|
* convenience function, wait for a single event, without registering an event watcher
|
|
655
658
|
* if timeout is < 0, do wait indefinitely
|
|
656
659
|
*/
|
|
657
|
-
EV_API_DECL void ev_once (EV_P_ int fd, int events, ev_tstamp timeout, void (*cb)(int revents, void *arg), void *arg)
|
|
660
|
+
EV_API_DECL void ev_once (EV_P_ int fd, int events, ev_tstamp timeout, void (*cb)(int revents, void *arg), void *arg) EV_NOEXCEPT;
|
|
661
|
+
|
|
662
|
+
EV_API_DECL void ev_invoke_pending (EV_P); /* invoke all pending watchers */
|
|
658
663
|
|
|
659
664
|
# if EV_FEATURE_API
|
|
660
|
-
EV_API_DECL unsigned int ev_iteration (EV_P)
|
|
661
|
-
EV_API_DECL unsigned int ev_depth (EV_P)
|
|
662
|
-
EV_API_DECL void ev_verify (EV_P)
|
|
665
|
+
EV_API_DECL unsigned int ev_iteration (EV_P) EV_NOEXCEPT; /* number of loop iterations */
|
|
666
|
+
EV_API_DECL unsigned int ev_depth (EV_P) EV_NOEXCEPT; /* #ev_loop enters - #ev_loop leaves */
|
|
667
|
+
EV_API_DECL void ev_verify (EV_P) EV_NOEXCEPT; /* abort if loop data corrupted */
|
|
663
668
|
|
|
664
|
-
EV_API_DECL void ev_set_io_collect_interval (EV_P_ ev_tstamp interval)
|
|
665
|
-
EV_API_DECL void ev_set_timeout_collect_interval (EV_P_ ev_tstamp interval)
|
|
669
|
+
EV_API_DECL void ev_set_io_collect_interval (EV_P_ ev_tstamp interval) EV_NOEXCEPT; /* sleep at least this time, default 0 */
|
|
670
|
+
EV_API_DECL void ev_set_timeout_collect_interval (EV_P_ ev_tstamp interval) EV_NOEXCEPT; /* sleep at least this time, default 0 */
|
|
666
671
|
|
|
667
672
|
/* advanced stuff for threading etc. support, see docs */
|
|
668
|
-
EV_API_DECL void ev_set_userdata (EV_P_ void *data)
|
|
669
|
-
EV_API_DECL void *ev_userdata (EV_P)
|
|
673
|
+
EV_API_DECL void ev_set_userdata (EV_P_ void *data) EV_NOEXCEPT;
|
|
674
|
+
EV_API_DECL void *ev_userdata (EV_P) EV_NOEXCEPT;
|
|
670
675
|
typedef void (*ev_loop_callback)(EV_P);
|
|
671
|
-
EV_API_DECL void ev_set_invoke_pending_cb (EV_P_ ev_loop_callback invoke_pending_cb)
|
|
676
|
+
EV_API_DECL void ev_set_invoke_pending_cb (EV_P_ ev_loop_callback invoke_pending_cb) EV_NOEXCEPT;
|
|
672
677
|
/* C++ doesn't allow the use of the ev_loop_callback typedef here, so we need to spell it out */
|
|
673
|
-
EV_API_DECL void ev_set_loop_release_cb (EV_P_ void (*release)(EV_P), void (*acquire)(EV_P))
|
|
678
|
+
EV_API_DECL void ev_set_loop_release_cb (EV_P_ void (*release)(EV_P), void (*acquire)(EV_P)) EV_NOEXCEPT;
|
|
674
679
|
|
|
675
|
-
EV_API_DECL unsigned int ev_pending_count (EV_P)
|
|
676
|
-
EV_API_DECL void ev_invoke_pending (EV_P); /* invoke all pending watchers */
|
|
680
|
+
EV_API_DECL unsigned int ev_pending_count (EV_P) EV_NOEXCEPT; /* number of pending events, if any */
|
|
677
681
|
|
|
678
682
|
/*
|
|
679
683
|
* stop/start the timer handling.
|
|
680
684
|
*/
|
|
681
|
-
EV_API_DECL void ev_suspend (EV_P)
|
|
682
|
-
EV_API_DECL void ev_resume (EV_P)
|
|
685
|
+
EV_API_DECL void ev_suspend (EV_P) EV_NOEXCEPT;
|
|
686
|
+
EV_API_DECL void ev_resume (EV_P) EV_NOEXCEPT;
|
|
683
687
|
#endif
|
|
684
688
|
|
|
685
689
|
#endif
|
|
@@ -693,6 +697,7 @@ EV_API_DECL void ev_resume (EV_P) EV_THROW;
|
|
|
693
697
|
ev_set_cb ((ev), cb_); \
|
|
694
698
|
} while (0)
|
|
695
699
|
|
|
700
|
+
#define ev_io_modify(ev,events_) do { (ev)->events = (ev)->events & EV__IOFDSET | (events_); } while (0)
|
|
696
701
|
#define ev_io_set(ev,fd_,events_) do { (ev)->fd = (fd_); (ev)->events = (events_) | EV__IOFDSET; } while (0)
|
|
697
702
|
#define ev_timer_set(ev,after_,repeat_) do { ((ev_watcher_time *)(ev))->at = (after_); (ev)->repeat = (repeat_); } while (0)
|
|
698
703
|
#define ev_periodic_set(ev,ofs_,ival_,rcb_) do { (ev)->offset = (ofs_); (ev)->interval = (ival_); (ev)->reschedule_cb = (rcb_); } while (0)
|
|
@@ -738,6 +743,7 @@ EV_API_DECL void ev_resume (EV_P) EV_THROW;
|
|
|
738
743
|
#define ev_periodic_at(ev) (+((ev_watcher_time *)(ev))->at)
|
|
739
744
|
|
|
740
745
|
#ifndef ev_set_cb
|
|
746
|
+
/* memmove is used here to avoid strict aliasing violations, and hopefully is optimized out by any reasonable compiler */
|
|
741
747
|
# define ev_set_cb(ev,cb_) (ev_cb_ (ev) = (cb_), memmove (&((ev_watcher *)(ev))->cb, &ev_cb_ (ev), sizeof (ev_cb_ (ev))))
|
|
742
748
|
#endif
|
|
743
749
|
|
|
@@ -747,85 +753,85 @@ EV_API_DECL void ev_resume (EV_P) EV_THROW;
|
|
|
747
753
|
|
|
748
754
|
/* feeds an event into a watcher as if the event actually occurred */
|
|
749
755
|
/* accepts any ev_watcher type */
|
|
750
|
-
EV_API_DECL void ev_feed_event (EV_P_ void *w, int revents)
|
|
751
|
-
EV_API_DECL void ev_feed_fd_event (EV_P_ int fd, int revents)
|
|
756
|
+
EV_API_DECL void ev_feed_event (EV_P_ void *w, int revents) EV_NOEXCEPT;
|
|
757
|
+
EV_API_DECL void ev_feed_fd_event (EV_P_ int fd, int revents) EV_NOEXCEPT;
|
|
752
758
|
#if EV_SIGNAL_ENABLE
|
|
753
|
-
EV_API_DECL void ev_feed_signal (int signum)
|
|
754
|
-
EV_API_DECL void ev_feed_signal_event (EV_P_ int signum)
|
|
759
|
+
EV_API_DECL void ev_feed_signal (int signum) EV_NOEXCEPT;
|
|
760
|
+
EV_API_DECL void ev_feed_signal_event (EV_P_ int signum) EV_NOEXCEPT;
|
|
755
761
|
#endif
|
|
756
762
|
EV_API_DECL void ev_invoke (EV_P_ void *w, int revents);
|
|
757
|
-
EV_API_DECL int ev_clear_pending (EV_P_ void *w)
|
|
763
|
+
EV_API_DECL int ev_clear_pending (EV_P_ void *w) EV_NOEXCEPT;
|
|
758
764
|
|
|
759
|
-
EV_API_DECL void ev_io_start (EV_P_ ev_io *w)
|
|
760
|
-
EV_API_DECL void ev_io_stop (EV_P_ ev_io *w)
|
|
765
|
+
EV_API_DECL void ev_io_start (EV_P_ ev_io *w) EV_NOEXCEPT;
|
|
766
|
+
EV_API_DECL void ev_io_stop (EV_P_ ev_io *w) EV_NOEXCEPT;
|
|
761
767
|
|
|
762
|
-
EV_API_DECL void ev_timer_start (EV_P_ ev_timer *w)
|
|
763
|
-
EV_API_DECL void ev_timer_stop (EV_P_ ev_timer *w)
|
|
768
|
+
EV_API_DECL void ev_timer_start (EV_P_ ev_timer *w) EV_NOEXCEPT;
|
|
769
|
+
EV_API_DECL void ev_timer_stop (EV_P_ ev_timer *w) EV_NOEXCEPT;
|
|
764
770
|
/* stops if active and no repeat, restarts if active and repeating, starts if inactive and repeating */
|
|
765
|
-
EV_API_DECL void ev_timer_again (EV_P_ ev_timer *w)
|
|
771
|
+
EV_API_DECL void ev_timer_again (EV_P_ ev_timer *w) EV_NOEXCEPT;
|
|
766
772
|
/* return remaining time */
|
|
767
|
-
EV_API_DECL ev_tstamp ev_timer_remaining (EV_P_ ev_timer *w)
|
|
773
|
+
EV_API_DECL ev_tstamp ev_timer_remaining (EV_P_ ev_timer *w) EV_NOEXCEPT;
|
|
768
774
|
|
|
769
775
|
#if EV_PERIODIC_ENABLE
|
|
770
|
-
EV_API_DECL void ev_periodic_start (EV_P_ ev_periodic *w)
|
|
771
|
-
EV_API_DECL void ev_periodic_stop (EV_P_ ev_periodic *w)
|
|
772
|
-
EV_API_DECL void ev_periodic_again (EV_P_ ev_periodic *w)
|
|
776
|
+
EV_API_DECL void ev_periodic_start (EV_P_ ev_periodic *w) EV_NOEXCEPT;
|
|
777
|
+
EV_API_DECL void ev_periodic_stop (EV_P_ ev_periodic *w) EV_NOEXCEPT;
|
|
778
|
+
EV_API_DECL void ev_periodic_again (EV_P_ ev_periodic *w) EV_NOEXCEPT;
|
|
773
779
|
#endif
|
|
774
780
|
|
|
775
781
|
/* only supported in the default loop */
|
|
776
782
|
#if EV_SIGNAL_ENABLE
|
|
777
|
-
EV_API_DECL void ev_signal_start (EV_P_ ev_signal *w)
|
|
778
|
-
EV_API_DECL void ev_signal_stop (EV_P_ ev_signal *w)
|
|
783
|
+
EV_API_DECL void ev_signal_start (EV_P_ ev_signal *w) EV_NOEXCEPT;
|
|
784
|
+
EV_API_DECL void ev_signal_stop (EV_P_ ev_signal *w) EV_NOEXCEPT;
|
|
779
785
|
#endif
|
|
780
786
|
|
|
781
787
|
/* only supported in the default loop */
|
|
782
788
|
# if EV_CHILD_ENABLE
|
|
783
|
-
EV_API_DECL void ev_child_start (EV_P_ ev_child *w)
|
|
784
|
-
EV_API_DECL void ev_child_stop (EV_P_ ev_child *w)
|
|
789
|
+
EV_API_DECL void ev_child_start (EV_P_ ev_child *w) EV_NOEXCEPT;
|
|
790
|
+
EV_API_DECL void ev_child_stop (EV_P_ ev_child *w) EV_NOEXCEPT;
|
|
785
791
|
# endif
|
|
786
792
|
|
|
787
793
|
# if EV_STAT_ENABLE
|
|
788
|
-
EV_API_DECL void ev_stat_start (EV_P_ ev_stat *w)
|
|
789
|
-
EV_API_DECL void ev_stat_stop (EV_P_ ev_stat *w)
|
|
790
|
-
EV_API_DECL void ev_stat_stat (EV_P_ ev_stat *w)
|
|
794
|
+
EV_API_DECL void ev_stat_start (EV_P_ ev_stat *w) EV_NOEXCEPT;
|
|
795
|
+
EV_API_DECL void ev_stat_stop (EV_P_ ev_stat *w) EV_NOEXCEPT;
|
|
796
|
+
EV_API_DECL void ev_stat_stat (EV_P_ ev_stat *w) EV_NOEXCEPT;
|
|
791
797
|
# endif
|
|
792
798
|
|
|
793
799
|
# if EV_IDLE_ENABLE
|
|
794
|
-
EV_API_DECL void ev_idle_start (EV_P_ ev_idle *w)
|
|
795
|
-
EV_API_DECL void ev_idle_stop (EV_P_ ev_idle *w)
|
|
800
|
+
EV_API_DECL void ev_idle_start (EV_P_ ev_idle *w) EV_NOEXCEPT;
|
|
801
|
+
EV_API_DECL void ev_idle_stop (EV_P_ ev_idle *w) EV_NOEXCEPT;
|
|
796
802
|
# endif
|
|
797
803
|
|
|
798
804
|
#if EV_PREPARE_ENABLE
|
|
799
|
-
EV_API_DECL void ev_prepare_start (EV_P_ ev_prepare *w)
|
|
800
|
-
EV_API_DECL void ev_prepare_stop (EV_P_ ev_prepare *w)
|
|
805
|
+
EV_API_DECL void ev_prepare_start (EV_P_ ev_prepare *w) EV_NOEXCEPT;
|
|
806
|
+
EV_API_DECL void ev_prepare_stop (EV_P_ ev_prepare *w) EV_NOEXCEPT;
|
|
801
807
|
#endif
|
|
802
808
|
|
|
803
809
|
#if EV_CHECK_ENABLE
|
|
804
|
-
EV_API_DECL void ev_check_start (EV_P_ ev_check *w)
|
|
805
|
-
EV_API_DECL void ev_check_stop (EV_P_ ev_check *w)
|
|
810
|
+
EV_API_DECL void ev_check_start (EV_P_ ev_check *w) EV_NOEXCEPT;
|
|
811
|
+
EV_API_DECL void ev_check_stop (EV_P_ ev_check *w) EV_NOEXCEPT;
|
|
806
812
|
#endif
|
|
807
813
|
|
|
808
814
|
# if EV_FORK_ENABLE
|
|
809
|
-
EV_API_DECL void ev_fork_start (EV_P_ ev_fork *w)
|
|
810
|
-
EV_API_DECL void ev_fork_stop (EV_P_ ev_fork *w)
|
|
815
|
+
EV_API_DECL void ev_fork_start (EV_P_ ev_fork *w) EV_NOEXCEPT;
|
|
816
|
+
EV_API_DECL void ev_fork_stop (EV_P_ ev_fork *w) EV_NOEXCEPT;
|
|
811
817
|
# endif
|
|
812
818
|
|
|
813
819
|
# if EV_CLEANUP_ENABLE
|
|
814
|
-
EV_API_DECL void ev_cleanup_start (EV_P_ ev_cleanup *w)
|
|
815
|
-
EV_API_DECL void ev_cleanup_stop (EV_P_ ev_cleanup *w)
|
|
820
|
+
EV_API_DECL void ev_cleanup_start (EV_P_ ev_cleanup *w) EV_NOEXCEPT;
|
|
821
|
+
EV_API_DECL void ev_cleanup_stop (EV_P_ ev_cleanup *w) EV_NOEXCEPT;
|
|
816
822
|
# endif
|
|
817
823
|
|
|
818
824
|
# if EV_EMBED_ENABLE
|
|
819
825
|
/* only supported when loop to be embedded is in fact embeddable */
|
|
820
|
-
EV_API_DECL void ev_embed_start (EV_P_ ev_embed *w)
|
|
821
|
-
EV_API_DECL void ev_embed_stop (EV_P_ ev_embed *w)
|
|
822
|
-
EV_API_DECL void ev_embed_sweep (EV_P_ ev_embed *w)
|
|
826
|
+
EV_API_DECL void ev_embed_start (EV_P_ ev_embed *w) EV_NOEXCEPT;
|
|
827
|
+
EV_API_DECL void ev_embed_stop (EV_P_ ev_embed *w) EV_NOEXCEPT;
|
|
828
|
+
EV_API_DECL void ev_embed_sweep (EV_P_ ev_embed *w) EV_NOEXCEPT;
|
|
823
829
|
# endif
|
|
824
830
|
|
|
825
831
|
# if EV_ASYNC_ENABLE
|
|
826
|
-
EV_API_DECL void ev_async_start (EV_P_ ev_async *w)
|
|
827
|
-
EV_API_DECL void ev_async_stop (EV_P_ ev_async *w)
|
|
828
|
-
EV_API_DECL void ev_async_send (EV_P_ ev_async *w)
|
|
832
|
+
EV_API_DECL void ev_async_start (EV_P_ ev_async *w) EV_NOEXCEPT;
|
|
833
|
+
EV_API_DECL void ev_async_stop (EV_P_ ev_async *w) EV_NOEXCEPT;
|
|
834
|
+
EV_API_DECL void ev_async_send (EV_P_ ev_async *w) EV_NOEXCEPT;
|
|
829
835
|
# endif
|
|
830
836
|
|
|
831
837
|
#if EV_COMPAT3
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/*
|
|
2
2
|
* libev epoll fd activity backend
|
|
3
3
|
*
|
|
4
|
-
* Copyright (c) 2007,2008,2009,2010,2011 Marc Alexander Lehmann <libev@schmorp.de>
|
|
4
|
+
* Copyright (c) 2007,2008,2009,2010,2011,2016,2017,2019 Marc Alexander Lehmann <libev@schmorp.de>
|
|
5
5
|
* All rights reserved.
|
|
6
6
|
*
|
|
7
7
|
* Redistribution and use in source and binary forms, with or without modifica-
|
|
@@ -93,10 +93,10 @@ epoll_modify (EV_P_ int fd, int oev, int nev)
|
|
|
93
93
|
ev.events = (nev & EV_READ ? EPOLLIN : 0)
|
|
94
94
|
| (nev & EV_WRITE ? EPOLLOUT : 0);
|
|
95
95
|
|
|
96
|
-
if (
|
|
96
|
+
if (ecb_expect_true (!epoll_ctl (backend_fd, oev && oldmask != nev ? EPOLL_CTL_MOD : EPOLL_CTL_ADD, fd, &ev)))
|
|
97
97
|
return;
|
|
98
98
|
|
|
99
|
-
if (
|
|
99
|
+
if (ecb_expect_true (errno == ENOENT))
|
|
100
100
|
{
|
|
101
101
|
/* if ENOENT then the fd went away, so try to do the right thing */
|
|
102
102
|
if (!nev)
|
|
@@ -105,7 +105,7 @@ epoll_modify (EV_P_ int fd, int oev, int nev)
|
|
|
105
105
|
if (!epoll_ctl (backend_fd, EPOLL_CTL_ADD, fd, &ev))
|
|
106
106
|
return;
|
|
107
107
|
}
|
|
108
|
-
else if (
|
|
108
|
+
else if (ecb_expect_true (errno == EEXIST))
|
|
109
109
|
{
|
|
110
110
|
/* EEXIST means we ignored a previous DEL, but the fd is still active */
|
|
111
111
|
/* if the kernel mask is the same as the new mask, we assume it hasn't changed */
|
|
@@ -115,7 +115,7 @@ epoll_modify (EV_P_ int fd, int oev, int nev)
|
|
|
115
115
|
if (!epoll_ctl (backend_fd, EPOLL_CTL_MOD, fd, &ev))
|
|
116
116
|
return;
|
|
117
117
|
}
|
|
118
|
-
else if (
|
|
118
|
+
else if (ecb_expect_true (errno == EPERM))
|
|
119
119
|
{
|
|
120
120
|
/* EPERM means the fd is always ready, but epoll is too snobbish */
|
|
121
121
|
/* to handle it, unlike select or poll. */
|
|
@@ -124,12 +124,14 @@ epoll_modify (EV_P_ int fd, int oev, int nev)
|
|
|
124
124
|
/* add fd to epoll_eperms, if not already inside */
|
|
125
125
|
if (!(oldmask & EV_EMASK_EPERM))
|
|
126
126
|
{
|
|
127
|
-
array_needsize (int, epoll_eperms, epoll_epermmax, epoll_epermcnt + 1,
|
|
127
|
+
array_needsize (int, epoll_eperms, epoll_epermmax, epoll_epermcnt + 1, array_needsize_noinit);
|
|
128
128
|
epoll_eperms [epoll_epermcnt++] = fd;
|
|
129
129
|
}
|
|
130
130
|
|
|
131
131
|
return;
|
|
132
132
|
}
|
|
133
|
+
else
|
|
134
|
+
assert (("libev: I/O watcher with invalid fd found in epoll_ctl", errno != EBADF && errno != ELOOP && errno != EINVAL));
|
|
133
135
|
|
|
134
136
|
fd_kill (EV_A_ fd);
|
|
135
137
|
|
|
@@ -144,16 +146,16 @@ epoll_poll (EV_P_ ev_tstamp timeout)
|
|
|
144
146
|
int i;
|
|
145
147
|
int eventcnt;
|
|
146
148
|
|
|
147
|
-
if (
|
|
148
|
-
timeout = 0
|
|
149
|
+
if (ecb_expect_false (epoll_epermcnt))
|
|
150
|
+
timeout = EV_TS_CONST (0.);
|
|
149
151
|
|
|
150
152
|
/* epoll wait times cannot be larger than (LONG_MAX - 999UL) / HZ msecs, which is below */
|
|
151
153
|
/* the default libev max wait time, however. */
|
|
152
154
|
EV_RELEASE_CB;
|
|
153
|
-
eventcnt = epoll_wait (backend_fd, epoll_events, epoll_eventmax, timeout
|
|
155
|
+
eventcnt = epoll_wait (backend_fd, epoll_events, epoll_eventmax, EV_TS_TO_MSEC (timeout));
|
|
154
156
|
EV_ACQUIRE_CB;
|
|
155
157
|
|
|
156
|
-
if (
|
|
158
|
+
if (ecb_expect_false (eventcnt < 0))
|
|
157
159
|
{
|
|
158
160
|
if (errno != EINTR)
|
|
159
161
|
ev_syserr ("(libev) epoll_wait");
|
|
@@ -176,14 +178,14 @@ epoll_poll (EV_P_ ev_tstamp timeout)
|
|
|
176
178
|
* other spurious notifications will be found by epoll_ctl, below
|
|
177
179
|
* we assume that fd is always in range, as we never shrink the anfds array
|
|
178
180
|
*/
|
|
179
|
-
if (
|
|
181
|
+
if (ecb_expect_false ((uint32_t)anfds [fd].egen != (uint32_t)(ev->data.u64 >> 32)))
|
|
180
182
|
{
|
|
181
183
|
/* recreate kernel state */
|
|
182
184
|
postfork |= 2;
|
|
183
185
|
continue;
|
|
184
186
|
}
|
|
185
187
|
|
|
186
|
-
if (
|
|
188
|
+
if (ecb_expect_false (got & ~want))
|
|
187
189
|
{
|
|
188
190
|
anfds [fd].emask = want;
|
|
189
191
|
|
|
@@ -195,6 +197,8 @@ epoll_poll (EV_P_ ev_tstamp timeout)
|
|
|
195
197
|
* above with the gencounter check (== our fd is not the event fd), and
|
|
196
198
|
* partially here, when epoll_ctl returns an error (== a child has the fd
|
|
197
199
|
* but we closed it).
|
|
200
|
+
* note: for events such as POLLHUP, where we can't know whether it refers
|
|
201
|
+
* to EV_READ or EV_WRITE, we might issue redundant EPOLL_CTL_MOD calls.
|
|
198
202
|
*/
|
|
199
203
|
ev->events = (want & EV_READ ? EPOLLIN : 0)
|
|
200
204
|
| (want & EV_WRITE ? EPOLLOUT : 0);
|
|
@@ -212,7 +216,7 @@ epoll_poll (EV_P_ ev_tstamp timeout)
|
|
|
212
216
|
}
|
|
213
217
|
|
|
214
218
|
/* if the receive array was full, increase its size */
|
|
215
|
-
if (
|
|
219
|
+
if (ecb_expect_false (eventcnt == epoll_eventmax))
|
|
216
220
|
{
|
|
217
221
|
ev_free (epoll_events);
|
|
218
222
|
epoll_eventmax = array_nextsize (sizeof (struct epoll_event), epoll_eventmax, epoll_eventmax + 1);
|
|
@@ -235,23 +239,34 @@ epoll_poll (EV_P_ ev_tstamp timeout)
|
|
|
235
239
|
}
|
|
236
240
|
}
|
|
237
241
|
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
epoll_init (EV_P_ int flags)
|
|
242
|
+
static int
|
|
243
|
+
epoll_epoll_create (void)
|
|
241
244
|
{
|
|
242
|
-
|
|
243
|
-
backend_fd = epoll_create1 (EPOLL_CLOEXEC);
|
|
245
|
+
int fd;
|
|
244
246
|
|
|
245
|
-
|
|
247
|
+
#if defined EPOLL_CLOEXEC && !defined __ANDROID__
|
|
248
|
+
fd = epoll_create1 (EPOLL_CLOEXEC);
|
|
249
|
+
|
|
250
|
+
if (fd < 0 && (errno == EINVAL || errno == ENOSYS))
|
|
246
251
|
#endif
|
|
247
|
-
|
|
252
|
+
{
|
|
253
|
+
fd = epoll_create (256);
|
|
248
254
|
|
|
249
|
-
|
|
250
|
-
|
|
255
|
+
if (fd >= 0)
|
|
256
|
+
fcntl (fd, F_SETFD, FD_CLOEXEC);
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
return fd;
|
|
260
|
+
}
|
|
251
261
|
|
|
252
|
-
|
|
262
|
+
inline_size
|
|
263
|
+
int
|
|
264
|
+
epoll_init (EV_P_ int flags)
|
|
265
|
+
{
|
|
266
|
+
if ((backend_fd = epoll_epoll_create ()) < 0)
|
|
267
|
+
return 0;
|
|
253
268
|
|
|
254
|
-
backend_mintime = 1e-3; /* epoll does sometimes return early, this is just to avoid the worst */
|
|
269
|
+
backend_mintime = EV_TS_CONST (1e-3); /* epoll does sometimes return early, this is just to avoid the worst */
|
|
255
270
|
backend_modify = epoll_modify;
|
|
256
271
|
backend_poll = epoll_poll;
|
|
257
272
|
|
|
@@ -269,17 +284,15 @@ epoll_destroy (EV_P)
|
|
|
269
284
|
array_free (epoll_eperm, EMPTY);
|
|
270
285
|
}
|
|
271
286
|
|
|
272
|
-
|
|
273
|
-
void
|
|
287
|
+
ecb_cold
|
|
288
|
+
static void
|
|
274
289
|
epoll_fork (EV_P)
|
|
275
290
|
{
|
|
276
291
|
close (backend_fd);
|
|
277
292
|
|
|
278
|
-
while ((backend_fd =
|
|
293
|
+
while ((backend_fd = epoll_epoll_create ()) < 0)
|
|
279
294
|
ev_syserr ("(libev) epoll_create");
|
|
280
295
|
|
|
281
|
-
fcntl (backend_fd, F_SETFD, FD_CLOEXEC);
|
|
282
|
-
|
|
283
296
|
fd_rearm_all (EV_A);
|
|
284
297
|
}
|
|
285
298
|
|