passenger 6.0.23 → 6.0.24
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.
Potentially problematic release.
This version of passenger might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/CHANGELOG +26 -1
- data/Rakefile +7 -3
- data/bin/passenger-install-apache2-module +5 -0
- data/bin/passenger-install-nginx-module +17 -2
- data/build/apache2.rb +1 -1
- data/build/basics.rb +10 -4
- data/build/cxx_tests.rb +18 -7
- data/build/support/cxx_dependency_map.rb +40 -6
- data/build/test_basics.rb +4 -12
- data/package.json +1 -1
- data/passenger.gemspec +1 -1
- data/src/agent/Core/ApplicationPool/Group/InitializationAndShutdown.cpp +8 -0
- data/src/agent/Core/ApplicationPool/Group/InternalUtils.cpp +10 -2
- data/src/agent/Core/ApplicationPool/Group/LifetimeAndBasics.cpp +8 -0
- data/src/agent/Core/ApplicationPool/Group/Miscellaneous.cpp +9 -0
- data/src/agent/Core/ApplicationPool/Group/OutOfBandWork.cpp +9 -0
- data/src/agent/Core/ApplicationPool/Group/ProcessListManagement.cpp +63 -50
- data/src/agent/Core/ApplicationPool/Group/SessionManagement.cpp +19 -9
- data/src/agent/Core/ApplicationPool/Group/SpawningAndRestarting.cpp +8 -0
- data/src/agent/Core/ApplicationPool/Group/StateInspection.cpp +8 -0
- data/src/agent/Core/ApplicationPool/Group/Verification.cpp +8 -0
- data/src/agent/Core/ApplicationPool/Group.h +15 -5
- data/src/agent/Core/ApplicationPool/Pool/AnalyticsCollection.cpp +5 -0
- data/src/agent/Core/ApplicationPool/Pool/GarbageCollection.cpp +5 -0
- data/src/agent/Core/ApplicationPool/Pool/GeneralUtils.cpp +5 -0
- data/src/agent/Core/ApplicationPool/Pool/GroupUtils.cpp +5 -0
- data/src/agent/Core/ApplicationPool/Pool/InitializationAndShutdown.cpp +5 -0
- data/src/agent/Core/ApplicationPool/Pool/Miscellaneous.cpp +5 -0
- data/src/agent/Core/ApplicationPool/Pool/ProcessUtils.cpp +5 -0
- data/src/agent/Core/ApplicationPool/Pool/StateInspection.cpp +11 -1
- data/src/agent/Core/ApplicationPool/Pool.h +0 -2
- data/src/agent/Core/ApplicationPool/Process.h +22 -6
- data/src/agent/Core/ApplicationPool/Session.h +6 -1
- data/src/agent/Core/Config.h +7 -3
- data/src/agent/Core/Controller/Config.h +1 -1
- data/src/agent/Core/CoreMain.cpp +10 -17
- data/src/agent/Core/SpawningKit/Handshake/Prepare.h +1 -53
- data/src/agent/Core/SpawningKit/Handshake/Session.h +3 -0
- data/src/agent/Core/SpawningKit/Handshake/WorkDir.h +5 -2
- data/src/agent/Core/SpawningKit/SmartSpawner.h +6 -2
- data/src/agent/Core/SpawningKit/Spawner.h +4 -0
- data/src/agent/Shared/Fundamentals/AbortHandler.cpp +88 -9
- data/src/agent/Shared/Fundamentals/AbortHandler.h +2 -0
- data/src/agent/Shared/Fundamentals/Initialization.cpp +9 -3
- data/src/agent/Shared/Fundamentals/Initialization.h +3 -3
- data/src/agent/SpawnEnvSetupper/SpawnEnvSetupperMain.cpp +6 -7
- data/src/agent/Watchdog/Config.h +1 -1
- data/src/agent/Watchdog/WatchdogMain.cpp +4 -7
- data/src/apache2_module/ConfigGeneral/ManifestGeneration.h +5 -3
- data/src/apache2_module/DirConfig/AutoGeneratedStruct.h +3 -0
- data/src/apache2_module/DirConfig/AutoGeneratedStruct.h.cxxcodebuilder +3 -0
- data/src/apache2_module/ServerConfig/AutoGeneratedStruct.h +2 -1
- data/src/apache2_module/ServerConfig/AutoGeneratedStruct.h.cxxcodebuilder +2 -1
- data/src/cxx_supportlib/Constants.h +1 -1
- data/src/cxx_supportlib/DataStructures/StringMap.h +0 -1
- data/src/cxx_supportlib/FileTools/PathManip.cpp +1 -1
- data/src/cxx_supportlib/SafeLibev.h +1 -3
- data/src/cxx_supportlib/ServerKit/Hooks.h +2 -2
- data/src/cxx_supportlib/ServerKit/HttpHeaderParser.h +0 -1
- data/src/cxx_supportlib/ServerKit/HttpServer.h +15 -10
- data/src/cxx_supportlib/ServerKit/Server.h +0 -6
- data/src/cxx_supportlib/Utils/AsyncSignalSafeUtils.h +2 -0
- data/src/cxx_supportlib/Utils/SpeedMeter.h +0 -3
- data/src/cxx_supportlib/oxt/implementation.cpp +11 -0
- data/src/cxx_supportlib/oxt/system_calls.cpp +10 -3
- data/src/cxx_supportlib/oxt/thread.hpp +1 -1
- 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/ruby_supportlib/phusion_passenger/config/compile_nginx_engine_command.rb +6 -2
- data/src/ruby_supportlib/phusion_passenger/config/install_standalone_runtime_command.rb +10 -0
- data/src/ruby_supportlib/phusion_passenger/config/nginx_engine_compiler.rb +12 -4
- data/src/ruby_supportlib/phusion_passenger/platform_info/compiler.rb +32 -5
- data/src/ruby_supportlib/phusion_passenger/standalone/start_command.rb +0 -4
- data/src/ruby_supportlib/phusion_passenger/utils/json.rb +5 -1
- data/src/ruby_supportlib/phusion_passenger/utils.rb +5 -15
- data/src/ruby_supportlib/phusion_passenger.rb +5 -5
- metadata +21 -8
@@ -83,7 +83,7 @@
|
|
83
83
|
#define PASSENGER_API_VERSION_MAJOR 0
|
84
84
|
#define PASSENGER_API_VERSION_MINOR 3
|
85
85
|
#define PASSENGER_DEFAULT_USER "nobody"
|
86
|
-
#define PASSENGER_VERSION "6.0.
|
86
|
+
#define PASSENGER_VERSION "6.0.24"
|
87
87
|
#define POOL_HELPER_THREAD_STACK_SIZE 262144
|
88
88
|
#define PROCESS_SHUTDOWN_TIMEOUT 60
|
89
89
|
#define PROCESS_SHUTDOWN_TIMEOUT_DISPLAY "1 minute"
|
@@ -28,10 +28,8 @@
|
|
28
28
|
|
29
29
|
#include <ev++.h>
|
30
30
|
#include <vector>
|
31
|
-
#include <list>
|
32
31
|
#include <memory>
|
33
32
|
#include <boost/thread.hpp>
|
34
|
-
#include <boost/scoped_ptr.hpp>
|
35
33
|
#include <boost/shared_ptr.hpp>
|
36
34
|
#include <boost/function.hpp>
|
37
35
|
#include <boost/bind/bind.hpp>
|
@@ -82,7 +80,7 @@ private:
|
|
82
80
|
}
|
83
81
|
|
84
82
|
static void timeoutHandler(int revents, void *arg) {
|
85
|
-
|
83
|
+
std::unique_ptr<Callback> callback((Callback *) arg);
|
86
84
|
(*callback)();
|
87
85
|
}
|
88
86
|
|
@@ -61,13 +61,13 @@ struct RefGuard {
|
|
61
61
|
file(_file),
|
62
62
|
line(_line)
|
63
63
|
{
|
64
|
-
if (_hooks !=
|
64
|
+
if (_hooks != nullptr && _hooks->impl != nullptr) {
|
65
65
|
_hooks->impl->hook_ref(_hooks, _source, _file, _line);
|
66
66
|
}
|
67
67
|
}
|
68
68
|
|
69
69
|
~RefGuard() {
|
70
|
-
if (hooks !=
|
70
|
+
if (hooks != nullptr && hooks->impl != nullptr) {
|
71
71
|
hooks->impl->hook_unref(hooks, source, file, line);
|
72
72
|
}
|
73
73
|
}
|
@@ -32,7 +32,6 @@
|
|
32
32
|
#include <oxt/macros.hpp>
|
33
33
|
#include <algorithm>
|
34
34
|
#include <cstdio>
|
35
|
-
#include <cmath>
|
36
35
|
#include <cassert>
|
37
36
|
#include <pthread.h>
|
38
37
|
#include <LoggingKit/LoggingKit.h>
|
@@ -401,8 +400,9 @@ private:
|
|
401
400
|
if (!req->bodyChannel.acceptingInput()) {
|
402
401
|
if (req->bodyChannel.mayAcceptInputLater()) {
|
403
402
|
client->input.stop();
|
404
|
-
req->bodyChannel.consumedCallback =
|
405
|
-
onRequestBodyChannelConsumed;
|
403
|
+
req->bodyChannel.consumedCallback = [](Channel *channel, unsigned int size) {
|
404
|
+
onRequestBodyChannelConsumed(channel, size);
|
405
|
+
};
|
406
406
|
return Channel::Result(0, false);
|
407
407
|
} else {
|
408
408
|
return Channel::Result(0, true);
|
@@ -437,8 +437,9 @@ private:
|
|
437
437
|
return Channel::Result(remaining, false);
|
438
438
|
} else if (req->bodyChannel.mayAcceptInputLater()) {
|
439
439
|
client->input.stop();
|
440
|
-
req->bodyChannel.consumedCallback =
|
441
|
-
onRequestBodyChannelConsumed;
|
440
|
+
req->bodyChannel.consumedCallback = [](Channel *channel, unsigned int size) {
|
441
|
+
onRequestBodyChannelConsumed(channel, size);
|
442
|
+
};
|
442
443
|
return Channel::Result(remaining, false);
|
443
444
|
} else {
|
444
445
|
return Channel::Result(remaining, true);
|
@@ -468,8 +469,9 @@ private:
|
|
468
469
|
if (!req->bodyChannel.acceptingInput()) {
|
469
470
|
if (req->bodyChannel.mayAcceptInputLater()) {
|
470
471
|
client->input.stop();
|
471
|
-
req->bodyChannel.consumedCallback =
|
472
|
-
onRequestBodyChannelConsumed;
|
472
|
+
req->bodyChannel.consumedCallback = [](Channel *channel, unsigned int size) {
|
473
|
+
onRequestBodyChannelConsumed(channel, size);
|
474
|
+
};
|
473
475
|
return Channel::Result(0, false);
|
474
476
|
} else {
|
475
477
|
return Channel::Result(0, true);
|
@@ -510,7 +512,9 @@ private:
|
|
510
512
|
req->bodyChannel.feed(MemoryKit::mbuf());
|
511
513
|
} else if (req->bodyChannel.mayAcceptInputLater()) {
|
512
514
|
client->input.stop();
|
513
|
-
req->bodyChannel.consumedCallback =
|
515
|
+
req->bodyChannel.consumedCallback = [](Channel *channel, unsigned int size) {
|
516
|
+
onRequestBodyChannelConsumed(channel, size);
|
517
|
+
};
|
514
518
|
}
|
515
519
|
}
|
516
520
|
}
|
@@ -607,8 +611,9 @@ private:
|
|
607
611
|
} else if (req->bodyChannel.mayAcceptInputLater()) {
|
608
612
|
SKC_TRACE(client, 3, "BodyChannel currently busy; will feed "
|
609
613
|
"error to bodyChannel later");
|
610
|
-
req->bodyChannel.consumedCallback =
|
611
|
-
onRequestBodyChannelConsumed_onBodyError;
|
614
|
+
req->bodyChannel.consumedCallback = [](Channel *channel, unsigned int size) {
|
615
|
+
onRequestBodyChannelConsumed_onBodyError(channel, size);
|
616
|
+
};
|
612
617
|
req->bodyError = errcode;
|
613
618
|
return Channel::Result(-1, false);
|
614
619
|
} else {
|
@@ -189,6 +189,8 @@ limitedStrerror(int e, const char *defaultResult = "Unknown error") {
|
|
189
189
|
return "Operation not permitted";
|
190
190
|
case ETXTBSY:
|
191
191
|
return "Text file busy";
|
192
|
+
case ESRCH:
|
193
|
+
return "Process does not exist";
|
192
194
|
default:
|
193
195
|
return defaultResult;
|
194
196
|
}
|
@@ -26,6 +26,7 @@
|
|
26
26
|
#include <boost/thread/mutex.hpp>
|
27
27
|
#include <boost/shared_ptr.hpp>
|
28
28
|
#include <boost/make_shared.hpp>
|
29
|
+
#include <pthread.h>
|
29
30
|
#include "tracable_exception.hpp"
|
30
31
|
#include "backtrace.hpp"
|
31
32
|
#include "initialize.hpp"
|
@@ -394,9 +395,19 @@ thread::make_thread_name(const string &given_name) {
|
|
394
395
|
}
|
395
396
|
}
|
396
397
|
|
398
|
+
static void
|
399
|
+
set_native_thread_name(const string &name) {
|
400
|
+
#if defined(__linux__)
|
401
|
+
pthread_setname_np(pthread_self(), name.c_str());
|
402
|
+
#elif defined(__APPLE__) || defined(__FreeBSD__)
|
403
|
+
pthread_setname_np(name.c_str());
|
404
|
+
#endif
|
405
|
+
}
|
406
|
+
|
397
407
|
void
|
398
408
|
thread::thread_main(const boost::function<void ()> func, thread_local_context_ptr ctx) {
|
399
409
|
set_thread_local_context(ctx);
|
410
|
+
set_native_thread_name(ctx->thread_name);
|
400
411
|
|
401
412
|
if (OXT_LIKELY(global_context != NULL)) {
|
402
413
|
boost::lock_guard<boost::mutex> l(global_context->thread_registration_mutex);
|
@@ -65,9 +65,16 @@ oxt::setup_syscall_interruption_support() {
|
|
65
65
|
do {
|
66
66
|
ret = sigaction(INTERRUPTION_SIGNAL, &action, NULL);
|
67
67
|
} while (ret == -1 && errno == EINTR);
|
68
|
-
|
69
|
-
|
70
|
-
|
68
|
+
#if !defined(__linux__)
|
69
|
+
// On Linux, siginterrupt() is deprecated. System call interruption works
|
70
|
+
// by merely calling sigaction() with sa_flags without SA_RESTART.
|
71
|
+
// Unfortunately, this does not seem to be the case on other operationg systems.
|
72
|
+
// For example, on macOS, we need to call *both* sigaction() without SA_RESTART,
|
73
|
+
// *and* siginterrupt().
|
74
|
+
do {
|
75
|
+
ret = siginterrupt(INTERRUPTION_SIGNAL, 1);
|
76
|
+
} while (ret == -1 && errno == EINTR);
|
77
|
+
#endif
|
71
78
|
}
|
72
79
|
|
73
80
|
void
|
@@ -107,16 +107,42 @@ public:
|
|
107
107
|
CompletionToken token_;
|
108
108
|
};
|
109
109
|
|
110
|
-
///
|
111
|
-
/// arguments should be combined into a single tuple
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
110
|
+
/// A function object type that adapts a @ref completion_token to specify that
|
111
|
+
/// the completion handler arguments should be combined into a single tuple
|
112
|
+
/// argument.
|
113
|
+
/**
|
114
|
+
* May also be used directly as a completion token, in which case it adapts the
|
115
|
+
* asynchronous operation's default completion token (or boost::asio::deferred
|
116
|
+
* if no default is available).
|
117
|
+
*/
|
118
|
+
struct partial_as_tuple
|
116
119
|
{
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
+
/// Default constructor.
|
121
|
+
constexpr partial_as_tuple()
|
122
|
+
{
|
123
|
+
}
|
124
|
+
|
125
|
+
/// Adapt a @ref completion_token to specify that the completion handler
|
126
|
+
/// arguments should be combined into a single tuple argument.
|
127
|
+
template <typename CompletionToken>
|
128
|
+
BOOST_ASIO_NODISCARD inline
|
129
|
+
constexpr as_tuple_t<decay_t<CompletionToken>>
|
130
|
+
operator()(CompletionToken&& completion_token) const
|
131
|
+
{
|
132
|
+
return as_tuple_t<decay_t<CompletionToken>>(
|
133
|
+
static_cast<CompletionToken&&>(completion_token));
|
134
|
+
}
|
135
|
+
};
|
136
|
+
|
137
|
+
/// A function object that adapts a @ref completion_token to specify that the
|
138
|
+
/// completion handler arguments should be combined into a single tuple
|
139
|
+
/// argument.
|
140
|
+
/**
|
141
|
+
* May also be used directly as a completion token, in which case it adapts the
|
142
|
+
* asynchronous operation's default completion token (or boost::asio::deferred
|
143
|
+
* if no default is available).
|
144
|
+
*/
|
145
|
+
BOOST_ASIO_INLINE_VARIABLE constexpr partial_as_tuple as_tuple;
|
120
146
|
|
121
147
|
} // namespace asio
|
122
148
|
} // namespace boost
|
@@ -50,9 +50,10 @@ struct has_immediate_executor_type<T,
|
|
50
50
|
template <typename E, typename = void, typename = void>
|
51
51
|
struct default_immediate_executor
|
52
52
|
{
|
53
|
-
typedef require_result_t<E, execution::blocking_t::never_t
|
53
|
+
typedef decay_t<require_result_t<E, execution::blocking_t::never_t>> type;
|
54
54
|
|
55
|
-
static
|
55
|
+
static auto get(const E& e) noexcept
|
56
|
+
-> decltype(boost::asio::require(e, execution::blocking.never))
|
56
57
|
{
|
57
58
|
return boost::asio::require(e, execution::blocking.never);
|
58
59
|
}
|
@@ -24,7 +24,7 @@ namespace asio {
|
|
24
24
|
|
25
25
|
/// Used to generically specialise associators for a type.
|
26
26
|
template <template <typename, typename> class Associator,
|
27
|
-
typename T, typename DefaultCandidate>
|
27
|
+
typename T, typename DefaultCandidate, typename _ = void>
|
28
28
|
struct associator
|
29
29
|
{
|
30
30
|
};
|
@@ -22,9 +22,6 @@
|
|
22
22
|
|
23
23
|
namespace boost {
|
24
24
|
namespace asio {
|
25
|
-
|
26
|
-
#if defined(BOOST_ASIO_HAS_CONCEPTS)
|
27
|
-
|
28
25
|
namespace detail {
|
29
26
|
|
30
27
|
template <typename T>
|
@@ -71,6 +68,12 @@ struct are_completion_signatures : false_type
|
|
71
68
|
{
|
72
69
|
};
|
73
70
|
|
71
|
+
template <>
|
72
|
+
struct are_completion_signatures<>
|
73
|
+
: true_type
|
74
|
+
{
|
75
|
+
};
|
76
|
+
|
74
77
|
template <typename T0>
|
75
78
|
struct are_completion_signatures<T0>
|
76
79
|
: is_completion_signature<T0>
|
@@ -85,6 +88,12 @@ struct are_completion_signatures<T0, TN...>
|
|
85
88
|
{
|
86
89
|
};
|
87
90
|
|
91
|
+
} // namespace detail
|
92
|
+
|
93
|
+
#if defined(BOOST_ASIO_HAS_CONCEPTS)
|
94
|
+
|
95
|
+
namespace detail {
|
96
|
+
|
88
97
|
template <typename T, typename... Args>
|
89
98
|
BOOST_ASIO_CONCEPT callable_with = requires(T&& t, Args&&... args)
|
90
99
|
{
|
@@ -607,14 +616,36 @@ template <typename CompletionToken,
|
|
607
616
|
typename Initiation, typename... Args>
|
608
617
|
inline auto async_initiate(Initiation&& initiation,
|
609
618
|
type_identity_t<CompletionToken>& token, Args&&... args)
|
610
|
-
->
|
611
|
-
|
612
|
-
|
613
|
-
|
614
|
-
|
615
|
-
|
616
|
-
|
617
|
-
|
619
|
+
-> decltype(enable_if_t<
|
620
|
+
enable_if_t<
|
621
|
+
detail::are_completion_signatures<Signatures...>::value,
|
622
|
+
detail::async_result_has_initiate_memfn<
|
623
|
+
CompletionToken, Signatures...>>::value,
|
624
|
+
async_result<decay_t<CompletionToken>, Signatures...>>::initiate(
|
625
|
+
static_cast<Initiation&&>(initiation),
|
626
|
+
static_cast<CompletionToken&&>(token),
|
627
|
+
static_cast<Args&&>(args)...))
|
628
|
+
{
|
629
|
+
return async_result<decay_t<CompletionToken>, Signatures...>::initiate(
|
630
|
+
static_cast<Initiation&&>(initiation),
|
631
|
+
static_cast<CompletionToken&&>(token),
|
632
|
+
static_cast<Args&&>(args)...);
|
633
|
+
}
|
634
|
+
|
635
|
+
template <
|
636
|
+
BOOST_ASIO_COMPLETION_SIGNATURE... Signatures,
|
637
|
+
typename CompletionToken, typename Initiation, typename... Args>
|
638
|
+
inline auto async_initiate(Initiation&& initiation,
|
639
|
+
CompletionToken&& token, Args&&... args)
|
640
|
+
-> decltype(enable_if_t<
|
641
|
+
enable_if_t<
|
642
|
+
detail::are_completion_signatures<Signatures...>::value,
|
643
|
+
detail::async_result_has_initiate_memfn<
|
644
|
+
CompletionToken, Signatures...>>::value,
|
645
|
+
async_result<decay_t<CompletionToken>, Signatures...>>::initiate(
|
646
|
+
static_cast<Initiation&&>(initiation),
|
647
|
+
static_cast<CompletionToken&&>(token),
|
648
|
+
static_cast<Args&&>(args)...))
|
618
649
|
{
|
619
650
|
return async_result<decay_t<CompletionToken>, Signatures...>::initiate(
|
620
651
|
static_cast<Initiation&&>(initiation),
|
@@ -625,10 +656,13 @@ inline auto async_initiate(Initiation&& initiation,
|
|
625
656
|
template <typename CompletionToken,
|
626
657
|
BOOST_ASIO_COMPLETION_SIGNATURE... Signatures,
|
627
658
|
typename Initiation, typename... Args>
|
628
|
-
inline
|
629
|
-
!
|
630
|
-
|
631
|
-
|
659
|
+
inline typename enable_if_t<
|
660
|
+
!enable_if_t<
|
661
|
+
detail::are_completion_signatures<Signatures...>::value,
|
662
|
+
detail::async_result_has_initiate_memfn<
|
663
|
+
CompletionToken, Signatures...>>::value,
|
664
|
+
async_result<decay_t<CompletionToken>, Signatures...>
|
665
|
+
>::return_type
|
632
666
|
async_initiate(Initiation&& initiation,
|
633
667
|
type_identity_t<CompletionToken>& token, Args&&... args)
|
634
668
|
{
|
@@ -644,6 +678,29 @@ async_initiate(Initiation&& initiation,
|
|
644
678
|
return completion.result.get();
|
645
679
|
}
|
646
680
|
|
681
|
+
template <BOOST_ASIO_COMPLETION_SIGNATURE... Signatures,
|
682
|
+
typename CompletionToken, typename Initiation, typename... Args>
|
683
|
+
inline typename enable_if_t<
|
684
|
+
!enable_if_t<
|
685
|
+
detail::are_completion_signatures<Signatures...>::value,
|
686
|
+
detail::async_result_has_initiate_memfn<
|
687
|
+
CompletionToken, Signatures...>>::value,
|
688
|
+
async_result<decay_t<CompletionToken>, Signatures...>
|
689
|
+
>::return_type
|
690
|
+
async_initiate(Initiation&& initiation, CompletionToken&& token, Args&&... args)
|
691
|
+
{
|
692
|
+
async_completion<CompletionToken, Signatures...> completion(token);
|
693
|
+
|
694
|
+
static_cast<Initiation&&>(initiation)(
|
695
|
+
static_cast<
|
696
|
+
typename async_result<decay_t<CompletionToken>,
|
697
|
+
Signatures...>::completion_handler_type&&>(
|
698
|
+
completion.completion_handler),
|
699
|
+
static_cast<Args&&>(args)...);
|
700
|
+
|
701
|
+
return completion.result.get();
|
702
|
+
}
|
703
|
+
|
647
704
|
#endif // defined(GENERATING_DOCUMENTATION)
|
648
705
|
|
649
706
|
#if defined(BOOST_ASIO_HAS_CONCEPTS)
|
@@ -883,62 +940,11 @@ template <typename T, typename... Args>
|
|
883
940
|
using completion_signature_of_t =
|
884
941
|
typename completion_signature_of<T, Args...>::type;
|
885
942
|
|
886
|
-
namespace detail {
|
887
|
-
|
888
|
-
template <typename T, typename = void>
|
889
|
-
struct default_completion_token_impl
|
890
|
-
{
|
891
|
-
typedef void type;
|
892
|
-
};
|
893
|
-
|
894
|
-
template <typename T>
|
895
|
-
struct default_completion_token_impl<T,
|
896
|
-
void_t<typename T::default_completion_token_type>
|
897
|
-
>
|
898
|
-
{
|
899
|
-
typedef typename T::default_completion_token_type type;
|
900
|
-
};
|
901
|
-
|
902
|
-
} // namespace detail
|
903
|
-
|
904
|
-
#if defined(GENERATING_DOCUMENTATION)
|
905
|
-
|
906
|
-
/// Traits type used to determine the default completion token type associated
|
907
|
-
/// with a type (such as an executor).
|
908
|
-
/**
|
909
|
-
* A program may specialise this traits type if the @c T template parameter in
|
910
|
-
* the specialisation is a user-defined type.
|
911
|
-
*
|
912
|
-
* Specialisations of this trait may provide a nested typedef @c type, which is
|
913
|
-
* a default-constructible completion token type.
|
914
|
-
*/
|
915
|
-
template <typename T>
|
916
|
-
struct default_completion_token
|
917
|
-
{
|
918
|
-
/// If @c T has a nested type @c default_completion_token_type,
|
919
|
-
/// <tt>T::default_completion_token_type</tt>. Otherwise the typedef @c type
|
920
|
-
/// is not defined.
|
921
|
-
typedef see_below type;
|
922
|
-
};
|
923
|
-
#else
|
924
|
-
template <typename T>
|
925
|
-
struct default_completion_token
|
926
|
-
: detail::default_completion_token_impl<T>
|
927
|
-
{
|
928
|
-
};
|
929
|
-
#endif
|
930
|
-
|
931
|
-
template <typename T>
|
932
|
-
using default_completion_token_t = typename default_completion_token<T>::type;
|
933
|
-
|
934
|
-
#define BOOST_ASIO_DEFAULT_COMPLETION_TOKEN_TYPE(e) \
|
935
|
-
= typename ::boost::asio::default_completion_token<e>::type
|
936
|
-
#define BOOST_ASIO_DEFAULT_COMPLETION_TOKEN(e) \
|
937
|
-
= typename ::boost::asio::default_completion_token<e>::type()
|
938
|
-
|
939
943
|
} // namespace asio
|
940
944
|
} // namespace boost
|
941
945
|
|
942
946
|
#include <boost/asio/detail/pop_options.hpp>
|
943
947
|
|
948
|
+
#include <boost/asio/default_completion_token.hpp>
|
949
|
+
|
944
950
|
#endif // BOOST_ASIO_ASYNC_RESULT_HPP
|
@@ -448,7 +448,7 @@ public:
|
|
448
448
|
* Regardless of whether the asynchronous operation completes immediately or
|
449
449
|
* not, the completion handler will not be invoked from within this function.
|
450
450
|
* On immediate completion, invocation of the handler will be performed in a
|
451
|
-
* manner equivalent to using boost::asio::
|
451
|
+
* manner equivalent to using boost::asio::async_immediate().
|
452
452
|
*
|
453
453
|
* @par Completion Signature
|
454
454
|
* @code void(boost::system::error_code, std::size_t) @endcode
|
@@ -518,7 +518,7 @@ public:
|
|
518
518
|
* Regardless of whether the asynchronous operation completes immediately or
|
519
519
|
* not, the completion handler will not be invoked from within this function.
|
520
520
|
* On immediate completion, invocation of the handler will be performed in a
|
521
|
-
* manner equivalent to using boost::asio::
|
521
|
+
* manner equivalent to using boost::asio::async_immediate().
|
522
522
|
*
|
523
523
|
* @par Completion Signature
|
524
524
|
* @code void(boost::system::error_code, std::size_t) @endcode
|
@@ -667,7 +667,7 @@ public:
|
|
667
667
|
* Regardless of whether the asynchronous operation completes immediately or
|
668
668
|
* not, the completion handler will not be invoked from within this function.
|
669
669
|
* On immediate completion, invocation of the handler will be performed in a
|
670
|
-
* manner equivalent to using boost::asio::
|
670
|
+
* manner equivalent to using boost::asio::async_immediate().
|
671
671
|
*
|
672
672
|
* @par Completion Signature
|
673
673
|
* @code void(boost::system::error_code, std::size_t) @endcode
|
@@ -740,7 +740,7 @@ public:
|
|
740
740
|
* Regardless of whether the asynchronous operation completes immediately or
|
741
741
|
* not, the completion handler will not be invoked from within this function.
|
742
742
|
* On immediate completion, invocation of the handler will be performed in a
|
743
|
-
* manner equivalent to using boost::asio::
|
743
|
+
* manner equivalent to using boost::asio::async_immediate().
|
744
744
|
*
|
745
745
|
* @par Completion Signature
|
746
746
|
* @code void(boost::system::error_code, std::size_t) @endcode
|
@@ -885,7 +885,7 @@ public:
|
|
885
885
|
* Regardless of whether the asynchronous operation completes immediately or
|
886
886
|
* not, the completion handler will not be invoked from within this function.
|
887
887
|
* On immediate completion, invocation of the handler will be performed in a
|
888
|
-
* manner equivalent to using boost::asio::
|
888
|
+
* manner equivalent to using boost::asio::async_immediate().
|
889
889
|
*
|
890
890
|
* @par Completion Signature
|
891
891
|
* @code void(boost::system::error_code, std::size_t) @endcode
|
@@ -956,7 +956,7 @@ public:
|
|
956
956
|
* Regardless of whether the asynchronous operation completes immediately or
|
957
957
|
* not, the completion handler will not be invoked from within this function.
|
958
958
|
* On immediate completion, invocation of the handler will be performed in a
|
959
|
-
* manner equivalent to using boost::asio::
|
959
|
+
* manner equivalent to using boost::asio::async_immediate().
|
960
960
|
*
|
961
961
|
* @par Completion Signature
|
962
962
|
* @code void(boost::system::error_code, std::size_t) @endcode
|
@@ -1027,7 +1027,7 @@ public:
|
|
1027
1027
|
boost::asio::detail::throw_error(ec, "receive_from");
|
1028
1028
|
return s;
|
1029
1029
|
}
|
1030
|
-
|
1030
|
+
|
1031
1031
|
/// Receive a datagram with the endpoint of the sender.
|
1032
1032
|
/**
|
1033
1033
|
* This function is used to receive a datagram. The function call will block
|
@@ -1054,7 +1054,7 @@ public:
|
|
1054
1054
|
boost::asio::detail::throw_error(ec, "receive_from");
|
1055
1055
|
return s;
|
1056
1056
|
}
|
1057
|
-
|
1057
|
+
|
1058
1058
|
/// Receive a datagram with the endpoint of the sender.
|
1059
1059
|
/**
|
1060
1060
|
* This function is used to receive a datagram. The function call will block
|
@@ -1108,7 +1108,7 @@ public:
|
|
1108
1108
|
* Regardless of whether the asynchronous operation completes immediately or
|
1109
1109
|
* not, the completion handler will not be invoked from within this function.
|
1110
1110
|
* On immediate completion, invocation of the handler will be performed in a
|
1111
|
-
* manner equivalent to using boost::asio::
|
1111
|
+
* manner equivalent to using boost::asio::async_immediate().
|
1112
1112
|
*
|
1113
1113
|
* @par Completion Signature
|
1114
1114
|
* @code void(boost::system::error_code, std::size_t) @endcode
|
@@ -1180,7 +1180,7 @@ public:
|
|
1180
1180
|
* Regardless of whether the asynchronous operation completes immediately or
|
1181
1181
|
* not, the completion handler will not be invoked from within this function.
|
1182
1182
|
* On immediate completion, invocation of the handler will be performed in a
|
1183
|
-
* manner equivalent to using boost::asio::
|
1183
|
+
* manner equivalent to using boost::asio::async_immediate().
|
1184
1184
|
*
|
1185
1185
|
* @par Completion Signature
|
1186
1186
|
* @code void(boost::system::error_code, std::size_t) @endcode
|
@@ -1220,7 +1220,7 @@ private:
|
|
1220
1220
|
const basic_datagram_socket&) = delete;
|
1221
1221
|
|
1222
1222
|
class initiate_async_send
|
1223
|
-
{
|
1223
|
+
{
|
1224
1224
|
public:
|
1225
1225
|
typedef Executor executor_type;
|
1226
1226
|
|
@@ -64,7 +64,7 @@ namespace asio {
|
|
64
64
|
* timer.wait();
|
65
65
|
* @endcode
|
66
66
|
*
|
67
|
-
* @par
|
67
|
+
* @par
|
68
68
|
* Performing an asynchronous wait:
|
69
69
|
* @code
|
70
70
|
* void handler(const boost::system::error_code& error)
|
@@ -631,7 +631,7 @@ public:
|
|
631
631
|
* Regardless of whether the asynchronous operation completes immediately or
|
632
632
|
* not, the completion handler will not be invoked from within this function.
|
633
633
|
* On immediate completion, invocation of the handler will be performed in a
|
634
|
-
* manner equivalent to using boost::asio::
|
634
|
+
* manner equivalent to using boost::asio::async_immediate().
|
635
635
|
*
|
636
636
|
* @par Completion Signature
|
637
637
|
* @code void(boost::system::error_code) @endcode
|
@@ -428,7 +428,7 @@ public:
|
|
428
428
|
* Regardless of whether the asynchronous operation completes immediately or
|
429
429
|
* not, the completion handler will not be invoked from within this function.
|
430
430
|
* On immediate completion, invocation of the handler will be performed in a
|
431
|
-
* manner equivalent to using boost::asio::
|
431
|
+
* manner equivalent to using boost::asio::async_immediate().
|
432
432
|
*
|
433
433
|
* @par Completion Signature
|
434
434
|
* @code void(boost::system::error_code, std::size_t) @endcode
|
@@ -563,7 +563,7 @@ public:
|
|
563
563
|
* Regardless of whether the asynchronous operation completes immediately or
|
564
564
|
* not, the completion handler will not be invoked from within this function.
|
565
565
|
* On immediate completion, invocation of the handler will be performed in a
|
566
|
-
* manner equivalent to using boost::asio::
|
566
|
+
* manner equivalent to using boost::asio::async_immediate().
|
567
567
|
*
|
568
568
|
* @par Completion Signature
|
569
569
|
* @code void(boost::system::error_code, std::size_t) @endcode
|