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
@@ -440,7 +440,7 @@ public:
|
|
440
440
|
* Regardless of whether the asynchronous operation completes immediately or
|
441
441
|
* not, the completion handler will not be invoked from within this function.
|
442
442
|
* On immediate completion, invocation of the handler will be performed in a
|
443
|
-
* manner equivalent to using boost::asio::
|
443
|
+
* manner equivalent to using boost::asio::async_immediate().
|
444
444
|
*
|
445
445
|
* @par Completion Signature
|
446
446
|
* @code void(boost::system::error_code, std::size_t) @endcode
|
@@ -510,7 +510,7 @@ public:
|
|
510
510
|
* Regardless of whether the asynchronous operation completes immediately or
|
511
511
|
* not, the completion handler will not be invoked from within this function.
|
512
512
|
* On immediate completion, invocation of the handler will be performed in a
|
513
|
-
* manner equivalent to using boost::asio::
|
513
|
+
* manner equivalent to using boost::asio::async_immediate().
|
514
514
|
*
|
515
515
|
* @par Completion Signature
|
516
516
|
* @code void(boost::system::error_code, std::size_t) @endcode
|
@@ -659,7 +659,7 @@ public:
|
|
659
659
|
* Regardless of whether the asynchronous operation completes immediately or
|
660
660
|
* not, the completion handler will not be invoked from within this function.
|
661
661
|
* On immediate completion, invocation of the handler will be performed in a
|
662
|
-
* manner equivalent to using boost::asio::
|
662
|
+
* manner equivalent to using boost::asio::async_immediate().
|
663
663
|
*
|
664
664
|
* @par Completion Signature
|
665
665
|
* @code void(boost::system::error_code, std::size_t) @endcode
|
@@ -732,7 +732,7 @@ public:
|
|
732
732
|
* Regardless of whether the asynchronous operation completes immediately or
|
733
733
|
* not, the completion handler will not be invoked from within this function.
|
734
734
|
* On immediate completion, invocation of the handler will be performed in a
|
735
|
-
* manner equivalent to using boost::asio::
|
735
|
+
* manner equivalent to using boost::asio::async_immediate().
|
736
736
|
*
|
737
737
|
* @par Completion Signature
|
738
738
|
* @code void(boost::system::error_code, std::size_t) @endcode
|
@@ -877,7 +877,7 @@ public:
|
|
877
877
|
* Regardless of whether the asynchronous operation completes immediately or
|
878
878
|
* not, the completion handler will not be invoked from within this function.
|
879
879
|
* On immediate completion, invocation of the handler will be performed in a
|
880
|
-
* manner equivalent to using boost::asio::
|
880
|
+
* manner equivalent to using boost::asio::async_immediate().
|
881
881
|
*
|
882
882
|
* @par Completion Signature
|
883
883
|
* @code void(boost::system::error_code, std::size_t) @endcode
|
@@ -948,7 +948,7 @@ public:
|
|
948
948
|
* Regardless of whether the asynchronous operation completes immediately or
|
949
949
|
* not, the completion handler will not be invoked from within this function.
|
950
950
|
* On immediate completion, invocation of the handler will be performed in a
|
951
|
-
* manner equivalent to using boost::asio::
|
951
|
+
* manner equivalent to using boost::asio::async_immediate().
|
952
952
|
*
|
953
953
|
* @par Completion Signature
|
954
954
|
* @code void(boost::system::error_code, std::size_t) @endcode
|
@@ -1020,7 +1020,7 @@ public:
|
|
1020
1020
|
boost::asio::detail::throw_error(ec, "receive_from");
|
1021
1021
|
return s;
|
1022
1022
|
}
|
1023
|
-
|
1023
|
+
|
1024
1024
|
/// Receive raw data with the endpoint of the sender.
|
1025
1025
|
/**
|
1026
1026
|
* This function is used to receive raw data. The function call will block
|
@@ -1047,7 +1047,7 @@ public:
|
|
1047
1047
|
boost::asio::detail::throw_error(ec, "receive_from");
|
1048
1048
|
return s;
|
1049
1049
|
}
|
1050
|
-
|
1050
|
+
|
1051
1051
|
/// Receive raw data with the endpoint of the sender.
|
1052
1052
|
/**
|
1053
1053
|
* This function is used to receive raw data. The function call will block
|
@@ -1101,7 +1101,7 @@ public:
|
|
1101
1101
|
* Regardless of whether the asynchronous operation completes immediately or
|
1102
1102
|
* not, the completion handler will not be invoked from within this function.
|
1103
1103
|
* On immediate completion, invocation of the handler will be performed in a
|
1104
|
-
* manner equivalent to using boost::asio::
|
1104
|
+
* manner equivalent to using boost::asio::async_immediate().
|
1105
1105
|
*
|
1106
1106
|
* @par Completion Signature
|
1107
1107
|
* @code void(boost::system::error_code, std::size_t) @endcode
|
@@ -1174,7 +1174,7 @@ public:
|
|
1174
1174
|
* Regardless of whether the asynchronous operation completes immediately or
|
1175
1175
|
* not, the completion handler will not be invoked from within this function.
|
1176
1176
|
* On immediate completion, invocation of the handler will be performed in a
|
1177
|
-
* manner equivalent to using boost::asio::
|
1177
|
+
* manner equivalent to using boost::asio::async_immediate().
|
1178
1178
|
*
|
1179
1179
|
* @par Completion Signature
|
1180
1180
|
* @code void(boost::system::error_code, std::size_t) @endcode
|
@@ -535,7 +535,7 @@ public:
|
|
535
535
|
* Regardless of whether the asynchronous operation completes immediately or
|
536
536
|
* not, the completion handler will not be invoked from within this function.
|
537
537
|
* On immediate completion, invocation of the handler will be performed in a
|
538
|
-
* manner equivalent to using boost::asio::
|
538
|
+
* manner equivalent to using boost::asio::async_immediate().
|
539
539
|
*
|
540
540
|
* @par Completion Signature
|
541
541
|
* @code void(boost::system::error_code, std::size_t) @endcode
|
@@ -431,7 +431,7 @@ public:
|
|
431
431
|
* Regardless of whether the asynchronous operation completes immediately or
|
432
432
|
* not, the completion handler will not be invoked from within this function.
|
433
433
|
* On immediate completion, invocation of the handler will be performed in a
|
434
|
-
* manner equivalent to using boost::asio::
|
434
|
+
* manner equivalent to using boost::asio::async_immediate().
|
435
435
|
*
|
436
436
|
* @par Completion Signature
|
437
437
|
* @code void(boost::system::error_code, std::size_t) @endcode
|
@@ -621,7 +621,7 @@ public:
|
|
621
621
|
* Regardless of whether the asynchronous operation completes immediately or
|
622
622
|
* not, the completion handler will not be invoked from within this function.
|
623
623
|
* On immediate completion, invocation of the handler will be performed in a
|
624
|
-
* manner equivalent to using boost::asio::
|
624
|
+
* manner equivalent to using boost::asio::async_immediate().
|
625
625
|
*
|
626
626
|
* @par Completion Signature
|
627
627
|
* @code void(boost::system::error_code, std::size_t) @endcode
|
@@ -695,7 +695,7 @@ public:
|
|
695
695
|
* Regardless of whether the asynchronous operation completes immediately or
|
696
696
|
* not, the completion handler will not be invoked from within this function.
|
697
697
|
* On immediate completion, invocation of the handler will be performed in a
|
698
|
-
* manner equivalent to using boost::asio::
|
698
|
+
* manner equivalent to using boost::asio::async_immediate().
|
699
699
|
*
|
700
700
|
* @par Completion Signature
|
701
701
|
* @code void(boost::system::error_code, std::size_t) @endcode
|
@@ -725,7 +725,7 @@ public:
|
|
725
725
|
* Regardless of whether the asynchronous operation completes immediately or
|
726
726
|
* not, the completion handler will not be invoked from within this function.
|
727
727
|
* On immediate completion, invocation of the handler will be performed in a
|
728
|
-
* manner equivalent to using boost::asio::
|
728
|
+
* manner equivalent to using boost::asio::async_immediate().
|
729
729
|
*
|
730
730
|
* @par Completion Signature
|
731
731
|
* @code void(boost::system::error_code, std::size_t) @endcode
|
@@ -855,7 +855,7 @@ public:
|
|
855
855
|
* Regardless of whether the asynchronous operation completes immediately or
|
856
856
|
* not, the completion handler will not be invoked from within this function.
|
857
857
|
* On immediate completion, invocation of the handler will be performed in a
|
858
|
-
* manner equivalent to using boost::asio::
|
858
|
+
* manner equivalent to using boost::asio::async_immediate().
|
859
859
|
*
|
860
860
|
* @par Completion Signature
|
861
861
|
* @code void(boost::system::error_code, std::size_t) @endcode
|
@@ -574,7 +574,7 @@ public:
|
|
574
574
|
* Regardless of whether the asynchronous operation completes immediately or
|
575
575
|
* not, the completion handler will not be invoked from within this function.
|
576
576
|
* On immediate completion, invocation of the handler will be performed in a
|
577
|
-
* manner equivalent to using boost::asio::
|
577
|
+
* manner equivalent to using boost::asio::async_immediate().
|
578
578
|
*
|
579
579
|
* @par Completion Signature
|
580
580
|
* @code void(boost::system::error_code, int) @endcode
|
@@ -928,7 +928,7 @@ public:
|
|
928
928
|
* Regardless of whether the asynchronous operation completes immediately or
|
929
929
|
* not, the completion handler will not be invoked from within this function.
|
930
930
|
* On immediate completion, invocation of the handler will be performed in a
|
931
|
-
* manner equivalent to using boost::asio::
|
931
|
+
* manner equivalent to using boost::asio::async_immediate().
|
932
932
|
*
|
933
933
|
* @par Completion Signature
|
934
934
|
* @code void(boost::system::error_code) @endcode
|
@@ -1780,7 +1780,7 @@ public:
|
|
1780
1780
|
* Regardless of whether the asynchronous operation completes immediately or
|
1781
1781
|
* not, the completion handler will not be invoked from within this function.
|
1782
1782
|
* On immediate completion, invocation of the handler will be performed in a
|
1783
|
-
* manner equivalent to using boost::asio::
|
1783
|
+
* manner equivalent to using boost::asio::async_immediate().
|
1784
1784
|
*
|
1785
1785
|
* @par Completion Signature
|
1786
1786
|
* @code void(boost::system::error_code) @endcode
|
@@ -1214,7 +1214,7 @@ public:
|
|
1214
1214
|
* Regardless of whether the asynchronous operation completes immediately or
|
1215
1215
|
* not, the completion handler will not be invoked from within this function.
|
1216
1216
|
* On immediate completion, invocation of the handler will be performed in a
|
1217
|
-
* manner equivalent to using boost::asio::
|
1217
|
+
* manner equivalent to using boost::asio::async_immediate().
|
1218
1218
|
*
|
1219
1219
|
* @par Completion Signature
|
1220
1220
|
* @code void(boost::system::error_code) @endcode
|
@@ -1349,7 +1349,7 @@ public:
|
|
1349
1349
|
* Regardless of whether the asynchronous operation completes immediately or
|
1350
1350
|
* not, the completion handler will not be invoked from within this function.
|
1351
1351
|
* On immediate completion, invocation of the handler will be performed in a
|
1352
|
-
* manner equivalent to using boost::asio::
|
1352
|
+
* manner equivalent to using boost::asio::async_immediate().
|
1353
1353
|
*
|
1354
1354
|
* @par Completion Signature
|
1355
1355
|
* @code void(boost::system::error_code) @endcode
|
@@ -1497,7 +1497,7 @@ public:
|
|
1497
1497
|
* Regardless of whether the asynchronous operation completes immediately or
|
1498
1498
|
* not, the completion handler will not be invoked from within this function.
|
1499
1499
|
* On immediate completion, invocation of the handler will be performed in a
|
1500
|
-
* manner equivalent to using boost::asio::
|
1500
|
+
* manner equivalent to using boost::asio::async_immediate().
|
1501
1501
|
*
|
1502
1502
|
* @par Completion Signature
|
1503
1503
|
* @code void(boost::system::error_code) @endcode
|
@@ -1617,7 +1617,7 @@ public:
|
|
1617
1617
|
* Regardless of whether the asynchronous operation completes immediately or
|
1618
1618
|
* not, the completion handler will not be invoked from within this function.
|
1619
1619
|
* On immediate completion, invocation of the handler will be performed in a
|
1620
|
-
* manner equivalent to using boost::asio::
|
1620
|
+
* manner equivalent to using boost::asio::async_immediate().
|
1621
1621
|
*
|
1622
1622
|
* @par Completion Signature
|
1623
1623
|
* @code void(boost::system::error_code,
|
@@ -1867,7 +1867,7 @@ public:
|
|
1867
1867
|
* Regardless of whether the asynchronous operation completes immediately or
|
1868
1868
|
* not, the completion handler will not be invoked from within this function.
|
1869
1869
|
* On immediate completion, invocation of the handler will be performed in a
|
1870
|
-
* manner equivalent to using boost::asio::
|
1870
|
+
* manner equivalent to using boost::asio::async_immediate().
|
1871
1871
|
*
|
1872
1872
|
* @par Completion Signature
|
1873
1873
|
* @code void(boost::system::error_code,
|
@@ -1963,7 +1963,7 @@ public:
|
|
1963
1963
|
* Regardless of whether the asynchronous operation completes immediately or
|
1964
1964
|
* not, the completion handler will not be invoked from within this function.
|
1965
1965
|
* On immediate completion, invocation of the handler will be performed in a
|
1966
|
-
* manner equivalent to using boost::asio::
|
1966
|
+
* manner equivalent to using boost::asio::async_immediate().
|
1967
1967
|
*
|
1968
1968
|
* @par Completion Signature
|
1969
1969
|
* @code void(boost::system::error_code,
|
@@ -2133,7 +2133,7 @@ public:
|
|
2133
2133
|
* Regardless of whether the asynchronous operation completes immediately or
|
2134
2134
|
* not, the completion handler will not be invoked from within this function.
|
2135
2135
|
* On immediate completion, invocation of the handler will be performed in a
|
2136
|
-
* manner equivalent to using boost::asio::
|
2136
|
+
* manner equivalent to using boost::asio::async_immediate().
|
2137
2137
|
*
|
2138
2138
|
* @par Completion Signature
|
2139
2139
|
* @code void(boost::system::error_code,
|
@@ -2415,7 +2415,7 @@ public:
|
|
2415
2415
|
* Regardless of whether the asynchronous operation completes immediately or
|
2416
2416
|
* not, the completion handler will not be invoked from within this function.
|
2417
2417
|
* On immediate completion, invocation of the handler will be performed in a
|
2418
|
-
* manner equivalent to using boost::asio::
|
2418
|
+
* manner equivalent to using boost::asio::async_immediate().
|
2419
2419
|
*
|
2420
2420
|
* @par Completion Signature
|
2421
2421
|
* @code void(boost::system::error_code,
|
@@ -2515,7 +2515,7 @@ public:
|
|
2515
2515
|
* Regardless of whether the asynchronous operation completes immediately or
|
2516
2516
|
* not, the completion handler will not be invoked from within this function.
|
2517
2517
|
* On immediate completion, invocation of the handler will be performed in a
|
2518
|
-
* manner equivalent to using boost::asio::
|
2518
|
+
* manner equivalent to using boost::asio::async_immediate().
|
2519
2519
|
*
|
2520
2520
|
* @par Completion Signature
|
2521
2521
|
* @code void(boost::system::error_code,
|
@@ -491,7 +491,7 @@ public:
|
|
491
491
|
* Regardless of whether the asynchronous operation completes immediately or
|
492
492
|
* not, the completion handler will not be invoked from within this function.
|
493
493
|
* On immediate completion, invocation of the handler will be performed in a
|
494
|
-
* manner equivalent to using boost::asio::
|
494
|
+
* manner equivalent to using boost::asio::async_immediate().
|
495
495
|
*
|
496
496
|
* @par Completion Signature
|
497
497
|
* @code void(boost::system::error_code, std::size_t) @endcode
|
@@ -619,7 +619,7 @@ public:
|
|
619
619
|
* Regardless of whether the asynchronous operation completes immediately or
|
620
620
|
* not, the completion handler will not be invoked from within this function.
|
621
621
|
* On immediate completion, invocation of the handler will be performed in a
|
622
|
-
* manner equivalent to using boost::asio::
|
622
|
+
* manner equivalent to using boost::asio::async_immediate().
|
623
623
|
*
|
624
624
|
* @par Completion Signature
|
625
625
|
* @code void(boost::system::error_code, std::size_t) @endcode
|
@@ -462,7 +462,7 @@ public:
|
|
462
462
|
* Regardless of whether the asynchronous operation completes immediately or
|
463
463
|
* not, the completion handler will not be invoked from within this function.
|
464
464
|
* On immediate completion, invocation of the handler will be performed in a
|
465
|
-
* manner equivalent to using boost::asio::
|
465
|
+
* manner equivalent to using boost::asio::async_immediate().
|
466
466
|
*
|
467
467
|
* @par Completion Signature
|
468
468
|
* @code void(boost::system::error_code, std::size_t) @endcode
|
@@ -532,7 +532,7 @@ public:
|
|
532
532
|
* Regardless of whether the asynchronous operation completes immediately or
|
533
533
|
* not, the completion handler will not be invoked from within this function.
|
534
534
|
* On immediate completion, invocation of the handler will be performed in a
|
535
|
-
* manner equivalent to using boost::asio::
|
535
|
+
* manner equivalent to using boost::asio::async_immediate().
|
536
536
|
*
|
537
537
|
* @par Completion Signature
|
538
538
|
* @code void(boost::system::error_code, std::size_t) @endcode
|
@@ -704,7 +704,7 @@ public:
|
|
704
704
|
* Regardless of whether the asynchronous operation completes immediately or
|
705
705
|
* not, the completion handler will not be invoked from within this function.
|
706
706
|
* On immediate completion, invocation of the handler will be performed in a
|
707
|
-
* manner equivalent to using boost::asio::
|
707
|
+
* manner equivalent to using boost::asio::async_immediate().
|
708
708
|
*
|
709
709
|
* @par Completion Signature
|
710
710
|
* @code void(boost::system::error_code, std::size_t) @endcode
|
@@ -776,7 +776,7 @@ public:
|
|
776
776
|
* Regardless of whether the asynchronous operation completes immediately or
|
777
777
|
* not, the completion handler will not be invoked from within this function.
|
778
778
|
* On immediate completion, invocation of the handler will be performed in a
|
779
|
-
* manner equivalent to using boost::asio::
|
779
|
+
* manner equivalent to using boost::asio::async_immediate().
|
780
780
|
*
|
781
781
|
* @par Completion Signature
|
782
782
|
* @code void(boost::system::error_code, std::size_t) @endcode
|
@@ -906,7 +906,7 @@ public:
|
|
906
906
|
* Regardless of whether the asynchronous operation completes immediately or
|
907
907
|
* not, the completion handler will not be invoked from within this function.
|
908
908
|
* On immediate completion, invocation of the handler will be performed in a
|
909
|
-
* manner equivalent to using boost::asio::
|
909
|
+
* manner equivalent to using boost::asio::async_immediate().
|
910
910
|
*
|
911
911
|
* @par Completion Signature
|
912
912
|
* @code void(boost::system::error_code, std::size_t) @endcode
|
@@ -1037,7 +1037,7 @@ public:
|
|
1037
1037
|
* Regardless of whether the asynchronous operation completes immediately or
|
1038
1038
|
* not, the completion handler will not be invoked from within this function.
|
1039
1039
|
* On immediate completion, invocation of the handler will be performed in a
|
1040
|
-
* manner equivalent to using boost::asio::
|
1040
|
+
* manner equivalent to using boost::asio::async_immediate().
|
1041
1041
|
*
|
1042
1042
|
* @par Completion Signature
|
1043
1043
|
* @code void(boost::system::error_code, std::size_t) @endcode
|
@@ -76,7 +76,7 @@ class basic_waitable_timer;
|
|
76
76
|
* timer.wait();
|
77
77
|
* @endcode
|
78
78
|
*
|
79
|
-
* @par
|
79
|
+
* @par
|
80
80
|
* Performing an asynchronous wait (C++11):
|
81
81
|
* @code
|
82
82
|
* void handler(const boost::system::error_code& error)
|
@@ -747,7 +747,7 @@ public:
|
|
747
747
|
* Regardless of whether the asynchronous operation completes immediately or
|
748
748
|
* not, the completion handler will not be invoked from within this function.
|
749
749
|
* On immediate completion, invocation of the handler will be performed in a
|
750
|
-
* manner equivalent to using boost::asio::
|
750
|
+
* manner equivalent to using boost::asio::async_immediate().
|
751
751
|
*
|
752
752
|
* @par Completion Signature
|
753
753
|
* @code void(boost::system::error_code) @endcode
|
@@ -533,7 +533,7 @@ public:
|
|
533
533
|
* Regardless of whether the asynchronous operation completes immediately or
|
534
534
|
* not, the completion handler will not be invoked from within this function.
|
535
535
|
* On immediate completion, invocation of the handler will be performed in a
|
536
|
-
* manner equivalent to using boost::asio::
|
536
|
+
* manner equivalent to using boost::asio::async_immediate().
|
537
537
|
*
|
538
538
|
* @par Completion Signature
|
539
539
|
* @code void(boost::system::error_code, std::size_t) @endcode
|
@@ -16,10 +16,12 @@
|
|
16
16
|
#endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
|
17
17
|
|
18
18
|
#include <boost/asio/detail/config.hpp>
|
19
|
-
#include <boost/asio/detail/type_traits.hpp>
|
20
19
|
#include <boost/asio/associated_allocator.hpp>
|
20
|
+
#include <boost/asio/associated_executor.hpp>
|
21
21
|
#include <boost/asio/associator.hpp>
|
22
22
|
#include <boost/asio/async_result.hpp>
|
23
|
+
#include <boost/asio/detail/initiation_base.hpp>
|
24
|
+
#include <boost/asio/detail/type_traits.hpp>
|
23
25
|
|
24
26
|
#include <boost/asio/detail/push_options.hpp>
|
25
27
|
|
@@ -361,6 +363,46 @@ private:
|
|
361
363
|
T target_;
|
362
364
|
};
|
363
365
|
|
366
|
+
/// A function object type that adapts a @ref completion_token to specify that
|
367
|
+
/// the completion handler should have the supplied allocator as its associated
|
368
|
+
/// allocator.
|
369
|
+
/**
|
370
|
+
* May also be used directly as a completion token, in which case it adapts the
|
371
|
+
* asynchronous operation's default completion token (or boost::asio::deferred
|
372
|
+
* if no default is available).
|
373
|
+
*/
|
374
|
+
template <typename Allocator>
|
375
|
+
struct partial_allocator_binder
|
376
|
+
{
|
377
|
+
/// Constructor that specifies associated allocator.
|
378
|
+
explicit partial_allocator_binder(const Allocator& ex)
|
379
|
+
: allocator_(ex)
|
380
|
+
{
|
381
|
+
}
|
382
|
+
|
383
|
+
/// Adapt a @ref completion_token to specify that the completion handler
|
384
|
+
/// should have the allocator as its associated allocator.
|
385
|
+
template <typename CompletionToken>
|
386
|
+
BOOST_ASIO_NODISCARD inline
|
387
|
+
constexpr allocator_binder<decay_t<CompletionToken>, Allocator>
|
388
|
+
operator()(CompletionToken&& completion_token) const
|
389
|
+
{
|
390
|
+
return allocator_binder<decay_t<CompletionToken>, Allocator>(
|
391
|
+
allocator_, static_cast<CompletionToken&&>(completion_token));
|
392
|
+
}
|
393
|
+
|
394
|
+
//private:
|
395
|
+
Allocator allocator_;
|
396
|
+
};
|
397
|
+
|
398
|
+
/// Create a partial completion token that associates an allocator.
|
399
|
+
template <typename Allocator>
|
400
|
+
BOOST_ASIO_NODISCARD inline partial_allocator_binder<Allocator>
|
401
|
+
bind_allocator(const Allocator& ex)
|
402
|
+
{
|
403
|
+
return partial_allocator_binder<Allocator>(ex);
|
404
|
+
}
|
405
|
+
|
364
406
|
/// Associate an object of type @c T with an allocator of type
|
365
407
|
/// @c Allocator.
|
366
408
|
template <typename Allocator, typename T>
|
@@ -438,49 +480,48 @@ public:
|
|
438
480
|
}
|
439
481
|
|
440
482
|
template <typename Initiation>
|
441
|
-
struct init_wrapper
|
483
|
+
struct init_wrapper : detail::initiation_base<Initiation>
|
442
484
|
{
|
443
|
-
|
444
|
-
init_wrapper(const Allocator& allocator, Init&& init)
|
445
|
-
: allocator_(allocator),
|
446
|
-
initiation_(static_cast<Init&&>(init))
|
447
|
-
{
|
448
|
-
}
|
485
|
+
using detail::initiation_base<Initiation>::initiation_base;
|
449
486
|
|
450
487
|
template <typename Handler, typename... Args>
|
451
|
-
void operator()(Handler&& handler, Args&&... args)
|
488
|
+
void operator()(Handler&& handler, const Allocator& a, Args&&... args) &&
|
452
489
|
{
|
453
|
-
static_cast<Initiation&&>(
|
490
|
+
static_cast<Initiation&&>(*this)(
|
454
491
|
allocator_binder<decay_t<Handler>, Allocator>(
|
455
|
-
|
492
|
+
a, static_cast<Handler&&>(handler)),
|
456
493
|
static_cast<Args&&>(args)...);
|
457
494
|
}
|
458
495
|
|
459
496
|
template <typename Handler, typename... Args>
|
460
|
-
void operator()(Handler&& handler,
|
497
|
+
void operator()(Handler&& handler,
|
498
|
+
const Allocator& a, Args&&... args) const &
|
461
499
|
{
|
462
|
-
|
500
|
+
static_cast<const Initiation&>(*this)(
|
463
501
|
allocator_binder<decay_t<Handler>, Allocator>(
|
464
|
-
|
502
|
+
a, static_cast<Handler&&>(handler)),
|
465
503
|
static_cast<Args&&>(args)...);
|
466
504
|
}
|
467
|
-
|
468
|
-
Allocator allocator_;
|
469
|
-
Initiation initiation_;
|
470
505
|
};
|
471
506
|
|
472
507
|
template <typename Initiation, typename RawCompletionToken, typename... Args>
|
473
508
|
static auto initiate(Initiation&& initiation,
|
474
509
|
RawCompletionToken&& token, Args&&... args)
|
475
510
|
-> decltype(
|
476
|
-
async_initiate<
|
511
|
+
async_initiate<
|
512
|
+
conditional_t<
|
513
|
+
is_const<remove_reference_t<RawCompletionToken>>::value, const T, T>,
|
514
|
+
Signature>(
|
477
515
|
declval<init_wrapper<decay_t<Initiation>>>(),
|
478
|
-
token.get(), static_cast<Args&&>(args)...))
|
516
|
+
token.get(), token.get_allocator(), static_cast<Args&&>(args)...))
|
479
517
|
{
|
480
|
-
return async_initiate<
|
481
|
-
|
518
|
+
return async_initiate<
|
519
|
+
conditional_t<
|
520
|
+
is_const<remove_reference_t<RawCompletionToken>>::value, const T, T>,
|
521
|
+
Signature>(
|
522
|
+
init_wrapper<decay_t<Initiation>>(
|
482
523
|
static_cast<Initiation&&>(initiation)),
|
483
|
-
token.get(), static_cast<Args&&>(args)...);
|
524
|
+
token.get(), token.get_allocator(), static_cast<Args&&>(args)...);
|
484
525
|
}
|
485
526
|
|
486
527
|
private:
|
@@ -490,6 +531,31 @@ private:
|
|
490
531
|
async_result<T, Signature> target_;
|
491
532
|
};
|
492
533
|
|
534
|
+
template <typename Allocator, typename... Signatures>
|
535
|
+
struct async_result<partial_allocator_binder<Allocator>, Signatures...>
|
536
|
+
{
|
537
|
+
template <typename Initiation, typename RawCompletionToken, typename... Args>
|
538
|
+
static auto initiate(Initiation&& initiation,
|
539
|
+
RawCompletionToken&& token, Args&&... args)
|
540
|
+
-> decltype(
|
541
|
+
async_initiate<Signatures...>(
|
542
|
+
static_cast<Initiation&&>(initiation),
|
543
|
+
allocator_binder<
|
544
|
+
default_completion_token_t<associated_executor_t<Initiation>>,
|
545
|
+
Allocator>(token.allocator_,
|
546
|
+
default_completion_token_t<associated_executor_t<Initiation>>{}),
|
547
|
+
static_cast<Args&&>(args)...))
|
548
|
+
{
|
549
|
+
return async_initiate<Signatures...>(
|
550
|
+
static_cast<Initiation&&>(initiation),
|
551
|
+
allocator_binder<
|
552
|
+
default_completion_token_t<associated_executor_t<Initiation>>,
|
553
|
+
Allocator>(token.allocator_,
|
554
|
+
default_completion_token_t<associated_executor_t<Initiation>>{}),
|
555
|
+
static_cast<Args&&>(args)...);
|
556
|
+
}
|
557
|
+
};
|
558
|
+
|
493
559
|
template <template <typename, typename> class Associator,
|
494
560
|
typename T, typename Allocator, typename DefaultCandidate>
|
495
561
|
struct associator<Associator, allocator_binder<T, Allocator>, DefaultCandidate>
|