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
@@ -185,6 +185,9 @@ std::size_t read(SyncReadStream& s, const MutableBufferSequence& buffers,
|
|
185
185
|
CompletionCondition completion_condition,
|
186
186
|
constraint_t<
|
187
187
|
is_mutable_buffer_sequence<MutableBufferSequence>::value
|
188
|
+
> = 0,
|
189
|
+
constraint_t<
|
190
|
+
is_completion_condition<CompletionCondition>::value
|
188
191
|
> = 0);
|
189
192
|
|
190
193
|
/// Attempt to read a certain amount of data from a stream before returning.
|
@@ -232,6 +235,9 @@ std::size_t read(SyncReadStream& s, const MutableBufferSequence& buffers,
|
|
232
235
|
CompletionCondition completion_condition, boost::system::error_code& ec,
|
233
236
|
constraint_t<
|
234
237
|
is_mutable_buffer_sequence<MutableBufferSequence>::value
|
238
|
+
> = 0,
|
239
|
+
constraint_t<
|
240
|
+
is_completion_condition<CompletionCondition>::value
|
235
241
|
> = 0);
|
236
242
|
|
237
243
|
#if !defined(BOOST_ASIO_NO_DYNAMIC_BUFFER_V1)
|
@@ -356,6 +362,9 @@ std::size_t read(SyncReadStream& s,
|
|
356
362
|
> = 0,
|
357
363
|
constraint_t<
|
358
364
|
!is_dynamic_buffer_v2<decay_t<DynamicBuffer_v1>>::value
|
365
|
+
> = 0,
|
366
|
+
constraint_t<
|
367
|
+
is_completion_condition<CompletionCondition>::value
|
359
368
|
> = 0);
|
360
369
|
|
361
370
|
/// Attempt to read a certain amount of data from a stream before returning.
|
@@ -405,6 +414,9 @@ std::size_t read(SyncReadStream& s,
|
|
405
414
|
> = 0,
|
406
415
|
constraint_t<
|
407
416
|
!is_dynamic_buffer_v2<decay_t<DynamicBuffer_v1>>::value
|
417
|
+
> = 0,
|
418
|
+
constraint_t<
|
419
|
+
is_completion_condition<CompletionCondition>::value
|
408
420
|
> = 0);
|
409
421
|
|
410
422
|
#if !defined(BOOST_ASIO_NO_EXTENSIONS)
|
@@ -507,7 +519,10 @@ std::size_t read(SyncReadStream& s, basic_streambuf<Allocator>& b,
|
|
507
519
|
template <typename SyncReadStream, typename Allocator,
|
508
520
|
typename CompletionCondition>
|
509
521
|
std::size_t read(SyncReadStream& s, basic_streambuf<Allocator>& b,
|
510
|
-
CompletionCondition completion_condition
|
522
|
+
CompletionCondition completion_condition,
|
523
|
+
constraint_t<
|
524
|
+
is_completion_condition<CompletionCondition>::value
|
525
|
+
> = 0);
|
511
526
|
|
512
527
|
/// Attempt to read a certain amount of data from a stream before returning.
|
513
528
|
/**
|
@@ -548,7 +563,10 @@ std::size_t read(SyncReadStream& s, basic_streambuf<Allocator>& b,
|
|
548
563
|
template <typename SyncReadStream, typename Allocator,
|
549
564
|
typename CompletionCondition>
|
550
565
|
std::size_t read(SyncReadStream& s, basic_streambuf<Allocator>& b,
|
551
|
-
CompletionCondition completion_condition, boost::system::error_code& ec
|
566
|
+
CompletionCondition completion_condition, boost::system::error_code& ec,
|
567
|
+
constraint_t<
|
568
|
+
is_completion_condition<CompletionCondition>::value
|
569
|
+
> = 0);
|
552
570
|
|
553
571
|
#endif // !defined(BOOST_ASIO_NO_IOSTREAM)
|
554
572
|
#endif // !defined(BOOST_ASIO_NO_EXTENSIONS)
|
@@ -662,6 +680,9 @@ std::size_t read(SyncReadStream& s, DynamicBuffer_v2 buffers,
|
|
662
680
|
CompletionCondition completion_condition,
|
663
681
|
constraint_t<
|
664
682
|
is_dynamic_buffer_v2<DynamicBuffer_v2>::value
|
683
|
+
> = 0,
|
684
|
+
constraint_t<
|
685
|
+
is_completion_condition<CompletionCondition>::value
|
665
686
|
> = 0);
|
666
687
|
|
667
688
|
/// Attempt to read a certain amount of data from a stream before returning.
|
@@ -707,6 +728,9 @@ std::size_t read(SyncReadStream& s, DynamicBuffer_v2 buffers,
|
|
707
728
|
CompletionCondition completion_condition, boost::system::error_code& ec,
|
708
729
|
constraint_t<
|
709
730
|
is_dynamic_buffer_v2<DynamicBuffer_v2>::value
|
731
|
+
> = 0,
|
732
|
+
constraint_t<
|
733
|
+
is_completion_condition<CompletionCondition>::value
|
710
734
|
> = 0);
|
711
735
|
|
712
736
|
/*@}*/
|
@@ -763,7 +787,7 @@ std::size_t read(SyncReadStream& s, DynamicBuffer_v2 buffers,
|
|
763
787
|
* Regardless of whether the asynchronous operation completes immediately or
|
764
788
|
* not, the completion handler will not be invoked from within this function.
|
765
789
|
* On immediate completion, invocation of the handler will be performed in a
|
766
|
-
* manner equivalent to using boost::asio::
|
790
|
+
* manner equivalent to using boost::asio::async_immediate().
|
767
791
|
*
|
768
792
|
* @par Completion Signature
|
769
793
|
* @code void(boost::system::error_code, std::size_t) @endcode
|
@@ -798,17 +822,26 @@ template <typename AsyncReadStream, typename MutableBufferSequence,
|
|
798
822
|
BOOST_ASIO_COMPLETION_TOKEN_FOR(void (boost::system::error_code,
|
799
823
|
std::size_t)) ReadToken = default_completion_token_t<
|
800
824
|
typename AsyncReadStream::executor_type>>
|
801
|
-
auto async_read(AsyncReadStream& s, const MutableBufferSequence& buffers,
|
825
|
+
inline auto async_read(AsyncReadStream& s, const MutableBufferSequence& buffers,
|
802
826
|
ReadToken&& token = default_completion_token_t<
|
803
827
|
typename AsyncReadStream::executor_type>(),
|
804
828
|
constraint_t<
|
805
829
|
is_mutable_buffer_sequence<MutableBufferSequence>::value
|
830
|
+
> = 0,
|
831
|
+
constraint_t<
|
832
|
+
!is_completion_condition<ReadToken>::value
|
806
833
|
> = 0)
|
807
834
|
-> decltype(
|
808
835
|
async_initiate<ReadToken,
|
809
836
|
void (boost::system::error_code, std::size_t)>(
|
810
837
|
declval<detail::initiate_async_read<AsyncReadStream>>(),
|
811
|
-
token, buffers, transfer_all()))
|
838
|
+
token, buffers, transfer_all()))
|
839
|
+
{
|
840
|
+
return async_initiate<ReadToken,
|
841
|
+
void (boost::system::error_code, std::size_t)>(
|
842
|
+
detail::initiate_async_read<AsyncReadStream>(s),
|
843
|
+
token, buffers, transfer_all());
|
844
|
+
}
|
812
845
|
|
813
846
|
/// Start an asynchronous operation to read a certain amount of data from a
|
814
847
|
/// stream.
|
@@ -863,7 +896,7 @@ auto async_read(AsyncReadStream& s, const MutableBufferSequence& buffers,
|
|
863
896
|
* Regardless of whether the asynchronous operation completes immediately or
|
864
897
|
* not, the completion handler will not be invoked from within this function.
|
865
898
|
* On immediate completion, invocation of the handler will be performed in a
|
866
|
-
* manner equivalent to using boost::asio::
|
899
|
+
* manner equivalent to using boost::asio::async_immediate().
|
867
900
|
*
|
868
901
|
* @par Completion Signature
|
869
902
|
* @code void(boost::system::error_code, std::size_t) @endcode
|
@@ -894,19 +927,28 @@ template <typename AsyncReadStream,
|
|
894
927
|
BOOST_ASIO_COMPLETION_TOKEN_FOR(void (boost::system::error_code,
|
895
928
|
std::size_t)) ReadToken = default_completion_token_t<
|
896
929
|
typename AsyncReadStream::executor_type>>
|
897
|
-
auto async_read(AsyncReadStream& s, const MutableBufferSequence& buffers,
|
930
|
+
inline auto async_read(AsyncReadStream& s, const MutableBufferSequence& buffers,
|
898
931
|
CompletionCondition completion_condition,
|
899
932
|
ReadToken&& token = default_completion_token_t<
|
900
933
|
typename AsyncReadStream::executor_type>(),
|
901
934
|
constraint_t<
|
902
935
|
is_mutable_buffer_sequence<MutableBufferSequence>::value
|
936
|
+
> = 0,
|
937
|
+
constraint_t<
|
938
|
+
is_completion_condition<CompletionCondition>::value
|
903
939
|
> = 0)
|
904
940
|
-> decltype(
|
905
941
|
async_initiate<ReadToken,
|
906
942
|
void (boost::system::error_code, std::size_t)>(
|
907
943
|
declval<detail::initiate_async_read<AsyncReadStream>>(),
|
908
944
|
token, buffers,
|
909
|
-
static_cast<CompletionCondition&&>(completion_condition)))
|
945
|
+
static_cast<CompletionCondition&&>(completion_condition)))
|
946
|
+
{
|
947
|
+
return async_initiate<ReadToken,
|
948
|
+
void (boost::system::error_code, std::size_t)>(
|
949
|
+
detail::initiate_async_read<AsyncReadStream>(s), token, buffers,
|
950
|
+
static_cast<CompletionCondition&&>(completion_condition));
|
951
|
+
}
|
910
952
|
|
911
953
|
#if !defined(BOOST_ASIO_NO_DYNAMIC_BUFFER_V1)
|
912
954
|
|
@@ -954,7 +996,7 @@ auto async_read(AsyncReadStream& s, const MutableBufferSequence& buffers,
|
|
954
996
|
* Regardless of whether the asynchronous operation completes immediately or
|
955
997
|
* not, the completion handler will not be invoked from within this function.
|
956
998
|
* On immediate completion, invocation of the handler will be performed in a
|
957
|
-
* manner equivalent to using boost::asio::
|
999
|
+
* manner equivalent to using boost::asio::async_immediate().
|
958
1000
|
*
|
959
1001
|
* @par Completion Signature
|
960
1002
|
* @code void(boost::system::error_code, std::size_t) @endcode
|
@@ -980,7 +1022,7 @@ template <typename AsyncReadStream, typename DynamicBuffer_v1,
|
|
980
1022
|
BOOST_ASIO_COMPLETION_TOKEN_FOR(void (boost::system::error_code,
|
981
1023
|
std::size_t)) ReadToken = default_completion_token_t<
|
982
1024
|
typename AsyncReadStream::executor_type>>
|
983
|
-
auto async_read(AsyncReadStream& s, DynamicBuffer_v1&& buffers,
|
1025
|
+
inline auto async_read(AsyncReadStream& s, DynamicBuffer_v1&& buffers,
|
984
1026
|
ReadToken&& token = default_completion_token_t<
|
985
1027
|
typename AsyncReadStream::executor_type>(),
|
986
1028
|
constraint_t<
|
@@ -988,12 +1030,21 @@ auto async_read(AsyncReadStream& s, DynamicBuffer_v1&& buffers,
|
|
988
1030
|
> = 0,
|
989
1031
|
constraint_t<
|
990
1032
|
!is_dynamic_buffer_v2<decay_t<DynamicBuffer_v1>>::value
|
1033
|
+
> = 0,
|
1034
|
+
constraint_t<
|
1035
|
+
!is_completion_condition<ReadToken>::value
|
991
1036
|
> = 0)
|
992
1037
|
-> decltype(
|
993
1038
|
async_initiate<ReadToken,
|
994
1039
|
void (boost::system::error_code, std::size_t)>(
|
995
1040
|
declval<detail::initiate_async_read_dynbuf_v1<AsyncReadStream>>(),
|
996
|
-
token, static_cast<DynamicBuffer_v1&&>(buffers), transfer_all()))
|
1041
|
+
token, static_cast<DynamicBuffer_v1&&>(buffers), transfer_all()))
|
1042
|
+
{
|
1043
|
+
return async_initiate<ReadToken,
|
1044
|
+
void (boost::system::error_code, std::size_t)>(
|
1045
|
+
detail::initiate_async_read_dynbuf_v1<AsyncReadStream>(s),
|
1046
|
+
token, static_cast<DynamicBuffer_v1&&>(buffers), transfer_all());
|
1047
|
+
}
|
997
1048
|
|
998
1049
|
/// Start an asynchronous operation to read a certain amount of data from a
|
999
1050
|
/// stream.
|
@@ -1053,7 +1104,7 @@ auto async_read(AsyncReadStream& s, DynamicBuffer_v1&& buffers,
|
|
1053
1104
|
* Regardless of whether the asynchronous operation completes immediately or
|
1054
1105
|
* not, the completion handler will not be invoked from within this function.
|
1055
1106
|
* On immediate completion, invocation of the handler will be performed in a
|
1056
|
-
* manner equivalent to using boost::asio::
|
1107
|
+
* manner equivalent to using boost::asio::async_immediate().
|
1057
1108
|
*
|
1058
1109
|
* @par Completion Signature
|
1059
1110
|
* @code void(boost::system::error_code, std::size_t) @endcode
|
@@ -1074,7 +1125,7 @@ template <typename AsyncReadStream,
|
|
1074
1125
|
BOOST_ASIO_COMPLETION_TOKEN_FOR(void (boost::system::error_code,
|
1075
1126
|
std::size_t)) ReadToken = default_completion_token_t<
|
1076
1127
|
typename AsyncReadStream::executor_type>>
|
1077
|
-
auto async_read(AsyncReadStream& s, DynamicBuffer_v1&& buffers,
|
1128
|
+
inline auto async_read(AsyncReadStream& s, DynamicBuffer_v1&& buffers,
|
1078
1129
|
CompletionCondition completion_condition,
|
1079
1130
|
ReadToken&& token = default_completion_token_t<
|
1080
1131
|
typename AsyncReadStream::executor_type>(),
|
@@ -1083,13 +1134,23 @@ auto async_read(AsyncReadStream& s, DynamicBuffer_v1&& buffers,
|
|
1083
1134
|
> = 0,
|
1084
1135
|
constraint_t<
|
1085
1136
|
!is_dynamic_buffer_v2<decay_t<DynamicBuffer_v1>>::value
|
1137
|
+
> = 0,
|
1138
|
+
constraint_t<
|
1139
|
+
is_completion_condition<CompletionCondition>::value
|
1086
1140
|
> = 0)
|
1087
1141
|
-> decltype(
|
1088
1142
|
async_initiate<ReadToken,
|
1089
1143
|
void (boost::system::error_code, std::size_t)>(
|
1090
1144
|
declval<detail::initiate_async_read_dynbuf_v1<AsyncReadStream>>(),
|
1091
1145
|
token, static_cast<DynamicBuffer_v1&&>(buffers),
|
1092
|
-
static_cast<CompletionCondition&&>(completion_condition)))
|
1146
|
+
static_cast<CompletionCondition&&>(completion_condition)))
|
1147
|
+
{
|
1148
|
+
return async_initiate<ReadToken,
|
1149
|
+
void (boost::system::error_code, std::size_t)>(
|
1150
|
+
detail::initiate_async_read_dynbuf_v1<AsyncReadStream>(s),
|
1151
|
+
token, static_cast<DynamicBuffer_v1&&>(buffers),
|
1152
|
+
static_cast<CompletionCondition&&>(completion_condition));
|
1153
|
+
}
|
1093
1154
|
|
1094
1155
|
#if !defined(BOOST_ASIO_NO_EXTENSIONS)
|
1095
1156
|
#if !defined(BOOST_ASIO_NO_IOSTREAM)
|
@@ -1136,7 +1197,7 @@ auto async_read(AsyncReadStream& s, DynamicBuffer_v1&& buffers,
|
|
1136
1197
|
* Regardless of whether the asynchronous operation completes immediately or
|
1137
1198
|
* not, the completion handler will not be invoked from within this function.
|
1138
1199
|
* On immediate completion, invocation of the handler will be performed in a
|
1139
|
-
* manner equivalent to using boost::asio::
|
1200
|
+
* manner equivalent to using boost::asio::async_immediate().
|
1140
1201
|
*
|
1141
1202
|
* @par Completion Signature
|
1142
1203
|
* @code void(boost::system::error_code, std::size_t) @endcode
|
@@ -1162,14 +1223,23 @@ template <typename AsyncReadStream, typename Allocator,
|
|
1162
1223
|
BOOST_ASIO_COMPLETION_TOKEN_FOR(void (boost::system::error_code,
|
1163
1224
|
std::size_t)) ReadToken = default_completion_token_t<
|
1164
1225
|
typename AsyncReadStream::executor_type>>
|
1165
|
-
auto async_read(AsyncReadStream& s, basic_streambuf<Allocator>& b,
|
1226
|
+
inline auto async_read(AsyncReadStream& s, basic_streambuf<Allocator>& b,
|
1166
1227
|
ReadToken&& token = default_completion_token_t<
|
1167
|
-
typename AsyncReadStream::executor_type>()
|
1228
|
+
typename AsyncReadStream::executor_type>(),
|
1229
|
+
constraint_t<
|
1230
|
+
!is_completion_condition<ReadToken>::value
|
1231
|
+
> = 0)
|
1168
1232
|
-> decltype(
|
1169
1233
|
async_initiate<ReadToken,
|
1170
1234
|
void (boost::system::error_code, std::size_t)>(
|
1171
1235
|
declval<detail::initiate_async_read_dynbuf_v1<AsyncReadStream>>(),
|
1172
|
-
token, basic_streambuf_ref<Allocator>(b), transfer_all()))
|
1236
|
+
token, basic_streambuf_ref<Allocator>(b), transfer_all()))
|
1237
|
+
{
|
1238
|
+
return async_initiate<ReadToken,
|
1239
|
+
void (boost::system::error_code, std::size_t)>(
|
1240
|
+
detail::initiate_async_read_dynbuf_v1<AsyncReadStream>(s),
|
1241
|
+
token, basic_streambuf_ref<Allocator>(b), transfer_all());
|
1242
|
+
}
|
1173
1243
|
|
1174
1244
|
/// Start an asynchronous operation to read a certain amount of data from a
|
1175
1245
|
/// stream.
|
@@ -1227,7 +1297,7 @@ auto async_read(AsyncReadStream& s, basic_streambuf<Allocator>& b,
|
|
1227
1297
|
* Regardless of whether the asynchronous operation completes immediately or
|
1228
1298
|
* not, the completion handler will not be invoked from within this function.
|
1229
1299
|
* On immediate completion, invocation of the handler will be performed in a
|
1230
|
-
* manner equivalent to using boost::asio::
|
1300
|
+
* manner equivalent to using boost::asio::async_immediate().
|
1231
1301
|
*
|
1232
1302
|
* @par Completion Signature
|
1233
1303
|
* @code void(boost::system::error_code, std::size_t) @endcode
|
@@ -1248,16 +1318,26 @@ template <typename AsyncReadStream,
|
|
1248
1318
|
BOOST_ASIO_COMPLETION_TOKEN_FOR(void (boost::system::error_code,
|
1249
1319
|
std::size_t)) ReadToken = default_completion_token_t<
|
1250
1320
|
typename AsyncReadStream::executor_type>>
|
1251
|
-
auto async_read(AsyncReadStream& s, basic_streambuf<Allocator>& b,
|
1321
|
+
inline auto async_read(AsyncReadStream& s, basic_streambuf<Allocator>& b,
|
1252
1322
|
CompletionCondition completion_condition,
|
1253
1323
|
ReadToken&& token = default_completion_token_t<
|
1254
|
-
typename AsyncReadStream::executor_type>()
|
1324
|
+
typename AsyncReadStream::executor_type>(),
|
1325
|
+
constraint_t<
|
1326
|
+
is_completion_condition<CompletionCondition>::value
|
1327
|
+
> = 0)
|
1255
1328
|
-> decltype(
|
1256
1329
|
async_initiate<ReadToken,
|
1257
1330
|
void (boost::system::error_code, std::size_t)>(
|
1258
1331
|
declval<detail::initiate_async_read_dynbuf_v1<AsyncReadStream>>(),
|
1259
1332
|
token, basic_streambuf_ref<Allocator>(b),
|
1260
|
-
static_cast<CompletionCondition&&>(completion_condition)))
|
1333
|
+
static_cast<CompletionCondition&&>(completion_condition)))
|
1334
|
+
{
|
1335
|
+
return async_initiate<ReadToken,
|
1336
|
+
void (boost::system::error_code, std::size_t)>(
|
1337
|
+
detail::initiate_async_read_dynbuf_v1<AsyncReadStream>(s),
|
1338
|
+
token, basic_streambuf_ref<Allocator>(b),
|
1339
|
+
static_cast<CompletionCondition&&>(completion_condition));
|
1340
|
+
}
|
1261
1341
|
|
1262
1342
|
#endif // !defined(BOOST_ASIO_NO_IOSTREAM)
|
1263
1343
|
#endif // !defined(BOOST_ASIO_NO_EXTENSIONS)
|
@@ -1307,7 +1387,7 @@ auto async_read(AsyncReadStream& s, basic_streambuf<Allocator>& b,
|
|
1307
1387
|
* Regardless of whether the asynchronous operation completes immediately or
|
1308
1388
|
* not, the completion handler will not be invoked from within this function.
|
1309
1389
|
* On immediate completion, invocation of the handler will be performed in a
|
1310
|
-
* manner equivalent to using boost::asio::
|
1390
|
+
* manner equivalent to using boost::asio::async_immediate().
|
1311
1391
|
*
|
1312
1392
|
* @par Completion Signature
|
1313
1393
|
* @code void(boost::system::error_code, std::size_t) @endcode
|
@@ -1333,17 +1413,26 @@ template <typename AsyncReadStream, typename DynamicBuffer_v2,
|
|
1333
1413
|
BOOST_ASIO_COMPLETION_TOKEN_FOR(void (boost::system::error_code,
|
1334
1414
|
std::size_t)) ReadToken = default_completion_token_t<
|
1335
1415
|
typename AsyncReadStream::executor_type>>
|
1336
|
-
auto async_read(AsyncReadStream& s, DynamicBuffer_v2 buffers,
|
1416
|
+
inline auto async_read(AsyncReadStream& s, DynamicBuffer_v2 buffers,
|
1337
1417
|
ReadToken&& token = default_completion_token_t<
|
1338
1418
|
typename AsyncReadStream::executor_type>(),
|
1339
1419
|
constraint_t<
|
1340
1420
|
is_dynamic_buffer_v2<DynamicBuffer_v2>::value
|
1421
|
+
> = 0,
|
1422
|
+
constraint_t<
|
1423
|
+
!is_completion_condition<ReadToken>::value
|
1341
1424
|
> = 0)
|
1342
1425
|
-> decltype(
|
1343
1426
|
async_initiate<ReadToken,
|
1344
1427
|
void (boost::system::error_code, std::size_t)>(
|
1345
1428
|
declval<detail::initiate_async_read_dynbuf_v2<AsyncReadStream>>(),
|
1346
|
-
token, static_cast<DynamicBuffer_v2&&>(buffers), transfer_all()))
|
1429
|
+
token, static_cast<DynamicBuffer_v2&&>(buffers), transfer_all()))
|
1430
|
+
{
|
1431
|
+
return async_initiate<ReadToken,
|
1432
|
+
void (boost::system::error_code, std::size_t)>(
|
1433
|
+
detail::initiate_async_read_dynbuf_v2<AsyncReadStream>(s),
|
1434
|
+
token, static_cast<DynamicBuffer_v2&&>(buffers), transfer_all());
|
1435
|
+
}
|
1347
1436
|
|
1348
1437
|
/// Start an asynchronous operation to read a certain amount of data from a
|
1349
1438
|
/// stream.
|
@@ -1403,7 +1492,7 @@ auto async_read(AsyncReadStream& s, DynamicBuffer_v2 buffers,
|
|
1403
1492
|
* Regardless of whether the asynchronous operation completes immediately or
|
1404
1493
|
* not, the completion handler will not be invoked from within this function.
|
1405
1494
|
* On immediate completion, invocation of the handler will be performed in a
|
1406
|
-
* manner equivalent to using boost::asio::
|
1495
|
+
* manner equivalent to using boost::asio::async_immediate().
|
1407
1496
|
*
|
1408
1497
|
* @par Completion Signature
|
1409
1498
|
* @code void(boost::system::error_code, std::size_t) @endcode
|
@@ -1424,19 +1513,29 @@ template <typename AsyncReadStream,
|
|
1424
1513
|
BOOST_ASIO_COMPLETION_TOKEN_FOR(void (boost::system::error_code,
|
1425
1514
|
std::size_t)) ReadToken = default_completion_token_t<
|
1426
1515
|
typename AsyncReadStream::executor_type>>
|
1427
|
-
auto async_read(AsyncReadStream& s, DynamicBuffer_v2 buffers,
|
1516
|
+
inline auto async_read(AsyncReadStream& s, DynamicBuffer_v2 buffers,
|
1428
1517
|
CompletionCondition completion_condition,
|
1429
1518
|
ReadToken&& token = default_completion_token_t<
|
1430
1519
|
typename AsyncReadStream::executor_type>(),
|
1431
1520
|
constraint_t<
|
1432
1521
|
is_dynamic_buffer_v2<DynamicBuffer_v2>::value
|
1522
|
+
> = 0,
|
1523
|
+
constraint_t<
|
1524
|
+
is_completion_condition<CompletionCondition>::value
|
1433
1525
|
> = 0)
|
1434
1526
|
-> decltype(
|
1435
1527
|
async_initiate<ReadToken,
|
1436
1528
|
void (boost::system::error_code, std::size_t)>(
|
1437
1529
|
declval<detail::initiate_async_read_dynbuf_v2<AsyncReadStream>>(),
|
1438
1530
|
token, static_cast<DynamicBuffer_v2&&>(buffers),
|
1439
|
-
static_cast<CompletionCondition&&>(completion_condition)))
|
1531
|
+
static_cast<CompletionCondition&&>(completion_condition)))
|
1532
|
+
{
|
1533
|
+
return async_initiate<ReadToken,
|
1534
|
+
void (boost::system::error_code, std::size_t)>(
|
1535
|
+
detail::initiate_async_read_dynbuf_v2<AsyncReadStream>(s),
|
1536
|
+
token, static_cast<DynamicBuffer_v2&&>(buffers),
|
1537
|
+
static_cast<CompletionCondition&&>(completion_condition));
|
1538
|
+
}
|
1440
1539
|
|
1441
1540
|
/*@}*/
|
1442
1541
|
|
@@ -191,7 +191,10 @@ template <typename SyncRandomAccessReadDevice, typename MutableBufferSequence,
|
|
191
191
|
typename CompletionCondition>
|
192
192
|
std::size_t read_at(SyncRandomAccessReadDevice& d,
|
193
193
|
uint64_t offset, const MutableBufferSequence& buffers,
|
194
|
-
CompletionCondition completion_condition
|
194
|
+
CompletionCondition completion_condition,
|
195
|
+
constraint_t<
|
196
|
+
is_completion_condition<CompletionCondition>::value
|
197
|
+
> = 0);
|
195
198
|
|
196
199
|
/// Attempt to read a certain amount of data at the specified offset before
|
197
200
|
/// returning.
|
@@ -240,7 +243,10 @@ template <typename SyncRandomAccessReadDevice, typename MutableBufferSequence,
|
|
240
243
|
typename CompletionCondition>
|
241
244
|
std::size_t read_at(SyncRandomAccessReadDevice& d,
|
242
245
|
uint64_t offset, const MutableBufferSequence& buffers,
|
243
|
-
CompletionCondition completion_condition, boost::system::error_code& ec
|
246
|
+
CompletionCondition completion_condition, boost::system::error_code& ec,
|
247
|
+
constraint_t<
|
248
|
+
is_completion_condition<CompletionCondition>::value
|
249
|
+
> = 0);
|
244
250
|
|
245
251
|
#if !defined(BOOST_ASIO_NO_EXTENSIONS)
|
246
252
|
#if !defined(BOOST_ASIO_NO_IOSTREAM)
|
@@ -351,7 +357,10 @@ template <typename SyncRandomAccessReadDevice, typename Allocator,
|
|
351
357
|
typename CompletionCondition>
|
352
358
|
std::size_t read_at(SyncRandomAccessReadDevice& d,
|
353
359
|
uint64_t offset, basic_streambuf<Allocator>& b,
|
354
|
-
CompletionCondition completion_condition
|
360
|
+
CompletionCondition completion_condition,
|
361
|
+
constraint_t<
|
362
|
+
is_completion_condition<CompletionCondition>::value
|
363
|
+
> = 0);
|
355
364
|
|
356
365
|
/// Attempt to read a certain amount of data at the specified offset before
|
357
366
|
/// returning.
|
@@ -395,7 +404,10 @@ template <typename SyncRandomAccessReadDevice, typename Allocator,
|
|
395
404
|
typename CompletionCondition>
|
396
405
|
std::size_t read_at(SyncRandomAccessReadDevice& d,
|
397
406
|
uint64_t offset, basic_streambuf<Allocator>& b,
|
398
|
-
CompletionCondition completion_condition, boost::system::error_code& ec
|
407
|
+
CompletionCondition completion_condition, boost::system::error_code& ec,
|
408
|
+
constraint_t<
|
409
|
+
is_completion_condition<CompletionCondition>::value
|
410
|
+
> = 0);
|
399
411
|
|
400
412
|
#endif // !defined(BOOST_ASIO_NO_IOSTREAM)
|
401
413
|
#endif // !defined(BOOST_ASIO_NO_EXTENSIONS)
|
@@ -454,7 +466,7 @@ std::size_t read_at(SyncRandomAccessReadDevice& d,
|
|
454
466
|
* Regardless of whether the asynchronous operation completes immediately or
|
455
467
|
* not, the completion handler will not be invoked from within this function.
|
456
468
|
* On immediate completion, invocation of the handler will be performed in a
|
457
|
-
* manner equivalent to using boost::asio::
|
469
|
+
* manner equivalent to using boost::asio::async_immediate().
|
458
470
|
*
|
459
471
|
* @par Completion Signature
|
460
472
|
* @code void(boost::system::error_code, std::size_t) @endcode
|
@@ -489,15 +501,24 @@ template <typename AsyncRandomAccessReadDevice, typename MutableBufferSequence,
|
|
489
501
|
BOOST_ASIO_COMPLETION_TOKEN_FOR(void (boost::system::error_code,
|
490
502
|
std::size_t)) ReadToken = default_completion_token_t<
|
491
503
|
typename AsyncRandomAccessReadDevice::executor_type>>
|
492
|
-
auto async_read_at(AsyncRandomAccessReadDevice& d,
|
504
|
+
inline auto async_read_at(AsyncRandomAccessReadDevice& d,
|
493
505
|
uint64_t offset, const MutableBufferSequence& buffers,
|
494
506
|
ReadToken&& token = default_completion_token_t<
|
495
|
-
typename AsyncRandomAccessReadDevice::executor_type>()
|
507
|
+
typename AsyncRandomAccessReadDevice::executor_type>(),
|
508
|
+
constraint_t<
|
509
|
+
!is_completion_condition<ReadToken>::value
|
510
|
+
> = 0)
|
496
511
|
-> decltype(
|
497
512
|
async_initiate<ReadToken,
|
498
513
|
void (boost::system::error_code, std::size_t)>(
|
499
514
|
declval<detail::initiate_async_read_at<AsyncRandomAccessReadDevice>>(),
|
500
|
-
token, offset, buffers, transfer_all()))
|
515
|
+
token, offset, buffers, transfer_all()))
|
516
|
+
{
|
517
|
+
return async_initiate<ReadToken,
|
518
|
+
void (boost::system::error_code, std::size_t)>(
|
519
|
+
detail::initiate_async_read_at<AsyncRandomAccessReadDevice>(d),
|
520
|
+
token, offset, buffers, transfer_all());
|
521
|
+
}
|
501
522
|
|
502
523
|
/// Start an asynchronous operation to read a certain amount of data at the
|
503
524
|
/// specified offset.
|
@@ -555,7 +576,7 @@ auto async_read_at(AsyncRandomAccessReadDevice& d,
|
|
555
576
|
* Regardless of whether the asynchronous operation completes immediately or
|
556
577
|
* not, the completion handler will not be invoked from within this function.
|
557
578
|
* On immediate completion, invocation of the handler will be performed in a
|
558
|
-
* manner equivalent to using boost::asio::
|
579
|
+
* manner equivalent to using boost::asio::async_immediate().
|
559
580
|
*
|
560
581
|
* @par Completion Signature
|
561
582
|
* @code void(boost::system::error_code, std::size_t) @endcode
|
@@ -586,17 +607,27 @@ template <typename AsyncRandomAccessReadDevice,
|
|
586
607
|
BOOST_ASIO_COMPLETION_TOKEN_FOR(void (boost::system::error_code,
|
587
608
|
std::size_t)) ReadToken = default_completion_token_t<
|
588
609
|
typename AsyncRandomAccessReadDevice::executor_type>>
|
589
|
-
auto async_read_at(AsyncRandomAccessReadDevice& d,
|
610
|
+
inline auto async_read_at(AsyncRandomAccessReadDevice& d,
|
590
611
|
uint64_t offset, const MutableBufferSequence& buffers,
|
591
612
|
CompletionCondition completion_condition,
|
592
613
|
ReadToken&& token = default_completion_token_t<
|
593
|
-
typename AsyncRandomAccessReadDevice::executor_type>()
|
614
|
+
typename AsyncRandomAccessReadDevice::executor_type>(),
|
615
|
+
constraint_t<
|
616
|
+
is_completion_condition<CompletionCondition>::value
|
617
|
+
> = 0)
|
594
618
|
-> decltype(
|
595
619
|
async_initiate<ReadToken,
|
596
620
|
void (boost::system::error_code, std::size_t)>(
|
597
621
|
declval<detail::initiate_async_read_at<AsyncRandomAccessReadDevice>>(),
|
598
622
|
token, offset, buffers,
|
599
|
-
static_cast<CompletionCondition&&>(completion_condition)))
|
623
|
+
static_cast<CompletionCondition&&>(completion_condition)))
|
624
|
+
{
|
625
|
+
return async_initiate<ReadToken,
|
626
|
+
void (boost::system::error_code, std::size_t)>(
|
627
|
+
detail::initiate_async_read_at<AsyncRandomAccessReadDevice>(d),
|
628
|
+
token, offset, buffers,
|
629
|
+
static_cast<CompletionCondition&&>(completion_condition));
|
630
|
+
}
|
600
631
|
|
601
632
|
#if !defined(BOOST_ASIO_NO_EXTENSIONS)
|
602
633
|
#if !defined(BOOST_ASIO_NO_IOSTREAM)
|
@@ -641,7 +672,7 @@ auto async_read_at(AsyncRandomAccessReadDevice& d,
|
|
641
672
|
* Regardless of whether the asynchronous operation completes immediately or
|
642
673
|
* not, the completion handler will not be invoked from within this function.
|
643
674
|
* On immediate completion, invocation of the handler will be performed in a
|
644
|
-
* manner equivalent to using boost::asio::
|
675
|
+
* manner equivalent to using boost::asio::async_immediate().
|
645
676
|
*
|
646
677
|
* @par Completion Signature
|
647
678
|
* @code void(boost::system::error_code, std::size_t) @endcode
|
@@ -667,16 +698,25 @@ template <typename AsyncRandomAccessReadDevice, typename Allocator,
|
|
667
698
|
BOOST_ASIO_COMPLETION_TOKEN_FOR(void (boost::system::error_code,
|
668
699
|
std::size_t)) ReadToken = default_completion_token_t<
|
669
700
|
typename AsyncRandomAccessReadDevice::executor_type>>
|
670
|
-
auto async_read_at(AsyncRandomAccessReadDevice& d,
|
701
|
+
inline auto async_read_at(AsyncRandomAccessReadDevice& d,
|
671
702
|
uint64_t offset, basic_streambuf<Allocator>& b,
|
672
703
|
ReadToken&& token = default_completion_token_t<
|
673
|
-
typename AsyncRandomAccessReadDevice::executor_type>()
|
704
|
+
typename AsyncRandomAccessReadDevice::executor_type>(),
|
705
|
+
constraint_t<
|
706
|
+
!is_completion_condition<ReadToken>::value
|
707
|
+
> = 0)
|
674
708
|
-> decltype(
|
675
709
|
async_initiate<ReadToken,
|
676
710
|
void (boost::system::error_code, std::size_t)>(
|
677
711
|
declval<detail::initiate_async_read_at_streambuf<
|
678
712
|
AsyncRandomAccessReadDevice>>(),
|
679
|
-
token, offset, &b, transfer_all()))
|
713
|
+
token, offset, &b, transfer_all()))
|
714
|
+
{
|
715
|
+
return async_initiate<ReadToken,
|
716
|
+
void (boost::system::error_code, std::size_t)>(
|
717
|
+
detail::initiate_async_read_at_streambuf<AsyncRandomAccessReadDevice>(d),
|
718
|
+
token, offset, &b, transfer_all());
|
719
|
+
}
|
680
720
|
|
681
721
|
/// Start an asynchronous operation to read a certain amount of data at the
|
682
722
|
/// specified offset.
|
@@ -732,7 +772,7 @@ auto async_read_at(AsyncRandomAccessReadDevice& d,
|
|
732
772
|
* Regardless of whether the asynchronous operation completes immediately or
|
733
773
|
* not, the completion handler will not be invoked from within this function.
|
734
774
|
* On immediate completion, invocation of the handler will be performed in a
|
735
|
-
* manner equivalent to using boost::asio::
|
775
|
+
* manner equivalent to using boost::asio::async_immediate().
|
736
776
|
*
|
737
777
|
* @par Completion Signature
|
738
778
|
* @code void(boost::system::error_code, std::size_t) @endcode
|
@@ -753,17 +793,27 @@ template <typename AsyncRandomAccessReadDevice,
|
|
753
793
|
BOOST_ASIO_COMPLETION_TOKEN_FOR(void (boost::system::error_code,
|
754
794
|
std::size_t)) ReadToken = default_completion_token_t<
|
755
795
|
typename AsyncRandomAccessReadDevice::executor_type>>
|
756
|
-
auto async_read_at(AsyncRandomAccessReadDevice& d, uint64_t offset,
|
796
|
+
inline auto async_read_at(AsyncRandomAccessReadDevice& d, uint64_t offset,
|
757
797
|
basic_streambuf<Allocator>& b, CompletionCondition completion_condition,
|
758
798
|
ReadToken&& token = default_completion_token_t<
|
759
|
-
typename AsyncRandomAccessReadDevice::executor_type>()
|
799
|
+
typename AsyncRandomAccessReadDevice::executor_type>(),
|
800
|
+
constraint_t<
|
801
|
+
is_completion_condition<CompletionCondition>::value
|
802
|
+
> = 0)
|
760
803
|
-> decltype(
|
761
804
|
async_initiate<ReadToken,
|
762
805
|
void (boost::system::error_code, std::size_t)>(
|
763
806
|
declval<detail::initiate_async_read_at_streambuf<
|
764
807
|
AsyncRandomAccessReadDevice>>(),
|
765
808
|
token, offset, &b,
|
766
|
-
static_cast<CompletionCondition&&>(completion_condition)))
|
809
|
+
static_cast<CompletionCondition&&>(completion_condition)))
|
810
|
+
{
|
811
|
+
return async_initiate<ReadToken,
|
812
|
+
void (boost::system::error_code, std::size_t)>(
|
813
|
+
detail::initiate_async_read_at_streambuf<AsyncRandomAccessReadDevice>(d),
|
814
|
+
token, offset, &b,
|
815
|
+
static_cast<CompletionCondition&&>(completion_condition));
|
816
|
+
}
|
767
817
|
|
768
818
|
#endif // !defined(BOOST_ASIO_NO_IOSTREAM)
|
769
819
|
#endif // !defined(BOOST_ASIO_NO_EXTENSIONS)
|