passenger 6.0.7 → 6.0.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG +29 -0
- data/CONTRIBUTORS +1 -0
- data/README.md +2 -9
- data/build/common_library.rb +4 -4
- data/build/packaging.rb +4 -2
- data/build/support/cxx_dependency_map.rb +1 -0
- data/dev/copy_boost_headers +1 -1
- data/resources/release.txt +1 -0
- data/resources/templates/config/installation_utils/user_support_binaries_dir_not_writable.txt.erb +1 -0
- data/resources/templates/standalone/global.erb +4 -0
- data/src/agent/Core/AdminPanelConnector.h +1 -1
- data/src/agent/Core/ApplicationPool/Group.h +1 -1
- data/src/agent/Core/ApplicationPool/Group/InternalUtils.cpp +2 -2
- data/src/agent/Core/ApplicationPool/Group/OutOfBandWork.cpp +1 -1
- data/src/agent/Core/ApplicationPool/Options.h +2 -2
- data/src/agent/Core/ApplicationPool/Pool.h +1 -1
- data/src/agent/Core/ApplicationPool/Pool/ProcessUtils.cpp +1 -1
- data/src/agent/Core/Config.h +2 -2
- data/src/agent/Core/Controller/Config.h +2 -2
- data/src/agent/Core/SpawningKit/Handshake/BackgroundIOCapturer.h +1 -1
- data/src/agent/Core/SpawningKit/Handshake/Perform.h +1 -1
- data/src/agent/Core/SpawningKit/PipeWatcher.h +1 -1
- data/src/agent/Core/SpawningKit/SmartSpawner.h +1 -1
- data/src/agent/Core/SpawningKit/Spawner.h +1 -0
- data/src/agent/Core/TelemetryCollector.h +1 -1
- data/src/agent/Shared/ApiServerUtils.h +1 -1
- data/src/agent/Watchdog/Config.h +1 -1
- data/src/agent/Watchdog/InstanceDirToucher.cpp +1 -1
- data/src/agent/Watchdog/WatchdogMain.cpp +1 -1
- data/src/cxx_supportlib/BackgroundEventLoop.cpp +1 -1
- data/src/cxx_supportlib/ConfigKit/Schema.h +1 -1
- data/src/cxx_supportlib/ConfigKit/Translator.h +1 -1
- data/src/cxx_supportlib/Constants.h +2 -2
- data/src/cxx_supportlib/FileTools/FileManip.cpp +10 -1
- data/src/cxx_supportlib/FileTools/FileManip.h +16 -0
- data/src/cxx_supportlib/IOTools/BufferedIO.h +1 -1
- data/src/cxx_supportlib/IOTools/MessageIO.h +1 -1
- data/src/cxx_supportlib/SafeLibev.h +1 -1
- data/src/cxx_supportlib/ServerKit/AcceptLoadBalancer.h +1 -1
- data/src/cxx_supportlib/SystemTools/ProcessMetricsCollector.h +1 -1
- data/src/cxx_supportlib/WebSocketCommandReverseServer.h +9 -12
- data/src/cxx_supportlib/oxt/dynamic_thread_group.hpp +5 -1
- data/src/cxx_supportlib/oxt/thread.hpp +1 -1
- data/src/cxx_supportlib/vendor-copy/websocketpp/changelog.md +107 -5
- data/src/cxx_supportlib/vendor-copy/websocketpp/readme.md +2 -2
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/close.hpp +12 -1
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/common/asio.hpp +13 -3
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/common/memory.hpp +0 -1
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/common/thread.hpp +6 -2
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/config/core.hpp +13 -1
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/connection.hpp +6 -15
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/endpoint.hpp +24 -24
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/extensions/permessage_deflate/disabled.hpp +1 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/extensions/permessage_deflate/enabled.hpp +84 -19
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/frame.hpp +3 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/http/impl/parser.hpp +4 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/http/parser.hpp +10 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/impl/connection_impl.hpp +150 -147
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/impl/endpoint_impl.hpp +4 -4
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/processors/base.hpp +1 -1
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/processors/hybi13.hpp +47 -25
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/roles/client_endpoint.hpp +3 -3
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/roles/server_endpoint.hpp +14 -9
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/sha1/sha1.hpp +189 -189
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/asio/connection.hpp +59 -66
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/asio/endpoint.hpp +73 -38
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/asio/security/none.hpp +9 -7
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/asio/security/tls.hpp +12 -22
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/base/endpoint.hpp +1 -1
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/debug/connection.hpp +11 -11
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/debug/endpoint.hpp +1 -1
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/iostream/connection.hpp +13 -13
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/iostream/endpoint.hpp +3 -3
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/stub/connection.hpp +8 -8
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/uri.hpp +1 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/utilities.hpp +2 -4
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/version.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/compare.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/detail/case_conv.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/detail/classification.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/detail/finder.hpp +15 -15
- data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/detail/formatter.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/detail/trim.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/find_format.hpp +1 -2
- data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/formatter.hpp +0 -1
- data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/iter_find.hpp +8 -0
- data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/predicate.hpp +4 -3
- data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/split.hpp +12 -0
- data/src/cxx_supportlib/vendor-modified/boost/array.hpp +2 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio.hpp +47 -17
- data/src/cxx_supportlib/vendor-modified/boost/asio/any_io_executor.hpp +73 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/associated_allocator.hpp +2 -8
- data/src/cxx_supportlib/vendor-modified/boost/asio/associated_executor.hpp +37 -20
- data/src/cxx_supportlib/vendor-modified/boost/asio/async_result.hpp +426 -65
- data/src/cxx_supportlib/vendor-modified/boost/asio/awaitable.hpp +135 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_datagram_socket.hpp +432 -257
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_deadline_timer.hpp +178 -113
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_io_object.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_raw_socket.hpp +433 -257
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_seq_packet_socket.hpp +286 -143
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_serial_port.hpp +315 -96
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_signal_set.hpp +241 -64
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket.hpp +364 -227
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket_acceptor.hpp +976 -461
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket_iostream.hpp +21 -44
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket_streambuf.hpp +15 -35
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_stream_socket.hpp +329 -197
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_streambuf.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_streambuf_fwd.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_waitable_timer.hpp +221 -115
- data/src/cxx_supportlib/vendor-modified/boost/asio/bind_executor.hpp +11 -47
- data/src/cxx_supportlib/vendor-modified/boost/asio/buffer.hpp +416 -89
- data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_read_stream.hpp +23 -27
- data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_read_stream_fwd.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_stream.hpp +31 -30
- data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_stream_fwd.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_write_stream.hpp +23 -27
- data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_write_stream_fwd.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/buffers_iterator.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/co_spawn.hpp +473 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/completion_condition.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/compose.hpp +138 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/connect.hpp +118 -102
- data/src/cxx_supportlib/vendor-modified/boost/asio/coroutine.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/deadline_timer.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/defer.hpp +33 -10
- data/src/cxx_supportlib/vendor-modified/boost/asio/detached.hpp +114 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/array.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/array_fwd.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/assert.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/atomic_count.hpp +20 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/base_from_completion_cond.hpp +4 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/bind_handler.hpp +145 -27
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/blocking_executor_op.hpp +109 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/buffer_resize_guard.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/buffer_sequence_adapter.hpp +107 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/buffered_stream_storage.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/bulk_executor_op.hpp +90 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/call_stack.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/chrono.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/chrono_time_traits.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/completion_handler.hpp +11 -6
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/concurrency_hint.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/conditionally_enabled_event.hpp +9 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/conditionally_enabled_mutex.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/config.hpp +481 -129
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/consuming_buffers.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/cstddef.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/cstdint.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/date_time_fwd.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/deadline_timer_service.hpp +29 -12
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/dependent_type.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/descriptor_ops.hpp +25 -7
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/descriptor_read_op.hpp +36 -16
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/descriptor_write_op.hpp +36 -16
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/dev_poll_reactor.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/epoll_reactor.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/event.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/eventfd_select_interrupter.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/executor_function.hpp +205 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/executor_op.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/fd_set_adapter.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/fenced_block.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/functional.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/future.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/gcc_arm_fenced_block.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/gcc_hppa_fenced_block.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/gcc_sync_fenced_block.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/gcc_x86_fenced_block.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/global.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_alloc_helpers.hpp +55 -6
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_cont_helpers.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_invoke_helpers.hpp +24 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_tracking.hpp +27 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_type_requirements.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_work.hpp +378 -35
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/hash_map.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/buffer_sequence_adapter.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/descriptor_ops.ipp +218 -84
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/dev_poll_reactor.hpp +1 -1
- 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/epoll_reactor.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/epoll_reactor.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/eventfd_select_interrupter.ipp +12 -8
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/handler_tracking.ipp +40 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/kqueue_reactor.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/kqueue_reactor.ipp +6 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/null_event.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/pipe_select_interrupter.ipp +11 -6
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_event.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_mutex.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_thread.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_tss_ptr.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/reactive_descriptor_service.ipp +5 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/reactive_serial_port_service.ipp +16 -19
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/reactive_socket_service_base.ipp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/resolver_service_base.ipp +37 -33
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/scheduler.ipp +87 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/select_reactor.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/select_reactor.ipp +8 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/service_registry.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/service_registry.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/signal_set_service.ipp +22 -23
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/socket_ops.ipp +674 -283
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/socket_select_interrupter.ipp +15 -6
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_executor_service.hpp +211 -5
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_executor_service.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_service.hpp +9 -10
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_service.ipp +6 -5
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/throw_error.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/timer_queue_ptime.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/timer_queue_set.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_control.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_object_impl.hpp +177 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/is_buffer_sequence.hpp +65 -16
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/is_executor.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/keyword_tss_ptr.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/kqueue_reactor.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/local_free_on_block_exit.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/macos_fenced_block.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/memory.hpp +4 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/mutex.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/non_const_lvalue.hpp +56 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/noncopyable.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_event.hpp +7 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_fenced_block.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_global.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_mutex.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_reactor.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_signal_blocker.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_socket_service.hpp +63 -52
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_static_mutex.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_thread.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_tss_ptr.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/object_pool.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/old_win_sdk_compat.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/op_queue.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/operation.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/pipe_select_interrupter.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/pop_options.hpp +14 -8
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_event.hpp +15 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_fd_set_adapter.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_global.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_mutex.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_signal_blocker.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_static_mutex.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_thread.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_tss_ptr.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/push_options.hpp +16 -6
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_descriptor_service.hpp +62 -34
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_null_buffers_op.hpp +15 -7
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_serial_port_service.hpp +15 -14
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_accept_op.hpp +53 -28
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_connect_op.hpp +20 -10
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_recv_op.hpp +43 -19
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_recvfrom_op.hpp +42 -16
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_recvmsg_op.hpp +26 -13
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_send_op.hpp +48 -20
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_sendto_op.hpp +43 -17
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_service.hpp +82 -80
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_service_base.hpp +77 -47
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_wait_op.hpp +15 -7
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor_fwd.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor_op.hpp +4 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor_op_queue.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/recycling_allocator.hpp +16 -14
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/regex_fwd.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolve_endpoint_op.hpp +31 -13
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolve_op.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolve_query_op.hpp +31 -15
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolver_service.hpp +18 -18
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolver_service_base.hpp +22 -19
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scheduler.hpp +21 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scheduler_operation.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scheduler_thread_info.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scoped_lock.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scoped_ptr.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/select_interrupter.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/select_reactor.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/service_registry.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_blocker.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_handler.hpp +11 -7
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_init.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_op.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_set_service.hpp +24 -12
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_holder.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_ops.hpp +47 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_option.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_select_interrupter.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_types.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/solaris_fenced_block.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/source_location.hpp +47 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/static_mutex.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_event.hpp +13 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_fenced_block.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_global.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_mutex.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_static_mutex.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_thread.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/strand_executor_service.hpp +26 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/strand_service.hpp +5 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/string_view.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread_context.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread_group.hpp +7 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread_info_base.hpp +67 -5
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/throw_error.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/throw_exception.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue_base.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue_ptime.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue_set.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_scheduler.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_scheduler_fwd.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/tss_ptr.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/type_traits.hpp +65 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/variadic_templates.hpp +177 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/wait_handler.hpp +13 -8
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/wait_op.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/winsock_init.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/work_dispatcher.hpp +84 -8
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/wrapped_handler.hpp +46 -10
- data/src/cxx_supportlib/vendor-modified/boost/asio/dispatch.hpp +27 -14
- data/src/cxx_supportlib/vendor-modified/boost/asio/error.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution.hpp +48 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/allocator.hpp +251 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/any_executor.hpp +2266 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/bad_executor.hpp +49 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/blocking.hpp +1353 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/blocking_adaptation.hpp +1066 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/bulk_execute.hpp +394 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/bulk_guarantee.hpp +1020 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/connect.hpp +490 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/context.hpp +187 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/context_as.hpp +203 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/detail/as_invocable.hpp +154 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/detail/as_operation.hpp +107 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/detail/as_receiver.hpp +130 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/detail/bulk_sender.hpp +263 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/detail/submit_receiver.hpp +235 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/detail/void_receiver.hpp +92 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/execute.hpp +270 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/executor.hpp +240 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/impl/bad_executor.ipp +42 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/impl/receiver_invocation_error.ipp +38 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/invocable_archetype.hpp +73 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/mapping.hpp +919 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/occupancy.hpp +180 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/operation_state.hpp +96 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/outstanding_work.hpp +723 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/prefer_only.hpp +329 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/receiver.hpp +282 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/receiver_invocation_error.hpp +50 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/relationship.hpp +722 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/schedule.hpp +294 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/scheduler.hpp +88 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/sender.hpp +313 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/set_done.hpp +257 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/set_error.hpp +257 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/set_value.hpp +490 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/start.hpp +254 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/submit.hpp +454 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution_context.hpp +3 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/executor.hpp +8 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/executor_work_guard.hpp +129 -12
- data/src/cxx_supportlib/vendor-modified/boost/asio/generic/basic_endpoint.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/generic/datagram_protocol.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/generic/detail/endpoint.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/generic/detail/impl/endpoint.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/generic/raw_protocol.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/generic/seq_packet_protocol.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/generic/stream_protocol.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/handler_alloc_hook.hpp +29 -6
- data/src/cxx_supportlib/vendor-modified/boost/asio/handler_continuation_hook.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/handler_invoke_hook.hpp +30 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/high_resolution_timer.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/awaitable.hpp +438 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/buffered_read_stream.hpp +154 -56
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/buffered_write_stream.hpp +148 -52
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/co_spawn.hpp +300 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/compose.hpp +637 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/connect.hpp +299 -243
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/defer.hpp +204 -33
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/detached.hpp +132 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/dispatch.hpp +199 -34
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/error.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/execution_context.hpp +8 -6
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/execution_context.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/executor.hpp +16 -101
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/executor.ipp +6 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/handler_alloc_hook.ipp +14 -5
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/io_context.hpp +209 -114
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/io_context.ipp +4 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/multiple_exceptions.ipp +51 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/post.hpp +204 -33
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read.hpp +619 -132
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_at.hpp +194 -90
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_until.hpp +2278 -445
- data/src/cxx_supportlib/vendor-modified/boost/asio/{experimental/impl → impl}/redirect_error.hpp +148 -52
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/serial_port_base.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/serial_port_base.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/spawn.hpp +59 -68
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/src.cpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/src.hpp +4 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/system_context.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/system_context.ipp +25 -6
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/system_executor.hpp +114 -13
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/thread_pool.hpp +261 -38
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/thread_pool.ipp +73 -8
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/use_awaitable.hpp +281 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/use_future.hpp +131 -40
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/write.hpp +562 -132
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/write_at.hpp +185 -91
- data/src/cxx_supportlib/vendor-modified/boost/asio/io_context.hpp +714 -60
- data/src/cxx_supportlib/vendor-modified/boost/asio/io_context_strand.hpp +46 -54
- data/src/cxx_supportlib/vendor-modified/boost/asio/io_service.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/io_service_strand.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address.hpp +35 -27
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v4.hpp +32 -26
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v4_iterator.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v4_range.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v6.hpp +41 -36
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v6_iterator.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v6_range.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/bad_address_cast.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_endpoint.hpp +24 -23
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver.hpp +200 -190
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_entry.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_iterator.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_query.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_results.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/detail/endpoint.hpp +21 -19
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/detail/impl/endpoint.ipp +10 -10
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/detail/socket_option.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/host_name.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/icmp.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address.ipp +23 -18
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v4.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v4.ipp +11 -11
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v6.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v6.ipp +26 -26
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/basic_endpoint.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/host_name.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/network_v4.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/network_v4.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/network_v6.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/network_v6.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/multicast.hpp +8 -8
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/network_v4.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/network_v6.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/resolver_base.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/resolver_query_base.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/tcp.hpp +9 -9
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/udp.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/unicast.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/v6_only.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/is_applicable_property.hpp +63 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/is_executor.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/is_read_buffered.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/is_write_buffered.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/local/basic_endpoint.hpp +10 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/local/connect_pair.hpp +14 -19
- data/src/cxx_supportlib/vendor-modified/boost/asio/local/datagram_protocol.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/local/detail/endpoint.hpp +7 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/local/detail/impl/endpoint.ipp +8 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/local/stream_protocol.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/multiple_exceptions.hpp +60 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/packaged_task.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/placeholders.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/posix/basic_descriptor.hpp +189 -74
- data/src/cxx_supportlib/vendor-modified/boost/asio/posix/basic_stream_descriptor.hpp +180 -72
- data/src/cxx_supportlib/vendor-modified/boost/asio/posix/descriptor.hpp +5 -612
- data/src/cxx_supportlib/vendor-modified/boost/asio/posix/descriptor_base.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/posix/stream_descriptor.hpp +3 -326
- data/src/cxx_supportlib/vendor-modified/boost/asio/post.hpp +29 -10
- data/src/cxx_supportlib/vendor-modified/boost/asio/prefer.hpp +660 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/query.hpp +300 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/read.hpp +398 -57
- data/src/cxx_supportlib/vendor-modified/boost/asio/read_at.hpp +51 -28
- data/src/cxx_supportlib/vendor-modified/boost/asio/read_until.hpp +1460 -423
- data/src/cxx_supportlib/vendor-modified/boost/asio/{experimental/redirect_error.hpp → redirect_error.hpp} +9 -10
- data/src/cxx_supportlib/vendor-modified/boost/asio/require.hpp +528 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/require_concept.hpp +314 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/serial_port.hpp +3 -736
- data/src/cxx_supportlib/vendor-modified/boost/asio/serial_port_base.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/signal_set.hpp +3 -422
- data/src/cxx_supportlib/vendor-modified/boost/asio/socket_base.hpp +26 -26
- data/src/cxx_supportlib/vendor-modified/boost/asio/spawn.hpp +13 -5
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/context.hpp +4 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/context_base.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/buffered_handshake_op.hpp +6 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/engine.hpp +6 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/handshake_op.hpp +6 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/impl/engine.ipp +37 -10
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/impl/openssl_init.ipp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/io.hpp +51 -8
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/openssl_init.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/openssl_types.hpp +5 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/password_callback.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/read_op.hpp +6 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/shutdown_op.hpp +17 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/stream_core.hpp +41 -6
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/verify_callback.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/write_op.hpp +11 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/error.hpp +21 -7
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/host_name_verification.hpp +92 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/context.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/context.ipp +44 -10
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/error.ipp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/host_name_verification.ipp +75 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/rfc2818_verification.ipp +5 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/src.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/rfc2818_verification.hpp +7 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/stream.hpp +235 -97
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/stream_base.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/verify_context.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/verify_mode.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/static_thread_pool.hpp +33 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/steady_timer.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/strand.hpp +264 -13
- data/src/cxx_supportlib/vendor-modified/boost/asio/streambuf.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/system_context.hpp +16 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/system_executor.hpp +558 -25
- data/src/cxx_supportlib/vendor-modified/boost/asio/system_timer.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/this_coro.hpp +47 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/thread_pool.hpp +917 -38
- data/src/cxx_supportlib/vendor-modified/boost/asio/time_traits.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/bulk_execute_free.hpp +116 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/bulk_execute_member.hpp +116 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/connect_free.hpp +114 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/connect_member.hpp +114 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/equality_comparable.hpp +102 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/execute_free.hpp +110 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/execute_member.hpp +110 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/prefer_free.hpp +110 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/prefer_member.hpp +110 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/query_free.hpp +110 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/query_member.hpp +110 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/query_static_constexpr_member.hpp +110 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/require_concept_free.hpp +110 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/require_concept_member.hpp +110 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/require_free.hpp +110 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/require_member.hpp +110 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/schedule_free.hpp +110 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/schedule_member.hpp +110 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/set_done_free.hpp +110 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/set_done_member.hpp +110 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/set_error_free.hpp +114 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/set_error_member.hpp +114 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/set_value_free.hpp +236 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/set_value_member.hpp +236 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/start_free.hpp +110 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/start_member.hpp +110 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/static_query.hpp +110 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/static_require.hpp +125 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/static_require_concept.hpp +125 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/submit_free.hpp +114 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/submit_member.hpp +114 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ts/buffer.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ts/executor.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/ts/internet.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ts/io_context.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ts/net.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ts/netfwd.hpp +101 -36
- data/src/cxx_supportlib/vendor-modified/boost/asio/ts/socket.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ts/timer.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/unyield.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/use_awaitable.hpp +171 -0
- 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 +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/wait_traits.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_object_handle.hpp +295 -42
- data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_overlapped_handle.hpp +363 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_random_access_handle.hpp +186 -72
- data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_stream_handle.hpp +188 -73
- data/src/cxx_supportlib/vendor-modified/boost/asio/windows/object_handle.hpp +3 -346
- data/src/cxx_supportlib/vendor-modified/boost/asio/windows/overlapped_handle.hpp +4 -296
- data/src/cxx_supportlib/vendor-modified/boost/asio/windows/overlapped_ptr.hpp +38 -9
- data/src/cxx_supportlib/vendor-modified/boost/asio/windows/random_access_handle.hpp +3 -344
- data/src/cxx_supportlib/vendor-modified/boost/asio/windows/stream_handle.hpp +3 -328
- data/src/cxx_supportlib/vendor-modified/boost/asio/write.hpp +372 -54
- data/src/cxx_supportlib/vendor-modified/boost/asio/write_at.hpp +51 -28
- data/src/cxx_supportlib/vendor-modified/boost/asio/yield.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/assert/source_location.hpp +93 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic.hpp +9 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/atomic.hpp +178 -11
- data/src/cxx_supportlib/vendor-modified/boost/atomic/atomic_flag.hpp +12 -3
- data/src/cxx_supportlib/vendor-modified/boost/atomic/atomic_ref.hpp +85 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/capabilities.hpp +2 -191
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/addressof.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/aligned_variable.hpp +57 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/atomic_flag_impl.hpp +129 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/{atomic_template.hpp → atomic_impl.hpp} +327 -429
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/atomic_ref_impl.hpp +1126 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/bitwise_cast.hpp +23 -4
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/bitwise_fp_cast.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/capabilities.hpp +217 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_arch_gcc_aarch32.hpp +46 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_arch_gcc_aarch64.hpp +58 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/{caps_gcc_alpha.hpp → caps_arch_gcc_alpha.hpp} +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/{hwcaps_gcc_arm.hpp → caps_arch_gcc_arm.hpp} +37 -8
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/{hwcaps_gcc_ppc.hpp → caps_arch_gcc_ppc.hpp} +19 -6
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/{caps_gcc_sparc.hpp → caps_arch_gcc_sparc.hpp} +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/{hwcaps_gcc_x86.hpp → caps_arch_gcc_x86.hpp} +22 -6
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/{caps_msvc_arm.hpp → caps_arch_msvc_arm.hpp} +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/{caps_msvc_x86.hpp → caps_arch_msvc_x86.hpp} +12 -6
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_gcc_atomic.hpp +100 -75
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_gcc_sync.hpp +0 -7
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/cas_based_exchange.hpp +50 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/classify.hpp +81 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/config.hpp +39 -15
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_operations.hpp +50 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_operations_fwd.hpp +38 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_gcc_aarch32.hpp +1121 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_gcc_aarch64.hpp +1909 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/{ops_gcc_alpha.hpp → core_arch_ops_gcc_alpha.hpp} +280 -289
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/{ops_gcc_arm.hpp → core_arch_ops_gcc_arm.hpp} +467 -447
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/{ops_gcc_ppc.hpp → core_arch_ops_gcc_ppc.hpp} +75 -94
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/{ops_gcc_sparc.hpp → core_arch_ops_gcc_sparc.hpp} +33 -58
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/{ops_gcc_x86_dcas.hpp → core_arch_ops_gcc_x86.hpp} +507 -20
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/{ops_msvc_arm.hpp → core_arch_ops_msvc_arm.hpp} +58 -54
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/{ops_msvc_x86.hpp → core_arch_ops_msvc_x86.hpp} +69 -101
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_operations.hpp +49 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_operations_emulated.hpp +195 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_operations_emulated_fwd.hpp +38 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_operations_fwd.hpp +38 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/{ops_cas_based.hpp → core_ops_cas_based.hpp} +9 -22
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_ops_gcc_atomic.hpp +306 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/{ops_gcc_sync.hpp → core_ops_gcc_sync.hpp} +75 -52
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/{ops_linux_arm.hpp → core_ops_linux_arm.hpp} +32 -43
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_ops_windows.hpp +201 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/{ops_extending_cas_based.hpp → extending_cas_based_arithmetic.hpp} +12 -9
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_fp_operations_fwd.hpp +4 -1
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_fp_ops_emulated.hpp +23 -12
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_fp_ops_generic.hpp +12 -9
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_operations_fwd.hpp +4 -1
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_emulated.hpp +60 -40
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_gcc_aarch32.hpp +1060 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_gcc_aarch64.hpp +1330 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_gcc_arm.hpp +363 -355
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_gcc_ppc.hpp +94 -91
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_gcc_x86.hpp +232 -102
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_generic.hpp +9 -17
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_msvc_arm.hpp +6 -4
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_msvc_x86.hpp +119 -92
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_operations.hpp +41 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_gcc_aarch32.hpp +60 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_gcc_aarch64.hpp +58 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_gcc_alpha.hpp +53 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_gcc_arm.hpp +90 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_gcc_ppc.hpp +68 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_gcc_sparc.hpp +70 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_gcc_x86.hpp +69 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_msvc_arm.hpp +66 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_msvc_x86.hpp +66 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_operations.hpp +41 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_operations_emulated.hpp +50 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_ops_gcc_atomic.hpp +75 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_ops_gcc_sync.hpp +53 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_ops_linux_arm.hpp +64 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_ops_windows.hpp +67 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/footer.hpp +24 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fp_operations_fwd.hpp +4 -1
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fp_ops_emulated.hpp +14 -8
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fp_ops_generic.hpp +6 -3
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/futex.hpp +147 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/gcc_arm_asm_common.hpp +75 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/gcc_atomic_memory_order_utils.hpp +66 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/header.hpp +72 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/{integral_extend.hpp → integral_conversions.hpp} +8 -5
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/interlocked.hpp +35 -11
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/intptr.hpp +46 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/lock_pool.hpp +151 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/memory_order_utils.hpp +47 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/once_flag.hpp +43 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_aarch32_common.hpp +53 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_aarch64_common.hpp +53 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_arm_common.hpp +8 -79
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_ppc_common.hpp +4 -1
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_msvc_common.hpp +7 -2
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/pause.hpp +23 -5
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/platform.hpp +64 -27
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/storage_traits.hpp +187 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/alignment_of.hpp +51 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_floating_point.hpp +3 -2
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_trivially_copyable.hpp +45 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_capabilities.hpp +363 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_caps_dragonfly_umtx.hpp +30 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_caps_freebsd_umtx.hpp +40 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_caps_futex.hpp +31 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_caps_windows.hpp +55 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_operations.hpp +28 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_operations_fwd.hpp +43 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_ops_dragonfly_umtx.hpp +75 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_ops_emulated.hpp +97 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_ops_freebsd_umtx.hpp +119 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_ops_futex.hpp +111 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_ops_generic.hpp +143 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_ops_windows.hpp +150 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/fences.hpp +7 -18
- data/src/cxx_supportlib/vendor-modified/boost/atomic/ipc_atomic.hpp +85 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/ipc_atomic_flag.hpp +40 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/ipc_atomic_ref.hpp +85 -0
- data/src/cxx_supportlib/vendor-modified/boost/bind.hpp +20 -1
- data/src/cxx_supportlib/vendor-modified/boost/bind/bind.hpp +11 -11
- data/src/cxx_supportlib/vendor-modified/boost/bind/bind_template.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/bind/mem_fn.hpp +25 -11
- data/src/cxx_supportlib/vendor-modified/boost/bind/mem_fn_cc.hpp +18 -18
- data/src/cxx_supportlib/vendor-modified/boost/bind/placeholders.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/bind/storage.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/posix/chrono.hpp +26 -6
- data/src/cxx_supportlib/vendor-modified/boost/chrono/system_clocks.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/circular_buffer.hpp +8 -5
- data/src/cxx_supportlib/vendor-modified/boost/circular_buffer/base.hpp +107 -105
- data/src/cxx_supportlib/vendor-modified/boost/circular_buffer/details.hpp +21 -21
- data/src/cxx_supportlib/vendor-modified/boost/circular_buffer/space_optimized.hpp +25 -31
- data/src/cxx_supportlib/vendor-modified/boost/concept/assert.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/abi_prefix.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/abi_suffix.hpp +1 -3
- data/src/cxx_supportlib/vendor-modified/boost/config/auto_link.hpp +72 -22
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/borland.hpp +4 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/clang.hpp +13 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/codegear.hpp +155 -10
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/common_edg.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/cray.hpp +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/digitalmars.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/gcc.hpp +21 -5
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/gcc_xml.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/hp_acc.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/intel.hpp +7 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/metrowerks.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/mpw.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/pathscale.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/sunpro_cc.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/vacpp.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/visualc.hpp +15 -7
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/xlcpp.hpp +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/xlcpp_zos.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/detail/select_compiler_config.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/detail/select_stdlib_config.hpp +13 -2
- data/src/cxx_supportlib/vendor-modified/boost/config/detail/suffix.hpp +68 -4
- data/src/cxx_supportlib/vendor-modified/boost/config/platform/cygwin.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/platform/vxworks.hpp +63 -74
- data/src/cxx_supportlib/vendor-modified/boost/config/requires_threads.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/dinkumware.hpp +10 -4
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libcomo.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libcpp.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libstdcpp3.hpp +9 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/modena.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/msl.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/roguewave.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/sgi.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/stlport.hpp +6 -5
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/vacpp.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/xlcpp_zos.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/user.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/config/workaround.hpp +15 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/adaptive_pool.hpp +10 -10
- data/src/cxx_supportlib/vendor-modified/boost/container/allocator.hpp +13 -13
- data/src/cxx_supportlib/vendor-modified/boost/container/allocator_traits.hpp +19 -3
- data/src/cxx_supportlib/vendor-modified/boost/container/container_fwd.hpp +117 -29
- data/src/cxx_supportlib/vendor-modified/boost/container/deque.hpp +250 -208
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/advanced_insert_int.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/alloc_helpers.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/alloc_lib.h +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/block_list.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/block_slist.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/compare_functors.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/container_or_allocator_rebind.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/container_rebind.hpp +21 -116
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/copy_move_algo.hpp +11 -8
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/dispatch_uses_allocator.hpp +14 -14
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/flat_tree.hpp +30 -24
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/is_container.hpp +7 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/iterators.hpp +133 -117
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/mpl.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/pair.hpp +83 -18
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/thread_mutex.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/tree.hpp +103 -69
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/value_functors.hpp +6 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/version_type.hpp +3 -12
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/workaround.hpp +6 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/flat_map.hpp +51 -45
- data/src/cxx_supportlib/vendor-modified/boost/container/flat_set.hpp +24 -22
- data/src/cxx_supportlib/vendor-modified/boost/container/list.hpp +83 -77
- data/src/cxx_supportlib/vendor-modified/boost/container/map.hpp +82 -87
- data/src/cxx_supportlib/vendor-modified/boost/container/new_allocator.hpp +17 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/node_allocator.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/options.hpp +278 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/flat_set.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/global_resource.hpp +1 -4
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/memory_resource.hpp +30 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/monotonic_buffer_resource.hpp +5 -4
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/resource_adaptor.hpp +90 -6
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/synchronized_pool_resource.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/unsynchronized_pool_resource.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/container/scoped_allocator.hpp +80 -80
- data/src/cxx_supportlib/vendor-modified/boost/container/set.hpp +63 -67
- data/src/cxx_supportlib/vendor-modified/boost/container/slist.hpp +48 -42
- data/src/cxx_supportlib/vendor-modified/boost/container/small_vector.hpp +150 -105
- data/src/cxx_supportlib/vendor-modified/boost/container/stable_vector.hpp +174 -155
- data/src/cxx_supportlib/vendor-modified/boost/container/static_vector.hpp +157 -105
- data/src/cxx_supportlib/vendor-modified/boost/container/string.hpp +54 -53
- data/src/cxx_supportlib/vendor-modified/boost/container/throw_exception.hpp +15 -15
- data/src/cxx_supportlib/vendor-modified/boost/container/vector.hpp +207 -207
- data/src/cxx_supportlib/vendor-modified/boost/container_hash/extensions.hpp +0 -51
- data/src/cxx_supportlib/vendor-modified/boost/container_hash/hash.hpp +4 -3
- data/src/cxx_supportlib/vendor-modified/boost/core/addressof.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/core/alloc_construct.hpp +169 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/allocator_access.hpp +633 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/checked_delete.hpp +6 -4
- data/src/cxx_supportlib/vendor-modified/boost/core/default_allocator.hpp +148 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/empty_value.hpp +16 -6
- data/src/cxx_supportlib/vendor-modified/boost/core/first_scalar.hpp +45 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/lightweight_test.hpp +157 -50
- data/src/cxx_supportlib/vendor-modified/boost/core/lightweight_test_trait.hpp +82 -1
- data/src/cxx_supportlib/vendor-modified/boost/core/no_exceptions_support.hpp +14 -2
- data/src/cxx_supportlib/vendor-modified/boost/core/noinit_adaptor.hpp +87 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/nvp.hpp +57 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/pointer_traits.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/quick_exit.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/core/ref.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/core/swap.hpp +6 -3
- data/src/cxx_supportlib/vendor-modified/boost/core/typeinfo.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/core/uncaught_exceptions.hpp +155 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/use_default.hpp +17 -0
- data/src/cxx_supportlib/vendor-modified/boost/cstdint.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/current_function.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/date_time/c_time.hpp +9 -4
- data/src/cxx_supportlib/vendor-modified/boost/date_time/compiler_config.hpp +4 -17
- data/src/cxx_supportlib/vendor-modified/boost/date_time/constrained_value.hpp +19 -11
- data/src/cxx_supportlib/vendor-modified/boost/date_time/date.hpp +23 -23
- data/src/cxx_supportlib/vendor-modified/boost/date_time/date_duration.hpp +17 -22
- data/src/cxx_supportlib/vendor-modified/boost/date_time/date_duration_types.hpp +44 -49
- data/src/cxx_supportlib/vendor-modified/boost/date_time/date_facet.hpp +5 -6
- data/src/cxx_supportlib/vendor-modified/boost/date_time/date_generators.hpp +24 -19
- data/src/cxx_supportlib/vendor-modified/boost/date_time/date_parsing.hpp +51 -25
- data/src/cxx_supportlib/vendor-modified/boost/date_time/dst_rules.hpp +56 -56
- data/src/cxx_supportlib/vendor-modified/boost/date_time/dst_transition_generators.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/date_time/find_match.hpp +42 -0
- data/src/cxx_supportlib/vendor-modified/boost/date_time/format_date_parser.hpp +98 -98
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_date.hpp +22 -14
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_day.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_duration.hpp +44 -32
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_duration_types.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_month.hpp +51 -23
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_serialize.hpp +29 -27
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_weekday.hpp +43 -9
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_year.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/parsers.hpp +32 -13
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian_calendar.hpp +15 -17
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian_calendar.ipp +27 -22
- data/src/cxx_supportlib/vendor-modified/boost/date_time/int_adapter.hpp +57 -37
- data/src/cxx_supportlib/vendor-modified/boost/date_time/local_time/local_time_io.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/date_time/locale_config.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/date_time/period.hpp +44 -47
- data/src/cxx_supportlib/vendor-modified/boost/date_time/period_formatter.hpp +34 -31
- data/src/cxx_supportlib/vendor-modified/boost/date_time/period_parser.hpp +27 -28
- data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/date_duration_operators.hpp +8 -8
- data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/posix_time_config.hpp +13 -26
- data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/posix_time_duration.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/ptime.hpp +22 -4
- data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/time_serialize.hpp +28 -12
- data/src/cxx_supportlib/vendor-modified/boost/date_time/special_values_formatter.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/date_time/special_values_parser.hpp +0 -5
- data/src/cxx_supportlib/vendor-modified/boost/date_time/string_parse_tree.hpp +5 -3
- data/src/cxx_supportlib/vendor-modified/boost/date_time/strings_from_facet.hpp +4 -2
- data/src/cxx_supportlib/vendor-modified/boost/date_time/time.hpp +24 -3
- data/src/cxx_supportlib/vendor-modified/boost/date_time/time_duration.hpp +56 -44
- data/src/cxx_supportlib/vendor-modified/boost/date_time/time_facet.hpp +8 -11
- data/src/cxx_supportlib/vendor-modified/boost/date_time/time_parsing.hpp +3 -8
- data/src/cxx_supportlib/vendor-modified/boost/date_time/time_resolution_traits.hpp +18 -18
- data/src/cxx_supportlib/vendor-modified/boost/date_time/time_system_counted.hpp +65 -50
- data/src/cxx_supportlib/vendor-modified/boost/date_time/time_system_split.hpp +43 -30
- data/src/cxx_supportlib/vendor-modified/boost/date_time/time_zone_base.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/time_zone_names.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/tz_db_base.hpp +0 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/wrapping_int.hpp +16 -15
- data/src/cxx_supportlib/vendor-modified/boost/date_time/year_month_day.hpp +7 -5
- data/src/cxx_supportlib/vendor-modified/boost/detail/basic_pointerbuf.hpp +3 -4
- data/src/cxx_supportlib/vendor-modified/boost/exception/current_exception_cast.hpp +10 -4
- data/src/cxx_supportlib/vendor-modified/boost/exception/detail/clone_current_exception.hpp +10 -4
- data/src/cxx_supportlib/vendor-modified/boost/exception/detail/error_info_impl.hpp +12 -7
- data/src/cxx_supportlib/vendor-modified/boost/exception/detail/exception_ptr.hpp +63 -8
- data/src/cxx_supportlib/vendor-modified/boost/exception/detail/is_output_streamable.hpp +9 -4
- data/src/cxx_supportlib/vendor-modified/boost/exception/detail/object_hex_dump.hpp +9 -4
- data/src/cxx_supportlib/vendor-modified/boost/exception/detail/shared_ptr.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/exception/detail/type_info.hpp +9 -4
- data/src/cxx_supportlib/vendor-modified/boost/exception/diagnostic_information.hpp +15 -6
- data/src/cxx_supportlib/vendor-modified/boost/exception/exception.hpp +19 -57
- data/src/cxx_supportlib/vendor-modified/boost/exception/get_error_info.hpp +9 -4
- data/src/cxx_supportlib/vendor-modified/boost/exception/info.hpp +11 -6
- data/src/cxx_supportlib/vendor-modified/boost/exception/to_string.hpp +9 -4
- data/src/cxx_supportlib/vendor-modified/boost/exception/to_string_stub.hpp +9 -4
- data/src/cxx_supportlib/vendor-modified/boost/exception_ptr.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/foreach.hpp +13 -6
- data/src/cxx_supportlib/vendor-modified/boost/function/function_base.hpp +4 -12
- data/src/cxx_supportlib/vendor-modified/boost/function/function_template.hpp +22 -4
- data/src/cxx_supportlib/vendor-modified/boost/integer.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/integer/common_factor_ct.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/integer/common_factor_rt.hpp +30 -28
- data/src/cxx_supportlib/vendor-modified/boost/integer/extended_euclidean.hpp +83 -0
- data/src/cxx_supportlib/vendor-modified/boost/integer/integer_log2.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/integer/mod_inverse.hpp +53 -0
- data/src/cxx_supportlib/vendor-modified/boost/integer/static_log2.hpp +2 -3
- data/src/cxx_supportlib/vendor-modified/boost/integer/static_min_max.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/integer_traits.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/avl_set.hpp +22 -22
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/avltree.hpp +11 -11
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/bs_set.hpp +22 -22
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/bstree.hpp +11 -11
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/bstree_algorithms.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/ebo_functor_holder.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/generic_hook.hpp +12 -12
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hashtable_node.hpp +18 -9
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hook_traits.hpp +12 -4
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/iterator.hpp +10 -10
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/key_nodeptr_comp.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/list_iterator.hpp +15 -3
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/math.hpp +7 -12
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/mpl.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/slist_iterator.hpp +13 -1
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/tree_iterator.hpp +23 -11
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/workaround.hpp +6 -1
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/hashtable.hpp +13 -17
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/intrusive_fwd.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/list.hpp +9 -9
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/options.hpp +9 -1
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/pack_options.hpp +6 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/pointer_traits.hpp +14 -14
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/priority_compare.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/rbtree.hpp +11 -11
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/rbtree_algorithms.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/set.hpp +22 -22
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/sg_set.hpp +22 -22
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/sgtree.hpp +11 -11
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/slist.hpp +11 -11
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/splay_set.hpp +22 -22
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/splaytree.hpp +11 -11
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap.hpp +93 -66
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap_algorithms.hpp +17 -14
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap_set.hpp +67 -60
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/unordered_set_hook.hpp +9 -9
- data/src/cxx_supportlib/vendor-modified/boost/io/ios_state.hpp +361 -315
- data/src/cxx_supportlib/vendor-modified/boost/io_fwd.hpp +45 -49
- data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/config_def.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/facade_iterator_category.hpp +3 -2
- data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_adaptor.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_facade.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/bad_lexical_cast.hpp +18 -13
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical.hpp +43 -43
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical_streams.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_numeric.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/inf_nan.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/is_character.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_char_constants.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_unsigned_converters.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/widest_char.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/try_lexical_convert.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/c_regex_traits.cpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/cregex.cpp +10 -3
- data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/instances.cpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/posix_api.cpp +7 -0
- data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/regex.cpp +4 -2
- data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/regex_traits_defaults.cpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/static_mutex.cpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/wc_regex_traits.cpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/wide_posix_api.cpp +7 -0
- data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/winstances.cpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/libs/thread/src/pthread/once.cpp +0 -1
- data/src/cxx_supportlib/vendor-modified/boost/libs/thread/src/pthread/once_atomic.cpp +4 -3
- data/src/cxx_supportlib/vendor-modified/boost/libs/thread/src/pthread/thread.cpp +12 -7
- data/src/cxx_supportlib/vendor-modified/boost/math/policies/policy.hpp +50 -52
- data/src/cxx_supportlib/vendor-modified/boost/math/special_functions/math_fwd.hpp +41 -7
- data/src/cxx_supportlib/vendor-modified/boost/math/tools/config.hpp +23 -3
- data/src/cxx_supportlib/vendor-modified/boost/math/tools/promotion.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/math/tools/user.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/memory_order.hpp +6 -12
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/adaptive_merge.hpp +35 -26
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/adaptive_sort.hpp +18 -12
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/adaptive_sort_merge.hpp +103 -318
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/merge.hpp +437 -10
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/merge_sort.hpp +68 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/set_difference.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/predicate.hpp +15 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/iterator_to_raw_pointer.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/meta_utils_core.hpp +11 -6
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/type_traits.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/unique_ptr_meta_utils.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/move/iterator.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/mpl/assert.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/common_name_wknd.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/config/adl.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/config/arrays.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/config/bcc.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/config/bind.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/config/compiler.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/config/ctps.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/config/dtp.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/config/forwarding.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/config/integral.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/config/operators.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/config/overload_resolution.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/config/preprocessor.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/config/ttp.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/count_impl.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/fold_impl_body.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/has_rebind.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/integral_wrapper.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/lambda_support.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/nested_type_wknd.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/size_impl.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/static_cast.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/mpl/has_xxx.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/mpl/if.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/mpl/integral_c.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/mpl/lower_bound.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/mpl/numeric_cast.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/mpl/upper_bound.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/mpl/vector/aux_/at.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/none.hpp +4 -3
- data/src/cxx_supportlib/vendor-modified/boost/numeric/conversion/converter_policies.hpp +4 -3
- data/src/cxx_supportlib/vendor-modified/boost/operators.hpp +31 -24
- data/src/cxx_supportlib/vendor-modified/boost/optional/bad_optional_access.hpp +9 -0
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_trivially_copyable_base.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/optional/optional.hpp +9 -4
- data/src/cxx_supportlib/vendor-modified/boost/parameter/are_tagged_arguments.hpp +125 -0
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/always_true_predicate.hpp +42 -0
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/arg_list.hpp +1252 -358
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/as_lvalue.hpp +25 -0
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/augment_predicate.hpp +198 -0
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/cast.hpp +7 -136
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/default.hpp +90 -59
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/has_nested_template_fn.hpp +111 -0
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/is_maybe.hpp +42 -16
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/is_placeholder.hpp +64 -0
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/is_tagged_argument.hpp +95 -0
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/lambda_tag.hpp +16 -0
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/maybe.hpp +128 -97
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/name.hpp +93 -0
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/pack/as_parameter_requirements.hpp +32 -0
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/pack/deduce_tag.hpp +217 -0
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/pack/deduced_item.hpp +34 -0
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/pack/insert_tagged.hpp +23 -0
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/pack/is_named_argument.hpp +43 -0
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/pack/item.hpp +47 -0
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/pack/make_arg_list.hpp +438 -0
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/pack/make_deduced_items.hpp +53 -0
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/pack/make_items.hpp +45 -0
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/pack/make_parameter_spec_items.hpp +244 -0
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/pack/parameter_requirements.hpp +25 -0
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/pack/predicate.hpp +87 -0
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/pack/satisfies.hpp +142 -0
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/pack/tag_deduced.hpp +59 -0
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/pack/tag_keyword_arg.hpp +30 -0
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/pack/tag_keyword_arg_ref.hpp +67 -0
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/pack/tag_template_keyword_arg.hpp +30 -0
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/pack/tag_type.hpp +89 -0
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/pack/unmatched_argument.hpp +41 -0
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/parameter_requirements.hpp +7 -20
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/parenthesized_type.hpp +8 -31
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/pp_impl/argument_pack.hpp +91 -0
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/pp_impl/match.hpp +55 -0
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/pp_impl/unwrap_predicate.hpp +97 -0
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/binary_seq_for_each.hpp +1638 -0
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/binary_seq_for_each_inc.hpp +1796 -0
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/binary_seq_to_args.hpp +65 -0
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/convert_binary_seq.hpp +57 -0
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/flatten.hpp +7 -110
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/for_each.hpp +7 -98
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/for_each_pred.hpp +1029 -0
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/impl/argument_specs.hpp +24 -0
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/impl/arity_range.hpp +42 -0
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/impl/flatten.hpp +143 -0
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/impl/for_each.hpp +152 -0
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/impl/forwarding_overloads.hpp +509 -0
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/impl/function_cast.hpp +730 -0
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/impl/function_dispatch_layer.hpp +474 -0
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/impl/function_dispatch_tuple.hpp +33 -0
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/impl/function_forward_match.hpp +43 -0
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/impl/function_name.hpp +152 -0
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/impl/no_spec_overloads.hpp +331 -0
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/impl/parenthesized_return_type.hpp +122 -0
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/impl/parenthesized_type.hpp +34 -0
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/impl/specification.hpp +109 -0
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/impl/split_args.hpp +71 -0
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/inc_binary_seq.hpp +78 -0
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/is_binary.hpp +31 -0
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/is_nullary.hpp +32 -0
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/no_perfect_forwarding_begin.hpp +165 -0
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/no_perfect_forwarding_end.hpp +24 -0
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/nullptr.hpp +18 -0
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/overloads.hpp +92 -0
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/qualifier.hpp +88 -0
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/seq_enum.hpp +26 -0
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/seq_merge.hpp +1807 -0
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/result_of0.hpp +46 -29
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/set.hpp +94 -42
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/tag.hpp +149 -27
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/tagged_argument.hpp +865 -159
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/tagged_argument_fwd.hpp +38 -0
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/template_keyword.hpp +76 -34
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/unwrap_cv_reference.hpp +159 -76
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/use_default.hpp +17 -0
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/use_default_tag.hpp +29 -0
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/void.hpp +25 -16
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/yesno.hpp +30 -14
- data/src/cxx_supportlib/vendor-modified/boost/parameter/binding.hpp +154 -70
- data/src/cxx_supportlib/vendor-modified/boost/parameter/compose.hpp +210 -0
- data/src/cxx_supportlib/vendor-modified/boost/parameter/config.hpp +75 -6
- data/src/cxx_supportlib/vendor-modified/boost/parameter/deduced.hpp +132 -0
- data/src/cxx_supportlib/vendor-modified/boost/parameter/is_argument_pack.hpp +29 -0
- data/src/cxx_supportlib/vendor-modified/boost/parameter/keyword.hpp +724 -102
- data/src/cxx_supportlib/vendor-modified/boost/parameter/keyword_fwd.hpp +23 -0
- data/src/cxx_supportlib/vendor-modified/boost/parameter/macros.hpp +205 -72
- data/src/cxx_supportlib/vendor-modified/boost/parameter/match.hpp +37 -44
- data/src/cxx_supportlib/vendor-modified/boost/parameter/name.hpp +100 -126
- data/src/cxx_supportlib/vendor-modified/boost/parameter/nested_keyword.hpp +111 -0
- data/src/cxx_supportlib/vendor-modified/boost/parameter/optional.hpp +67 -0
- data/src/cxx_supportlib/vendor-modified/boost/parameter/parameters.hpp +553 -884
- data/src/cxx_supportlib/vendor-modified/boost/parameter/preprocessor.hpp +156 -1016
- data/src/cxx_supportlib/vendor-modified/boost/parameter/preprocessor_no_spec.hpp +74 -0
- data/src/cxx_supportlib/vendor-modified/boost/parameter/required.hpp +66 -0
- data/src/cxx_supportlib/vendor-modified/boost/parameter/template_keyword.hpp +87 -0
- data/src/cxx_supportlib/vendor-modified/boost/parameter/value_type.hpp +152 -70
- data/src/cxx_supportlib/vendor-modified/boost/predef/architecture.h +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/alpha.h +17 -16
- data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/arm.h +86 -32
- data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/blackfin.h +11 -10
- data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/convex.h +14 -13
- data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/ia64.h +17 -16
- data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/m68k.h +28 -27
- data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/mips.h +21 -20
- data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/parisc.h +19 -18
- data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/ppc.h +23 -22
- data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/ptx.h +10 -9
- data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/pyramid.h +8 -7
- data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/riscv.h +43 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/rs6k.h +16 -15
- data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/sparc.h +12 -11
- data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/superh.h +16 -15
- data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/sys370.h +10 -9
- data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/sys390.h +10 -9
- data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/x86.h +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/x86/32.h +26 -25
- data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/x86/64.h +16 -15
- data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/z.h +9 -8
- data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/borland.h +12 -11
- data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/clang.h +10 -9
- data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/comeau.h +10 -9
- data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/compaq.h +12 -11
- data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/diab.h +10 -9
- data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/digitalmars.h +10 -9
- data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/dignus.h +10 -9
- data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/edg.h +10 -9
- data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/ekopath.h +10 -9
- data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/gcc.h +11 -10
- data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/gcc_xml.h +9 -8
- data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/greenhills.h +12 -11
- data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/hp_acc.h +10 -9
- data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/iar.h +10 -9
- data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/ibm.h +15 -14
- data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/intel.h +18 -17
- data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/kai.h +10 -9
- data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/llvm.h +9 -8
- data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/metaware.h +9 -8
- data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/metrowerks.h +14 -13
- data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/microtec.h +9 -8
- data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/mpw.h +12 -11
- data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/nvcc.h +10 -9
- data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/palm.h +10 -9
- data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/pgi.h +10 -9
- data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/sgi_mipspro.h +12 -11
- data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/sunpro.h +14 -13
- data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/tendra.h +9 -8
- data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/visualc.h +13 -12
- data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/watcom.h +10 -9
- data/src/cxx_supportlib/vendor-modified/boost/predef/hardware/simd.h +95 -46
- data/src/cxx_supportlib/vendor-modified/boost/predef/hardware/simd/arm.h +21 -19
- data/src/cxx_supportlib/vendor-modified/boost/predef/hardware/simd/arm/versions.h +16 -10
- data/src/cxx_supportlib/vendor-modified/boost/predef/hardware/simd/ppc.h +21 -19
- data/src/cxx_supportlib/vendor-modified/boost/predef/hardware/simd/ppc/versions.h +27 -21
- data/src/cxx_supportlib/vendor-modified/boost/predef/hardware/simd/x86.h +39 -37
- data/src/cxx_supportlib/vendor-modified/boost/predef/hardware/simd/x86/versions.h +73 -67
- data/src/cxx_supportlib/vendor-modified/boost/predef/hardware/simd/x86_amd.h +25 -23
- data/src/cxx_supportlib/vendor-modified/boost/predef/hardware/simd/x86_amd/versions.h +24 -19
- data/src/cxx_supportlib/vendor-modified/boost/predef/language/cuda.h +11 -10
- data/src/cxx_supportlib/vendor-modified/boost/predef/language/objc.h +9 -8
- data/src/cxx_supportlib/vendor-modified/boost/predef/language/stdc.h +10 -9
- data/src/cxx_supportlib/vendor-modified/boost/predef/language/stdcpp.h +39 -32
- data/src/cxx_supportlib/vendor-modified/boost/predef/library/c/cloudabi.h +10 -9
- data/src/cxx_supportlib/vendor-modified/boost/predef/library/c/gnu.h +12 -11
- data/src/cxx_supportlib/vendor-modified/boost/predef/library/c/uc.h +10 -9
- data/src/cxx_supportlib/vendor-modified/boost/predef/library/c/vms.h +9 -8
- data/src/cxx_supportlib/vendor-modified/boost/predef/library/c/zos.h +10 -9
- data/src/cxx_supportlib/vendor-modified/boost/predef/library/std/cxx.h +10 -9
- data/src/cxx_supportlib/vendor-modified/boost/predef/library/std/dinkumware.h +11 -10
- data/src/cxx_supportlib/vendor-modified/boost/predef/library/std/libcomo.h +10 -9
- data/src/cxx_supportlib/vendor-modified/boost/predef/library/std/modena.h +10 -9
- data/src/cxx_supportlib/vendor-modified/boost/predef/library/std/msl.h +12 -11
- data/src/cxx_supportlib/vendor-modified/boost/predef/library/std/roguewave.h +11 -10
- data/src/cxx_supportlib/vendor-modified/boost/predef/library/std/sgi.h +10 -9
- data/src/cxx_supportlib/vendor-modified/boost/predef/library/std/stdcpp3.h +12 -11
- data/src/cxx_supportlib/vendor-modified/boost/predef/library/std/stlport.h +13 -12
- data/src/cxx_supportlib/vendor-modified/boost/predef/library/std/vacpp.h +9 -8
- data/src/cxx_supportlib/vendor-modified/boost/predef/make.h +97 -35
- data/src/cxx_supportlib/vendor-modified/boost/predef/os.h +0 -1
- data/src/cxx_supportlib/vendor-modified/boost/predef/os/aix.h +14 -13
- data/src/cxx_supportlib/vendor-modified/boost/predef/os/amigaos.h +10 -9
- data/src/cxx_supportlib/vendor-modified/boost/predef/os/beos.h +9 -8
- data/src/cxx_supportlib/vendor-modified/boost/predef/os/bsd.h +22 -23
- data/src/cxx_supportlib/vendor-modified/boost/predef/os/bsd/bsdi.h +9 -8
- data/src/cxx_supportlib/vendor-modified/boost/predef/os/bsd/dragonfly.h +9 -8
- data/src/cxx_supportlib/vendor-modified/boost/predef/os/bsd/free.h +10 -9
- data/src/cxx_supportlib/vendor-modified/boost/predef/os/bsd/net.h +16 -15
- data/src/cxx_supportlib/vendor-modified/boost/predef/os/bsd/open.h +59 -58
- data/src/cxx_supportlib/vendor-modified/boost/predef/os/cygwin.h +10 -9
- data/src/cxx_supportlib/vendor-modified/boost/predef/os/haiku.h +9 -8
- data/src/cxx_supportlib/vendor-modified/boost/predef/os/hpux.h +11 -10
- data/src/cxx_supportlib/vendor-modified/boost/predef/os/ios.h +12 -11
- data/src/cxx_supportlib/vendor-modified/boost/predef/os/irix.h +10 -9
- data/src/cxx_supportlib/vendor-modified/boost/predef/os/linux.h +14 -10
- data/src/cxx_supportlib/vendor-modified/boost/predef/os/macos.h +14 -13
- data/src/cxx_supportlib/vendor-modified/boost/predef/os/os400.h +9 -8
- data/src/cxx_supportlib/vendor-modified/boost/predef/os/qnxnto.h +12 -11
- data/src/cxx_supportlib/vendor-modified/boost/predef/os/solaris.h +10 -9
- data/src/cxx_supportlib/vendor-modified/boost/predef/os/unix.h +24 -22
- data/src/cxx_supportlib/vendor-modified/boost/predef/os/vms.h +11 -10
- data/src/cxx_supportlib/vendor-modified/boost/predef/os/windows.h +16 -15
- data/src/cxx_supportlib/vendor-modified/boost/predef/other/endian.h +12 -11
- data/src/cxx_supportlib/vendor-modified/boost/predef/other/workaround.h +22 -14
- data/src/cxx_supportlib/vendor-modified/boost/predef/platform.h +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/platform/android.h +44 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/platform/cloudabi.h +9 -8
- data/src/cxx_supportlib/vendor-modified/boost/predef/platform/ios.h +14 -9
- data/src/cxx_supportlib/vendor-modified/boost/predef/platform/mingw.h +12 -11
- data/src/cxx_supportlib/vendor-modified/boost/predef/platform/mingw32.h +10 -9
- data/src/cxx_supportlib/vendor-modified/boost/predef/platform/mingw64.h +10 -9
- data/src/cxx_supportlib/vendor-modified/boost/predef/platform/windows_desktop.h +10 -9
- data/src/cxx_supportlib/vendor-modified/boost/predef/platform/windows_phone.h +9 -8
- data/src/cxx_supportlib/vendor-modified/boost/predef/platform/windows_runtime.h +10 -9
- data/src/cxx_supportlib/vendor-modified/boost/predef/platform/windows_server.h +9 -8
- data/src/cxx_supportlib/vendor-modified/boost/predef/platform/windows_store.h +10 -9
- data/src/cxx_supportlib/vendor-modified/boost/predef/platform/windows_system.h +9 -8
- data/src/cxx_supportlib/vendor-modified/boost/predef/platform/windows_uwp.h +12 -11
- data/src/cxx_supportlib/vendor-modified/boost/predef/version.h +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/predef/version_number.h +16 -14
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/array/detail/get_data.hpp +20 -20
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/array/to_list.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/array/to_seq.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/array/to_tuple.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/config/config.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/facilities.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/facilities/check_empty.hpp +19 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/facilities/detail/is_empty.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/facilities/is_empty_variadic.hpp +28 -1
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/facilities/va_opt.hpp +34 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/list/to_array.hpp +16 -16
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/list/to_tuple.hpp +14 -14
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/repetition/for.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/detail/binary_transform.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/detail/is_empty.hpp +11 -11
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/for_each.hpp +27 -27
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/for_each_i.hpp +28 -28
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/replace.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/rest_n.hpp +9 -9
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/detail/is_single_return.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/elem.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/insert.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/pop_back.hpp +16 -16
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/pop_front.hpp +16 -16
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/push_back.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/push_front.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/rem.hpp +10 -10
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/remove.hpp +16 -16
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/replace.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/reverse.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/to_list.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/to_seq.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/variadic.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/variadic/detail/has_opt.hpp +39 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/variadic/detail/is_single_return.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/variadic/has_opt.hpp +28 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/detail/integer_log2.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/random/discrete_distribution.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/range/as_literal.hpp +0 -6
- data/src/cxx_supportlib/vendor-modified/boost/range/begin.hpp +4 -10
- data/src/cxx_supportlib/vendor-modified/boost/range/concepts.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/range/config.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/range/end.hpp +4 -10
- data/src/cxx_supportlib/vendor-modified/boost/range/iterator_range_core.hpp +0 -32
- data/src/cxx_supportlib/vendor-modified/boost/range/rbegin.hpp +0 -13
- data/src/cxx_supportlib/vendor-modified/boost/range/rend.hpp +0 -13
- data/src/cxx_supportlib/vendor-modified/boost/range/size.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/rational.hpp +33 -7
- data/src/cxx_supportlib/vendor-modified/boost/regex/config.hpp +11 -2
- data/src/cxx_supportlib/vendor-modified/boost/regex/config/borland.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/regex/pattern_except.hpp +4 -1
- data/src/cxx_supportlib/vendor-modified/boost/regex/pending/object_cache.hpp +7 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex.hpp +17 -6
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex_creator.hpp +27 -5
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex_parser.hpp +36 -15
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/cpp_regex_traits.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/cregex.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/fileiter.hpp +105 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/indexed_bit_flag.hpp +54 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/instances.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/match_flags.hpp +13 -1
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/match_results.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher.hpp +26 -16
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_common.hpp +16 -6
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_non_recursive.hpp +11 -11
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_recursive.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_format.hpp +7 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_iterator.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_token_iterator.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_traits.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_traits_defaults.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/sub_match.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/u32regex_token_iterator.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/w32_regex_traits.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/allocate_shared_array.hpp +92 -388
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/bad_weak_ptr.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count.hpp +8 -4
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count_gcc.hpp +7 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count_gcc_atomic.hpp +63 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count_gcc_x86.hpp +11 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count_nt.hpp +7 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count_pt.hpp +7 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count_spin.hpp +7 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count_std_atomic.hpp +8 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count_sync.hpp +13 -2
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/local_counted_base.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/local_sp_deleter.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/shared_count.hpp +87 -47
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_convertible.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base.hpp +12 -16
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp +13 -3
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_aix.hpp +10 -3
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp +13 -3
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_atomic.hpp +148 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp +13 -3
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp +13 -3
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp +13 -3
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp +13 -3
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp +13 -3
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_nt.hpp +25 -16
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_pt.hpp +16 -8
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_snc_ps3.hpp +14 -4
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_spin.hpp +10 -3
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_std_atomic.hpp +25 -17
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_sync.hpp +10 -3
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_vacpp_ppc.hpp +13 -3
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_impl.hpp +23 -26
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_has_gcc_intrinsics.hpp +27 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_has_sync_intrinsics.hpp +69 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_thread_pause.hpp +51 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_thread_sleep.hpp +104 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_typeinfo_.hpp +58 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock.hpp +7 -9
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock_gcc_arm.hpp +7 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock_gcc_atomic.hpp +85 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock_nt.hpp +7 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock_pt.hpp +7 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock_std_atomic.hpp +13 -5
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock_sync.hpp +8 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/yield_k.hpp +14 -146
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/intrusive_ptr.hpp +47 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/make_shared_array.hpp +22 -22
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/make_shared_object.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/scoped_array.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/scoped_ptr.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/shared_array.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/shared_ptr.hpp +58 -23
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/weak_ptr.hpp +79 -8
- data/src/cxx_supportlib/vendor-modified/boost/static_assert.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/config.hpp +5 -11
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/std_interoperability.hpp +57 -16
- data/src/cxx_supportlib/vendor-modified/boost/system/error_code.hpp +32 -16
- data/src/cxx_supportlib/vendor-modified/boost/system/system_error.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/deque_adaptor.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/deque_base.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/detail/sync_deque_base.hpp +9 -21
- data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/detail/sync_queue_base.hpp +9 -21
- data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/queue_adaptor.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/queue_base.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/queue_op_status.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/sync_bounded_queue.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/sync_deque.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/sync_priority_queue.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/sync_queue.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/sync_timed_queue.hpp +80 -14
- data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/queue.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/thread/detail/config.hpp +11 -2
- data/src/cxx_supportlib/vendor-modified/boost/thread/detail/invoke.hpp +16 -17
- data/src/cxx_supportlib/vendor-modified/boost/thread/detail/platform_time.hpp +8 -8
- data/src/cxx_supportlib/vendor-modified/boost/thread/detail/thread.hpp +4 -11
- data/src/cxx_supportlib/vendor-modified/boost/thread/detail/thread.hpp.orig +841 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/executors/basic_thread_pool.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/executors/executor.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/executors/executor_adaptor.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/executors/generic_executor_ref.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/executors/inline_executor.hpp +8 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/executors/loop_executor.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/executors/scheduled_thread_pool.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/executors/scheduler.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/executors/scheduling_adaptor.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/executors/serial_executor.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/executors/serial_executor_cont.hpp +9 -2
- data/src/cxx_supportlib/vendor-modified/boost/thread/executors/thread_executor.hpp +6 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/executors/work.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/thread/experimental/parallel/v2/task_region.hpp +6 -2
- data/src/cxx_supportlib/vendor-modified/boost/thread/externally_locked.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/future.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/thread/futures/wait_for_any.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/interruption.hpp +22 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/once.hpp.orig +54 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/poly_lockable.hpp +7 -2
- data/src/cxx_supportlib/vendor-modified/boost/thread/poly_shared_lockable.hpp +16 -12
- data/src/cxx_supportlib/vendor-modified/boost/thread/poly_shared_lockable_adapter.hpp +3 -4
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/condition_variable.hpp +18 -24
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/condition_variable_fwd.hpp +6 -13
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/mutex.hpp +11 -37
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/once.hpp +29 -28
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/once_atomic.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/pthread_helpers.hpp +163 -18
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/pthread_mutex_scoped_lock.hpp +1 -69
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/recursive_mutex.hpp +19 -19
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/shared_mutex.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/thread_data.hpp +9 -6
- data/src/cxx_supportlib/vendor-modified/boost/thread/tss.hpp +23 -41
- data/src/cxx_supportlib/vendor-modified/boost/thread/user_scheduler.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/v2/shared_mutex.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/throw_exception.hpp +138 -59
- data/src/cxx_supportlib/vendor-modified/boost/tuple/detail/tuple_basic.hpp +15 -11
- data/src/cxx_supportlib/vendor-modified/boost/tuple/tuple.hpp +51 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_index.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_index/stl_type_index.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_index/type_index_facade.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/add_pointer.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/aligned_storage.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/alignment_of.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/conjunction.hpp +40 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/copy_cv_ref.hpp +31 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/copy_reference.hpp +35 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/config.hpp +25 -4
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/has_binary_operator.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/has_postfix_operator.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/has_prefix_operator.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_function_cxx_03.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_function_cxx_11.hpp +102 -6
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_function_ptr_tester.hpp +415 -255
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_likely_lambda.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_mem_fun_pointer_tester.hpp +1345 -1542
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_member_function_pointer_cxx_03.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_member_function_pointer_cxx_11.hpp +143 -28
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/disjunction.hpp +40 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/extent.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_minus.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_minus_assign.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_nothrow_copy.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_plus_assign.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/integral_constant.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/integral_promotion.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/intrinsics.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_array.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_base_and_derived.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_bounded_array.hpp +42 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_complete.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_compound.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_const.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_constructible.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_convertible.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_default_constructible.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_destructible.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_empty.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_enum.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_fundamental.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_integral.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_lvalue_reference.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_member_pointer.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_pointer.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_same.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_scoped_enum.hpp +26 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_signed.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_trivially_copyable.hpp +27 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_unbounded_array.hpp +41 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_unscoped_enum.hpp +25 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_unsigned.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_virtual_base_of.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_volatile.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/negation.hpp +23 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/rank.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_all_extents.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_const.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_cv.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_extent.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_volatile.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/type_with_alignment.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/typeof/int_encoding.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/typeof/typeof_impl.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/utility/detail/result_of_iterate.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/utility/string_ref.hpp +3 -42
- data/src/cxx_supportlib/vendor-modified/boost/utility/string_view.hpp +4 -43
- data/src/cxx_supportlib/vendor-modified/boost/utility/value_init.hpp +29 -67
- data/src/cxx_supportlib/vendor-modified/boost/version.hpp +2 -2
- data/src/nginx_module/Configuration.c +3 -3
- data/src/nginx_module/config +2 -0
- data/src/nginx_module/ngx_http_passenger_module.c +2 -2
- data/src/ruby_supportlib/phusion_passenger.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/admin_tools.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/admin_tools/instance_registry.rb +4 -1
- data/src/ruby_supportlib/phusion_passenger/common_library.rb +2 -0
- data/src/ruby_supportlib/phusion_passenger/config/download_agent_command.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/config/download_nginx_engine_command.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/constants.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/loader_shared_helpers.rb +17 -9
- data/src/ruby_supportlib/phusion_passenger/platform_info/apache.rb +1 -3
- data/src/ruby_supportlib/phusion_passenger/platform_info/cxx_portability.rb +3 -0
- data/src/ruby_supportlib/phusion_passenger/standalone/start_command.rb +1 -1
- metadata +302 -70
- data/src/cxx_supportlib/vendor-modified/boost/asio/datagram_socket_service.hpp +0 -468
- data/src/cxx_supportlib/vendor-modified/boost/asio/deadline_timer_service.hpp +0 -175
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental.hpp +0 -22
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/co_spawn.hpp +0 -228
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detached.hpp +0 -67
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/co_spawn.hpp +0 -878
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/detached.hpp +0 -93
- data/src/cxx_supportlib/vendor-modified/boost/asio/handler_type.hpp +0 -52
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/resolver_service.hpp +0 -202
- data/src/cxx_supportlib/vendor-modified/boost/asio/posix/stream_descriptor_service.hpp +0 -281
- data/src/cxx_supportlib/vendor-modified/boost/asio/raw_socket_service.hpp +0 -468
- data/src/cxx_supportlib/vendor-modified/boost/asio/seq_packet_socket_service.hpp +0 -418
- data/src/cxx_supportlib/vendor-modified/boost/asio/serial_port_service.hpp +0 -251
- data/src/cxx_supportlib/vendor-modified/boost/asio/signal_set_service.hpp +0 -144
- data/src/cxx_supportlib/vendor-modified/boost/asio/socket_acceptor_service.hpp +0 -374
- data/src/cxx_supportlib/vendor-modified/boost/asio/stream_socket_service.hpp +0 -414
- data/src/cxx_supportlib/vendor-modified/boost/asio/waitable_timer_service.hpp +0 -212
- data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_handle.hpp +0 -275
- data/src/cxx_supportlib/vendor-modified/boost/asio/windows/object_handle_service.hpp +0 -185
- data/src/cxx_supportlib/vendor-modified/boost/asio/windows/random_access_handle_service.hpp +0 -216
- data/src/cxx_supportlib/vendor-modified/boost/asio/windows/stream_handle_service.hpp +0 -212
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/atomic_flag.hpp +0 -71
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_gcc_arm.hpp +0 -39
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_gcc_ppc.hpp +0 -37
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_gcc_x86.hpp +0 -40
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/lockpool.hpp +0 -51
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/operations.hpp +0 -24
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/operations_fwd.hpp +0 -35
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/operations_lockfree.hpp +0 -30
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_emulated.hpp +0 -162
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_atomic.hpp +0 -392
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_x86.hpp +0 -563
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/storage_type.hpp +0 -207
- data/src/cxx_supportlib/vendor-modified/boost/circular_buffer/allocators.hpp +0 -89
- data/src/cxx_supportlib/vendor-modified/boost/detail/atomic_count.hpp +0 -21
- data/src/cxx_supportlib/vendor-modified/boost/detail/endian.hpp +0 -11
- data/src/cxx_supportlib/vendor-modified/boost/detail/iterator.hpp +0 -39
- data/src/cxx_supportlib/vendor-modified/boost/detail/sp_typeinfo.hpp +0 -36
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/overloads.hpp +0 -88
- data/src/cxx_supportlib/vendor-modified/boost/predef/detail/endian_compat.h +0 -28
- data/src/cxx_supportlib/vendor-modified/boost/predef/os/android.h +0 -45
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count_solaris.hpp +0 -59
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_clang.hpp +0 -151
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_cw_x86.hpp +0 -161
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_solaris.hpp +0 -116
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_has_sync.hpp +0 -69
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// detail/impl/scheduler.ipp
|
|
3
3
|
// ~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
4
4
|
//
|
|
5
|
-
// Copyright (c) 2003-
|
|
5
|
+
// Copyright (c) 2003-2020 Christopher M. Kohlhoff (chris at kohlhoff dot com)
|
|
6
6
|
//
|
|
7
7
|
// Distributed under the Boost Software License, Version 1.0. (See accompanying
|
|
8
8
|
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
|
@@ -23,6 +23,7 @@
|
|
|
23
23
|
#include <boost/asio/detail/reactor.hpp>
|
|
24
24
|
#include <boost/asio/detail/scheduler.hpp>
|
|
25
25
|
#include <boost/asio/detail/scheduler_thread_info.hpp>
|
|
26
|
+
#include <boost/asio/detail/signal_blocker.hpp>
|
|
26
27
|
|
|
27
28
|
#include <boost/asio/detail/push_options.hpp>
|
|
28
29
|
|
|
@@ -30,6 +31,24 @@ namespace boost {
|
|
|
30
31
|
namespace asio {
|
|
31
32
|
namespace detail {
|
|
32
33
|
|
|
34
|
+
class scheduler::thread_function
|
|
35
|
+
{
|
|
36
|
+
public:
|
|
37
|
+
explicit thread_function(scheduler* s)
|
|
38
|
+
: this_(s)
|
|
39
|
+
{
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
void operator()()
|
|
43
|
+
{
|
|
44
|
+
boost::system::error_code ec;
|
|
45
|
+
this_->run(ec);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
private:
|
|
49
|
+
scheduler* this_;
|
|
50
|
+
};
|
|
51
|
+
|
|
33
52
|
struct scheduler::task_cleanup
|
|
34
53
|
{
|
|
35
54
|
~task_cleanup()
|
|
@@ -85,8 +104,8 @@ struct scheduler::work_cleanup
|
|
|
85
104
|
thread_info* this_thread_;
|
|
86
105
|
};
|
|
87
106
|
|
|
88
|
-
scheduler::scheduler(
|
|
89
|
-
|
|
107
|
+
scheduler::scheduler(boost::asio::execution_context& ctx,
|
|
108
|
+
int concurrency_hint, bool own_thread)
|
|
90
109
|
: boost::asio::detail::execution_context_service_base<scheduler>(ctx),
|
|
91
110
|
one_thread_(concurrency_hint == 1
|
|
92
111
|
|| !BOOST_ASIO_CONCURRENCY_HINT_IS_LOCKING(
|
|
@@ -100,17 +119,48 @@ scheduler::scheduler(
|
|
|
100
119
|
outstanding_work_(0),
|
|
101
120
|
stopped_(false),
|
|
102
121
|
shutdown_(false),
|
|
103
|
-
concurrency_hint_(concurrency_hint)
|
|
122
|
+
concurrency_hint_(concurrency_hint),
|
|
123
|
+
thread_(0)
|
|
104
124
|
{
|
|
105
125
|
BOOST_ASIO_HANDLER_TRACKING_INIT;
|
|
126
|
+
|
|
127
|
+
if (own_thread)
|
|
128
|
+
{
|
|
129
|
+
++outstanding_work_;
|
|
130
|
+
boost::asio::detail::signal_blocker sb;
|
|
131
|
+
thread_ = new boost::asio::detail::thread(thread_function(this));
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
scheduler::~scheduler()
|
|
136
|
+
{
|
|
137
|
+
if (thread_)
|
|
138
|
+
{
|
|
139
|
+
mutex::scoped_lock lock(mutex_);
|
|
140
|
+
shutdown_ = true;
|
|
141
|
+
stop_all_threads(lock);
|
|
142
|
+
lock.unlock();
|
|
143
|
+
thread_->join();
|
|
144
|
+
delete thread_;
|
|
145
|
+
}
|
|
106
146
|
}
|
|
107
147
|
|
|
108
148
|
void scheduler::shutdown()
|
|
109
149
|
{
|
|
110
150
|
mutex::scoped_lock lock(mutex_);
|
|
111
151
|
shutdown_ = true;
|
|
152
|
+
if (thread_)
|
|
153
|
+
stop_all_threads(lock);
|
|
112
154
|
lock.unlock();
|
|
113
155
|
|
|
156
|
+
// Join thread to ensure task operation is returned to queue.
|
|
157
|
+
if (thread_)
|
|
158
|
+
{
|
|
159
|
+
thread_->join();
|
|
160
|
+
delete thread_;
|
|
161
|
+
thread_ = 0;
|
|
162
|
+
}
|
|
163
|
+
|
|
114
164
|
// Destroy handler objects.
|
|
115
165
|
while (!op_queue_.empty())
|
|
116
166
|
{
|
|
@@ -275,6 +325,12 @@ void scheduler::compensating_work_started()
|
|
|
275
325
|
++static_cast<thread_info*>(this_thread)->private_outstanding_work;
|
|
276
326
|
}
|
|
277
327
|
|
|
328
|
+
void scheduler::capture_current_exception()
|
|
329
|
+
{
|
|
330
|
+
if (thread_info_base* this_thread = thread_call_stack::contains(this))
|
|
331
|
+
this_thread->capture_current_exception();
|
|
332
|
+
}
|
|
333
|
+
|
|
278
334
|
void scheduler::post_immediate_completion(
|
|
279
335
|
scheduler::operation* op, bool is_continuation)
|
|
280
336
|
{
|
|
@@ -298,6 +354,30 @@ void scheduler::post_immediate_completion(
|
|
|
298
354
|
wake_one_thread_and_unlock(lock);
|
|
299
355
|
}
|
|
300
356
|
|
|
357
|
+
void scheduler::post_immediate_completions(std::size_t n,
|
|
358
|
+
op_queue<scheduler::operation>& ops, bool is_continuation)
|
|
359
|
+
{
|
|
360
|
+
#if defined(BOOST_ASIO_HAS_THREADS)
|
|
361
|
+
if (one_thread_ || is_continuation)
|
|
362
|
+
{
|
|
363
|
+
if (thread_info_base* this_thread = thread_call_stack::contains(this))
|
|
364
|
+
{
|
|
365
|
+
static_cast<thread_info*>(this_thread)->private_outstanding_work
|
|
366
|
+
+= static_cast<long>(n);
|
|
367
|
+
static_cast<thread_info*>(this_thread)->private_op_queue.push(ops);
|
|
368
|
+
return;
|
|
369
|
+
}
|
|
370
|
+
}
|
|
371
|
+
#else // defined(BOOST_ASIO_HAS_THREADS)
|
|
372
|
+
(void)is_continuation;
|
|
373
|
+
#endif // defined(BOOST_ASIO_HAS_THREADS)
|
|
374
|
+
|
|
375
|
+
increment(outstanding_work_, static_cast<long>(n));
|
|
376
|
+
mutex::scoped_lock lock(mutex_);
|
|
377
|
+
op_queue_.push(ops);
|
|
378
|
+
wake_one_thread_and_unlock(lock);
|
|
379
|
+
}
|
|
380
|
+
|
|
301
381
|
void scheduler::post_deferred_completion(scheduler::operation* op)
|
|
302
382
|
{
|
|
303
383
|
#if defined(BOOST_ASIO_HAS_THREADS)
|
|
@@ -399,6 +479,7 @@ std::size_t scheduler::do_run_one(mutex::scoped_lock& lock,
|
|
|
399
479
|
|
|
400
480
|
// Complete the operation. May throw an exception. Deletes the object.
|
|
401
481
|
o->complete(this, ec, task_result);
|
|
482
|
+
this_thread.rethrow_pending_exception();
|
|
402
483
|
|
|
403
484
|
return 1;
|
|
404
485
|
}
|
|
@@ -479,6 +560,7 @@ std::size_t scheduler::do_wait_one(mutex::scoped_lock& lock,
|
|
|
479
560
|
|
|
480
561
|
// Complete the operation. May throw an exception. Deletes the object.
|
|
481
562
|
o->complete(this, ec, task_result);
|
|
563
|
+
this_thread.rethrow_pending_exception();
|
|
482
564
|
|
|
483
565
|
return 1;
|
|
484
566
|
}
|
|
@@ -533,6 +615,7 @@ std::size_t scheduler::do_poll_one(mutex::scoped_lock& lock,
|
|
|
533
615
|
|
|
534
616
|
// Complete the operation. May throw an exception. Deletes the object.
|
|
535
617
|
o->complete(this, ec, task_result);
|
|
618
|
+
this_thread.rethrow_pending_exception();
|
|
536
619
|
|
|
537
620
|
return 1;
|
|
538
621
|
}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// detail/impl/select_reactor.hpp
|
|
3
3
|
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
4
4
|
//
|
|
5
|
-
// Copyright (c) 2003-
|
|
5
|
+
// Copyright (c) 2003-2020 Christopher M. Kohlhoff (chris at kohlhoff dot com)
|
|
6
6
|
//
|
|
7
7
|
// Distributed under the Boost Software License, Version 1.0. (See accompanying
|
|
8
8
|
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// detail/impl/select_reactor.ipp
|
|
3
3
|
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
4
4
|
//
|
|
5
|
-
// Copyright (c) 2003-
|
|
5
|
+
// Copyright (c) 2003-2020 Christopher M. Kohlhoff (chris at kohlhoff dot com)
|
|
6
6
|
//
|
|
7
7
|
// Distributed under the Boost Software License, Version 1.0. (See accompanying
|
|
8
8
|
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
|
@@ -81,13 +81,14 @@ void select_reactor::shutdown()
|
|
|
81
81
|
shutdown_ = true;
|
|
82
82
|
#if defined(BOOST_ASIO_HAS_IOCP)
|
|
83
83
|
stop_thread_ = true;
|
|
84
|
+
if (thread_)
|
|
85
|
+
interrupter_.interrupt();
|
|
84
86
|
#endif // defined(BOOST_ASIO_HAS_IOCP)
|
|
85
87
|
lock.unlock();
|
|
86
88
|
|
|
87
89
|
#if defined(BOOST_ASIO_HAS_IOCP)
|
|
88
90
|
if (thread_)
|
|
89
91
|
{
|
|
90
|
-
interrupter_.interrupt();
|
|
91
92
|
thread_->join();
|
|
92
93
|
delete thread_;
|
|
93
94
|
thread_ = 0;
|
|
@@ -240,7 +241,11 @@ void select_reactor::run(long usec, op_queue<operation>& ops)
|
|
|
240
241
|
// Reset the interrupter.
|
|
241
242
|
if (retval > 0 && fd_sets_[read_op].is_set(interrupter_.read_descriptor()))
|
|
242
243
|
{
|
|
243
|
-
interrupter_.reset()
|
|
244
|
+
if (!interrupter_.reset())
|
|
245
|
+
{
|
|
246
|
+
lock.lock();
|
|
247
|
+
interrupter_.recreate();
|
|
248
|
+
}
|
|
244
249
|
--retval;
|
|
245
250
|
}
|
|
246
251
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// detail/impl/service_registry.hpp
|
|
3
3
|
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
4
4
|
//
|
|
5
|
-
// Copyright (c) 2003-
|
|
5
|
+
// Copyright (c) 2003-2020 Christopher M. Kohlhoff (chris at kohlhoff dot com)
|
|
6
6
|
//
|
|
7
7
|
// Distributed under the Boost Software License, Version 1.0. (See accompanying
|
|
8
8
|
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// detail/impl/service_registry.ipp
|
|
3
3
|
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
4
4
|
//
|
|
5
|
-
// Copyright (c) 2003-
|
|
5
|
+
// Copyright (c) 2003-2020 Christopher M. Kohlhoff (chris at kohlhoff dot com)
|
|
6
6
|
//
|
|
7
7
|
// Distributed under the Boost Software License, Version 1.0. (See accompanying
|
|
8
8
|
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// detail/impl/signal_set_service.ipp
|
|
3
3
|
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
4
4
|
//
|
|
5
|
-
// Copyright (c) 2003-
|
|
5
|
+
// Copyright (c) 2003-2020 Christopher M. Kohlhoff (chris at kohlhoff dot com)
|
|
6
6
|
//
|
|
7
7
|
// Distributed under the Boost Software License, Version 1.0. (See accompanying
|
|
8
8
|
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
|
@@ -90,7 +90,8 @@ class signal_set_service::pipe_read_op : public reactor_op
|
|
|
90
90
|
{
|
|
91
91
|
public:
|
|
92
92
|
pipe_read_op()
|
|
93
|
-
: reactor_op(
|
|
93
|
+
: reactor_op(boost::system::error_code(),
|
|
94
|
+
&pipe_read_op::do_perform, pipe_read_op::do_complete)
|
|
94
95
|
{
|
|
95
96
|
}
|
|
96
97
|
|
|
@@ -119,14 +120,13 @@ public:
|
|
|
119
120
|
// && !defined(BOOST_ASIO_WINDOWS_RUNTIME)
|
|
120
121
|
// && !defined(__CYGWIN__)
|
|
121
122
|
|
|
122
|
-
signal_set_service::signal_set_service(
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
io_context_(boost::asio::use_service<io_context_impl>(io_context)),
|
|
123
|
+
signal_set_service::signal_set_service(execution_context& context)
|
|
124
|
+
: execution_context_service_base<signal_set_service>(context),
|
|
125
|
+
scheduler_(boost::asio::use_service<scheduler_impl>(context)),
|
|
126
126
|
#if !defined(BOOST_ASIO_WINDOWS) \
|
|
127
127
|
&& !defined(BOOST_ASIO_WINDOWS_RUNTIME) \
|
|
128
128
|
&& !defined(__CYGWIN__)
|
|
129
|
-
reactor_(boost::asio::use_service<reactor>(
|
|
129
|
+
reactor_(boost::asio::use_service<reactor>(context)),
|
|
130
130
|
#endif // !defined(BOOST_ASIO_WINDOWS)
|
|
131
131
|
// && !defined(BOOST_ASIO_WINDOWS_RUNTIME)
|
|
132
132
|
// && !defined(__CYGWIN__)
|
|
@@ -170,11 +170,10 @@ void signal_set_service::shutdown()
|
|
|
170
170
|
}
|
|
171
171
|
}
|
|
172
172
|
|
|
173
|
-
|
|
173
|
+
scheduler_.abandon_operations(ops);
|
|
174
174
|
}
|
|
175
175
|
|
|
176
|
-
void signal_set_service::notify_fork(
|
|
177
|
-
boost::asio::io_context::fork_event fork_ev)
|
|
176
|
+
void signal_set_service::notify_fork(execution_context::fork_event fork_ev)
|
|
178
177
|
{
|
|
179
178
|
#if !defined(BOOST_ASIO_WINDOWS) \
|
|
180
179
|
&& !defined(BOOST_ASIO_WINDOWS_RUNTIME) \
|
|
@@ -184,7 +183,7 @@ void signal_set_service::notify_fork(
|
|
|
184
183
|
|
|
185
184
|
switch (fork_ev)
|
|
186
185
|
{
|
|
187
|
-
case
|
|
186
|
+
case execution_context::fork_prepare:
|
|
188
187
|
{
|
|
189
188
|
int read_descriptor = state->read_descriptor_;
|
|
190
189
|
state->fork_prepared_ = true;
|
|
@@ -193,7 +192,7 @@ void signal_set_service::notify_fork(
|
|
|
193
192
|
reactor_.cleanup_descriptor_data(reactor_data_);
|
|
194
193
|
}
|
|
195
194
|
break;
|
|
196
|
-
case
|
|
195
|
+
case execution_context::fork_parent:
|
|
197
196
|
if (state->fork_prepared_)
|
|
198
197
|
{
|
|
199
198
|
int read_descriptor = state->read_descriptor_;
|
|
@@ -203,7 +202,7 @@ void signal_set_service::notify_fork(
|
|
|
203
202
|
read_descriptor, reactor_data_, new pipe_read_op);
|
|
204
203
|
}
|
|
205
204
|
break;
|
|
206
|
-
case
|
|
205
|
+
case execution_context::fork_child:
|
|
207
206
|
if (state->fork_prepared_)
|
|
208
207
|
{
|
|
209
208
|
boost::asio::detail::signal_blocker blocker;
|
|
@@ -442,7 +441,7 @@ boost::system::error_code signal_set_service::cancel(
|
|
|
442
441
|
signal_set_service::implementation_type& impl,
|
|
443
442
|
boost::system::error_code& ec)
|
|
444
443
|
{
|
|
445
|
-
BOOST_ASIO_HANDLER_OPERATION((
|
|
444
|
+
BOOST_ASIO_HANDLER_OPERATION((scheduler_.context(),
|
|
446
445
|
"signal_set", &impl, 0, "cancel"));
|
|
447
446
|
|
|
448
447
|
op_queue<operation> ops;
|
|
@@ -458,7 +457,7 @@ boost::system::error_code signal_set_service::cancel(
|
|
|
458
457
|
}
|
|
459
458
|
}
|
|
460
459
|
|
|
461
|
-
|
|
460
|
+
scheduler_.post_deferred_completions(ops);
|
|
462
461
|
|
|
463
462
|
ec = boost::system::error_code();
|
|
464
463
|
return ec;
|
|
@@ -494,7 +493,7 @@ void signal_set_service::deliver_signal(int signal_number)
|
|
|
494
493
|
reg = reg->next_in_table_;
|
|
495
494
|
}
|
|
496
495
|
|
|
497
|
-
service->
|
|
496
|
+
service->scheduler_.post_deferred_completions(ops);
|
|
498
497
|
|
|
499
498
|
service = service->next_;
|
|
500
499
|
}
|
|
@@ -511,17 +510,17 @@ void signal_set_service::add_service(signal_set_service* service)
|
|
|
511
510
|
open_descriptors();
|
|
512
511
|
#endif // !defined(BOOST_ASIO_WINDOWS) && !defined(__CYGWIN__)
|
|
513
512
|
|
|
514
|
-
// If
|
|
515
|
-
//
|
|
513
|
+
// If a scheduler_ object is thread-unsafe then it must be the only
|
|
514
|
+
// scheduler used to create signal_set objects.
|
|
516
515
|
if (state->service_list_ != 0)
|
|
517
516
|
{
|
|
518
517
|
if (!BOOST_ASIO_CONCURRENCY_HINT_IS_LOCKING(SCHEDULER,
|
|
519
|
-
service->
|
|
518
|
+
service->scheduler_.concurrency_hint())
|
|
520
519
|
|| !BOOST_ASIO_CONCURRENCY_HINT_IS_LOCKING(SCHEDULER,
|
|
521
|
-
state->service_list_->
|
|
520
|
+
state->service_list_->scheduler_.concurrency_hint()))
|
|
522
521
|
{
|
|
523
522
|
std::logic_error ex(
|
|
524
|
-
"Thread-unsafe
|
|
523
|
+
"Thread-unsafe execution context objects require "
|
|
525
524
|
"exclusive access to signal handling.");
|
|
526
525
|
boost::asio::detail::throw_exception(ex);
|
|
527
526
|
}
|
|
@@ -640,7 +639,7 @@ void signal_set_service::close_descriptors()
|
|
|
640
639
|
void signal_set_service::start_wait_op(
|
|
641
640
|
signal_set_service::implementation_type& impl, signal_op* op)
|
|
642
641
|
{
|
|
643
|
-
|
|
642
|
+
scheduler_.work_started();
|
|
644
643
|
|
|
645
644
|
signal_state* state = get_signal_state();
|
|
646
645
|
static_mutex::scoped_lock lock(state->mutex_);
|
|
@@ -652,7 +651,7 @@ void signal_set_service::start_wait_op(
|
|
|
652
651
|
{
|
|
653
652
|
--reg->undelivered_;
|
|
654
653
|
op->signal_number_ = reg->signal_number_;
|
|
655
|
-
|
|
654
|
+
scheduler_.post_deferred_completion(op);
|
|
656
655
|
return;
|
|
657
656
|
}
|
|
658
657
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// detail/impl/socket_ops.ipp
|
|
3
3
|
// ~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
4
4
|
//
|
|
5
|
-
// Copyright (c) 2003-
|
|
5
|
+
// Copyright (c) 2003-2020 Christopher M. Kohlhoff (chris at kohlhoff dot com)
|
|
6
6
|
//
|
|
7
7
|
// Distributed under the Boost Software License, Version 1.0. (See accompanying
|
|
8
8
|
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
|
@@ -74,18 +74,23 @@ inline void clear_last_error()
|
|
|
74
74
|
|
|
75
75
|
#if !defined(BOOST_ASIO_WINDOWS_RUNTIME)
|
|
76
76
|
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
boost::system::error_code& ec)
|
|
77
|
+
inline void get_last_error(
|
|
78
|
+
boost::system::error_code& ec, bool is_error_condition)
|
|
80
79
|
{
|
|
80
|
+
if (!is_error_condition)
|
|
81
|
+
{
|
|
82
|
+
ec.assign(0, ec.category());
|
|
83
|
+
}
|
|
84
|
+
else
|
|
85
|
+
{
|
|
81
86
|
#if defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
|
|
82
|
-
|
|
83
|
-
|
|
87
|
+
ec = boost::system::error_code(WSAGetLastError(),
|
|
88
|
+
boost::asio::error::get_system_category());
|
|
84
89
|
#else
|
|
85
|
-
|
|
86
|
-
|
|
90
|
+
ec = boost::system::error_code(errno,
|
|
91
|
+
boost::asio::error::get_system_category());
|
|
87
92
|
#endif
|
|
88
|
-
|
|
93
|
+
}
|
|
89
94
|
}
|
|
90
95
|
|
|
91
96
|
template <typename SockLenType>
|
|
@@ -108,17 +113,16 @@ socket_type accept(socket_type s, socket_addr_type* addr,
|
|
|
108
113
|
return invalid_socket;
|
|
109
114
|
}
|
|
110
115
|
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
socket_type new_s = error_wrapper(call_accept(
|
|
114
|
-
&msghdr::msg_namelen, s, addr, addrlen), ec);
|
|
116
|
+
socket_type new_s = call_accept(&msghdr::msg_namelen, s, addr, addrlen);
|
|
117
|
+
get_last_error(ec, new_s == invalid_socket);
|
|
115
118
|
if (new_s == invalid_socket)
|
|
116
119
|
return new_s;
|
|
117
120
|
|
|
118
121
|
#if defined(__MACH__) && defined(__APPLE__) || defined(__FreeBSD__)
|
|
119
122
|
int optval = 1;
|
|
120
|
-
int result =
|
|
121
|
-
|
|
123
|
+
int result = ::setsockopt(new_s, SOL_SOCKET,
|
|
124
|
+
SO_NOSIGPIPE, &optval, sizeof(optval));
|
|
125
|
+
get_last_error(ec, result != 0);
|
|
122
126
|
if (result != 0)
|
|
123
127
|
{
|
|
124
128
|
::close(new_s);
|
|
@@ -126,7 +130,7 @@ socket_type accept(socket_type s, socket_addr_type* addr,
|
|
|
126
130
|
}
|
|
127
131
|
#endif
|
|
128
132
|
|
|
129
|
-
ec
|
|
133
|
+
ec.assign(0, ec.category());
|
|
130
134
|
return new_s;
|
|
131
135
|
}
|
|
132
136
|
|
|
@@ -283,11 +287,8 @@ int bind(socket_type s, const socket_addr_type* addr,
|
|
|
283
287
|
return socket_error_retval;
|
|
284
288
|
}
|
|
285
289
|
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
&msghdr::msg_namelen, s, addr, addrlen), ec);
|
|
289
|
-
if (result == 0)
|
|
290
|
-
ec = boost::system::error_code();
|
|
290
|
+
int result = call_bind(&msghdr::msg_namelen, s, addr, addrlen);
|
|
291
|
+
get_last_error(ec, result != 0);
|
|
291
292
|
return result;
|
|
292
293
|
}
|
|
293
294
|
|
|
@@ -310,12 +311,12 @@ int close(socket_type s, state_type& state,
|
|
|
310
311
|
SO_LINGER, &opt, sizeof(opt), ignored_ec);
|
|
311
312
|
}
|
|
312
313
|
|
|
313
|
-
clear_last_error();
|
|
314
314
|
#if defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
|
|
315
|
-
result =
|
|
315
|
+
result = ::closesocket(s);
|
|
316
316
|
#else // defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
|
|
317
|
-
result =
|
|
317
|
+
result = ::close(s);
|
|
318
318
|
#endif // defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
|
|
319
|
+
get_last_error(ec, result != 0);
|
|
319
320
|
|
|
320
321
|
if (result != 0
|
|
321
322
|
&& (ec == boost::asio::error::would_block
|
|
@@ -331,28 +332,26 @@ int close(socket_type s, state_type& state,
|
|
|
331
332
|
ioctl_arg_type arg = 0;
|
|
332
333
|
::ioctlsocket(s, FIONBIO, &arg);
|
|
333
334
|
#else // defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
|
|
334
|
-
# if defined(__SYMBIAN32__)
|
|
335
|
+
# if defined(__SYMBIAN32__) || defined(__EMSCRIPTEN__)
|
|
335
336
|
int flags = ::fcntl(s, F_GETFL, 0);
|
|
336
337
|
if (flags >= 0)
|
|
337
338
|
::fcntl(s, F_SETFL, flags & ~O_NONBLOCK);
|
|
338
|
-
# else // defined(__SYMBIAN32__)
|
|
339
|
+
# else // defined(__SYMBIAN32__) || defined(__EMSCRIPTEN__)
|
|
339
340
|
ioctl_arg_type arg = 0;
|
|
340
341
|
::ioctl(s, FIONBIO, &arg);
|
|
341
|
-
# endif // defined(__SYMBIAN32__)
|
|
342
|
+
# endif // defined(__SYMBIAN32__) || defined(__EMSCRIPTEN__)
|
|
342
343
|
#endif // defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
|
|
343
344
|
state &= ~non_blocking;
|
|
344
345
|
|
|
345
|
-
clear_last_error();
|
|
346
346
|
#if defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
|
|
347
|
-
result =
|
|
347
|
+
result = ::closesocket(s);
|
|
348
348
|
#else // defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
|
|
349
|
-
result =
|
|
349
|
+
result = ::close(s);
|
|
350
350
|
#endif // defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
|
|
351
|
+
get_last_error(ec, result != 0);
|
|
351
352
|
}
|
|
352
353
|
}
|
|
353
354
|
|
|
354
|
-
if (result == 0)
|
|
355
|
-
ec = boost::system::error_code();
|
|
356
355
|
return result;
|
|
357
356
|
}
|
|
358
357
|
|
|
@@ -365,26 +364,27 @@ bool set_user_non_blocking(socket_type s,
|
|
|
365
364
|
return false;
|
|
366
365
|
}
|
|
367
366
|
|
|
368
|
-
clear_last_error();
|
|
369
367
|
#if defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
|
|
370
368
|
ioctl_arg_type arg = (value ? 1 : 0);
|
|
371
|
-
int result =
|
|
372
|
-
|
|
373
|
-
|
|
369
|
+
int result = ::ioctlsocket(s, FIONBIO, &arg);
|
|
370
|
+
get_last_error(ec, result < 0);
|
|
371
|
+
#elif defined(__SYMBIAN32__) || defined(__EMSCRIPTEN__)
|
|
372
|
+
int result = ::fcntl(s, F_GETFL, 0);
|
|
373
|
+
get_last_error(ec, result < 0);
|
|
374
374
|
if (result >= 0)
|
|
375
375
|
{
|
|
376
|
-
clear_last_error();
|
|
377
376
|
int flag = (value ? (result | O_NONBLOCK) : (result & ~O_NONBLOCK));
|
|
378
|
-
result =
|
|
377
|
+
result = ::fcntl(s, F_SETFL, flag);
|
|
378
|
+
get_last_error(ec, result < 0);
|
|
379
379
|
}
|
|
380
380
|
#else
|
|
381
381
|
ioctl_arg_type arg = (value ? 1 : 0);
|
|
382
|
-
int result =
|
|
382
|
+
int result = ::ioctl(s, FIONBIO, &arg);
|
|
383
|
+
get_last_error(ec, result < 0);
|
|
383
384
|
#endif
|
|
384
385
|
|
|
385
386
|
if (result >= 0)
|
|
386
387
|
{
|
|
387
|
-
ec = boost::system::error_code();
|
|
388
388
|
if (value)
|
|
389
389
|
state |= user_set_non_blocking;
|
|
390
390
|
else
|
|
@@ -418,26 +418,27 @@ bool set_internal_non_blocking(socket_type s,
|
|
|
418
418
|
return false;
|
|
419
419
|
}
|
|
420
420
|
|
|
421
|
-
clear_last_error();
|
|
422
421
|
#if defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
|
|
423
422
|
ioctl_arg_type arg = (value ? 1 : 0);
|
|
424
|
-
int result =
|
|
425
|
-
|
|
426
|
-
|
|
423
|
+
int result = ::ioctlsocket(s, FIONBIO, &arg);
|
|
424
|
+
get_last_error(ec, result < 0);
|
|
425
|
+
#elif defined(__SYMBIAN32__) || defined(__EMSCRIPTEN__)
|
|
426
|
+
int result = ::fcntl(s, F_GETFL, 0);
|
|
427
|
+
get_last_error(ec, result < 0);
|
|
427
428
|
if (result >= 0)
|
|
428
429
|
{
|
|
429
|
-
clear_last_error();
|
|
430
430
|
int flag = (value ? (result | O_NONBLOCK) : (result & ~O_NONBLOCK));
|
|
431
|
-
result =
|
|
431
|
+
result = ::fcntl(s, F_SETFL, flag);
|
|
432
|
+
get_last_error(ec, result < 0);
|
|
432
433
|
}
|
|
433
434
|
#else
|
|
434
435
|
ioctl_arg_type arg = (value ? 1 : 0);
|
|
435
|
-
int result =
|
|
436
|
+
int result = ::ioctl(s, FIONBIO, &arg);
|
|
437
|
+
get_last_error(ec, result < 0);
|
|
436
438
|
#endif
|
|
437
439
|
|
|
438
440
|
if (result >= 0)
|
|
439
441
|
{
|
|
440
|
-
ec = boost::system::error_code();
|
|
441
442
|
if (value)
|
|
442
443
|
state |= internal_non_blocking;
|
|
443
444
|
else
|
|
@@ -456,10 +457,8 @@ int shutdown(socket_type s, int what, boost::system::error_code& ec)
|
|
|
456
457
|
return socket_error_retval;
|
|
457
458
|
}
|
|
458
459
|
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
if (result == 0)
|
|
462
|
-
ec = boost::system::error_code();
|
|
460
|
+
int result = ::shutdown(s, what);
|
|
461
|
+
get_last_error(ec, result != 0);
|
|
463
462
|
return result;
|
|
464
463
|
}
|
|
465
464
|
|
|
@@ -479,13 +478,10 @@ int connect(socket_type s, const socket_addr_type* addr,
|
|
|
479
478
|
return socket_error_retval;
|
|
480
479
|
}
|
|
481
480
|
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
&msghdr::msg_namelen, s, addr, addrlen), ec);
|
|
485
|
-
if (result == 0)
|
|
486
|
-
ec = boost::system::error_code();
|
|
481
|
+
int result = call_connect(&msghdr::msg_namelen, s, addr, addrlen);
|
|
482
|
+
get_last_error(ec, result != 0);
|
|
487
483
|
#if defined(__linux__)
|
|
488
|
-
|
|
484
|
+
if (result != 0 && ec == boost::asio::error::try_again)
|
|
489
485
|
ec = boost::asio::error::no_buffer_space;
|
|
490
486
|
#endif // defined(__linux__)
|
|
491
487
|
return result;
|
|
@@ -601,7 +597,7 @@ bool non_blocking_connect(socket_type s, boost::system::error_code& ec)
|
|
|
601
597
|
boost::asio::error::get_system_category());
|
|
602
598
|
}
|
|
603
599
|
else
|
|
604
|
-
ec
|
|
600
|
+
ec.assign(0, ec.category());
|
|
605
601
|
}
|
|
606
602
|
|
|
607
603
|
return true;
|
|
@@ -618,10 +614,8 @@ int socketpair(int af, int type, int protocol,
|
|
|
618
614
|
ec = boost::asio::error::operation_not_supported;
|
|
619
615
|
return socket_error_retval;
|
|
620
616
|
#else
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
if (result == 0)
|
|
624
|
-
ec = boost::system::error_code();
|
|
617
|
+
int result = ::socketpair(af, type, protocol, sv);
|
|
618
|
+
get_last_error(ec, result != 0);
|
|
625
619
|
return result;
|
|
626
620
|
#endif
|
|
627
621
|
}
|
|
@@ -637,20 +631,18 @@ bool sockatmark(socket_type s, boost::system::error_code& ec)
|
|
|
637
631
|
#if defined(SIOCATMARK)
|
|
638
632
|
ioctl_arg_type value = 0;
|
|
639
633
|
# if defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
|
|
640
|
-
int result =
|
|
634
|
+
int result = ::ioctlsocket(s, SIOCATMARK, &value);
|
|
641
635
|
# else // defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
|
|
642
|
-
int result =
|
|
636
|
+
int result = ::ioctl(s, SIOCATMARK, &value);
|
|
643
637
|
# endif // defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
|
|
644
|
-
|
|
645
|
-
ec = boost::system::error_code();
|
|
638
|
+
get_last_error(ec, result < 0);
|
|
646
639
|
# if defined(ENOTTY)
|
|
647
640
|
if (ec.value() == ENOTTY)
|
|
648
641
|
ec = boost::asio::error::not_socket;
|
|
649
642
|
# endif // defined(ENOTTY)
|
|
650
643
|
#else // defined(SIOCATMARK)
|
|
651
|
-
int value =
|
|
652
|
-
|
|
653
|
-
ec = boost::system::error_code();
|
|
644
|
+
int value = ::sockatmark(s);
|
|
645
|
+
get_last_error(ec, result < 0);
|
|
654
646
|
#endif // defined(SIOCATMARK)
|
|
655
647
|
|
|
656
648
|
return ec ? false : value != 0;
|
|
@@ -666,12 +658,11 @@ size_t available(socket_type s, boost::system::error_code& ec)
|
|
|
666
658
|
|
|
667
659
|
ioctl_arg_type value = 0;
|
|
668
660
|
#if defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
|
|
669
|
-
int result =
|
|
661
|
+
int result = ::ioctlsocket(s, FIONREAD, &value);
|
|
670
662
|
#else // defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
|
|
671
|
-
int result =
|
|
663
|
+
int result = ::ioctl(s, FIONREAD, &value);
|
|
672
664
|
#endif // defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
|
|
673
|
-
|
|
674
|
-
ec = boost::system::error_code();
|
|
665
|
+
get_last_error(ec, result < 0);
|
|
675
666
|
#if defined(ENOTTY)
|
|
676
667
|
if (ec.value() == ENOTTY)
|
|
677
668
|
ec = boost::asio::error::not_socket;
|
|
@@ -688,10 +679,8 @@ int listen(socket_type s, int backlog, boost::system::error_code& ec)
|
|
|
688
679
|
return socket_error_retval;
|
|
689
680
|
}
|
|
690
681
|
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
if (result == 0)
|
|
694
|
-
ec = boost::system::error_code();
|
|
682
|
+
int result = ::listen(s, backlog);
|
|
683
|
+
get_last_error(ec, result != 0);
|
|
695
684
|
return result;
|
|
696
685
|
}
|
|
697
686
|
|
|
@@ -759,31 +748,60 @@ inline void init_msghdr_msg_name(T& name, const socket_addr_type* addr)
|
|
|
759
748
|
signed_size_type recv(socket_type s, buf* bufs, size_t count,
|
|
760
749
|
int flags, boost::system::error_code& ec)
|
|
761
750
|
{
|
|
762
|
-
clear_last_error();
|
|
763
751
|
#if defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
|
|
764
752
|
// Receive some data.
|
|
765
753
|
DWORD recv_buf_count = static_cast<DWORD>(count);
|
|
766
754
|
DWORD bytes_transferred = 0;
|
|
767
755
|
DWORD recv_flags = flags;
|
|
768
|
-
int result =
|
|
769
|
-
|
|
756
|
+
int result = ::WSARecv(s, bufs, recv_buf_count,
|
|
757
|
+
&bytes_transferred, &recv_flags, 0, 0);
|
|
758
|
+
get_last_error(ec, true);
|
|
770
759
|
if (ec.value() == ERROR_NETNAME_DELETED)
|
|
771
760
|
ec = boost::asio::error::connection_reset;
|
|
772
761
|
else if (ec.value() == ERROR_PORT_UNREACHABLE)
|
|
773
762
|
ec = boost::asio::error::connection_refused;
|
|
774
763
|
else if (ec.value() == WSAEMSGSIZE || ec.value() == ERROR_MORE_DATA)
|
|
775
|
-
|
|
764
|
+
result = 0;
|
|
776
765
|
if (result != 0)
|
|
777
766
|
return socket_error_retval;
|
|
778
|
-
ec
|
|
767
|
+
ec.assign(0, ec.category());
|
|
779
768
|
return bytes_transferred;
|
|
780
769
|
#else // defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
|
|
781
770
|
msghdr msg = msghdr();
|
|
782
771
|
msg.msg_iov = bufs;
|
|
783
772
|
msg.msg_iovlen = static_cast<int>(count);
|
|
784
|
-
signed_size_type result =
|
|
785
|
-
|
|
786
|
-
|
|
773
|
+
signed_size_type result = ::recvmsg(s, &msg, flags);
|
|
774
|
+
get_last_error(ec, result < 0);
|
|
775
|
+
return result;
|
|
776
|
+
#endif // defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
|
|
777
|
+
}
|
|
778
|
+
|
|
779
|
+
signed_size_type recv1(socket_type s, void* data, size_t size,
|
|
780
|
+
int flags, boost::system::error_code& ec)
|
|
781
|
+
{
|
|
782
|
+
#if defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
|
|
783
|
+
// Receive some data.
|
|
784
|
+
WSABUF buf;
|
|
785
|
+
buf.buf = const_cast<char*>(static_cast<const char*>(data));
|
|
786
|
+
buf.len = static_cast<ULONG>(size);
|
|
787
|
+
DWORD bytes_transferred = 0;
|
|
788
|
+
DWORD recv_flags = flags;
|
|
789
|
+
int result = ::WSARecv(s, &buf, 1,
|
|
790
|
+
&bytes_transferred, &recv_flags, 0, 0);
|
|
791
|
+
get_last_error(ec, true);
|
|
792
|
+
if (ec.value() == ERROR_NETNAME_DELETED)
|
|
793
|
+
ec = boost::asio::error::connection_reset;
|
|
794
|
+
else if (ec.value() == ERROR_PORT_UNREACHABLE)
|
|
795
|
+
ec = boost::asio::error::connection_refused;
|
|
796
|
+
else if (ec.value() == WSAEMSGSIZE || ec.value() == ERROR_MORE_DATA)
|
|
797
|
+
result = 0;
|
|
798
|
+
if (result != 0)
|
|
799
|
+
return socket_error_retval;
|
|
800
|
+
ec.assign(0, ec.category());
|
|
801
|
+
return bytes_transferred;
|
|
802
|
+
#else // defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
|
|
803
|
+
signed_size_type result = ::recv(s, static_cast<char*>(data), size, flags);
|
|
804
|
+
get_last_error(ec, result < 0);
|
|
787
805
|
return result;
|
|
788
806
|
#endif // defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
|
|
789
807
|
}
|
|
@@ -800,7 +818,7 @@ size_t sync_recv(socket_type s, state_type state, buf* bufs,
|
|
|
800
818
|
// A request to read 0 bytes on a stream is a no-op.
|
|
801
819
|
if (all_empty && (state & stream_oriented))
|
|
802
820
|
{
|
|
803
|
-
ec
|
|
821
|
+
ec.assign(0, ec.category());
|
|
804
822
|
return 0;
|
|
805
823
|
}
|
|
806
824
|
|
|
@@ -810,10 +828,51 @@ size_t sync_recv(socket_type s, state_type state, buf* bufs,
|
|
|
810
828
|
// Try to complete the operation without blocking.
|
|
811
829
|
signed_size_type bytes = socket_ops::recv(s, bufs, count, flags, ec);
|
|
812
830
|
|
|
831
|
+
// Check for EOF.
|
|
832
|
+
if ((state & stream_oriented) && bytes == 0)
|
|
833
|
+
{
|
|
834
|
+
ec = boost::asio::error::eof;
|
|
835
|
+
return 0;
|
|
836
|
+
}
|
|
837
|
+
|
|
813
838
|
// Check if operation succeeded.
|
|
814
|
-
if (bytes
|
|
839
|
+
if (bytes >= 0)
|
|
815
840
|
return bytes;
|
|
816
841
|
|
|
842
|
+
// Operation failed.
|
|
843
|
+
if ((state & user_set_non_blocking)
|
|
844
|
+
|| (ec != boost::asio::error::would_block
|
|
845
|
+
&& ec != boost::asio::error::try_again))
|
|
846
|
+
return 0;
|
|
847
|
+
|
|
848
|
+
// Wait for socket to become ready.
|
|
849
|
+
if (socket_ops::poll_read(s, 0, -1, ec) < 0)
|
|
850
|
+
return 0;
|
|
851
|
+
}
|
|
852
|
+
}
|
|
853
|
+
|
|
854
|
+
size_t sync_recv1(socket_type s, state_type state, void* data,
|
|
855
|
+
size_t size, int flags, boost::system::error_code& ec)
|
|
856
|
+
{
|
|
857
|
+
if (s == invalid_socket)
|
|
858
|
+
{
|
|
859
|
+
ec = boost::asio::error::bad_descriptor;
|
|
860
|
+
return 0;
|
|
861
|
+
}
|
|
862
|
+
|
|
863
|
+
// A request to read 0 bytes on a stream is a no-op.
|
|
864
|
+
if (size == 0 && (state & stream_oriented))
|
|
865
|
+
{
|
|
866
|
+
ec.assign(0, ec.category());
|
|
867
|
+
return 0;
|
|
868
|
+
}
|
|
869
|
+
|
|
870
|
+
// Read some data.
|
|
871
|
+
for (;;)
|
|
872
|
+
{
|
|
873
|
+
// Try to complete the operation without blocking.
|
|
874
|
+
signed_size_type bytes = socket_ops::recv1(s, data, size, flags, ec);
|
|
875
|
+
|
|
817
876
|
// Check for EOF.
|
|
818
877
|
if ((state & stream_oriented) && bytes == 0)
|
|
819
878
|
{
|
|
@@ -821,6 +880,10 @@ size_t sync_recv(socket_type s, state_type state, buf* bufs,
|
|
|
821
880
|
return 0;
|
|
822
881
|
}
|
|
823
882
|
|
|
883
|
+
// Check if operation succeeded.
|
|
884
|
+
if (bytes >= 0)
|
|
885
|
+
return bytes;
|
|
886
|
+
|
|
824
887
|
// Operation failed.
|
|
825
888
|
if ((state & user_set_non_blocking)
|
|
826
889
|
|| (ec != boost::asio::error::would_block
|
|
@@ -883,6 +946,13 @@ bool non_blocking_recv(socket_type s,
|
|
|
883
946
|
return true;
|
|
884
947
|
}
|
|
885
948
|
|
|
949
|
+
// Check if operation succeeded.
|
|
950
|
+
if (bytes >= 0)
|
|
951
|
+
{
|
|
952
|
+
bytes_transferred = bytes;
|
|
953
|
+
return true;
|
|
954
|
+
}
|
|
955
|
+
|
|
886
956
|
// Retry operation if interrupted by signal.
|
|
887
957
|
if (ec == boost::asio::error::interrupted)
|
|
888
958
|
continue;
|
|
@@ -892,15 +962,46 @@ bool non_blocking_recv(socket_type s,
|
|
|
892
962
|
|| ec == boost::asio::error::try_again)
|
|
893
963
|
return false;
|
|
894
964
|
|
|
895
|
-
// Operation
|
|
965
|
+
// Operation failed.
|
|
966
|
+
bytes_transferred = 0;
|
|
967
|
+
return true;
|
|
968
|
+
}
|
|
969
|
+
}
|
|
970
|
+
|
|
971
|
+
bool non_blocking_recv1(socket_type s,
|
|
972
|
+
void* data, size_t size, int flags, bool is_stream,
|
|
973
|
+
boost::system::error_code& ec, size_t& bytes_transferred)
|
|
974
|
+
{
|
|
975
|
+
for (;;)
|
|
976
|
+
{
|
|
977
|
+
// Read some data.
|
|
978
|
+
signed_size_type bytes = socket_ops::recv1(s, data, size, flags, ec);
|
|
979
|
+
|
|
980
|
+
// Check for end of stream.
|
|
981
|
+
if (is_stream && bytes == 0)
|
|
982
|
+
{
|
|
983
|
+
ec = boost::asio::error::eof;
|
|
984
|
+
return true;
|
|
985
|
+
}
|
|
986
|
+
|
|
987
|
+
// Check if operation succeeded.
|
|
896
988
|
if (bytes >= 0)
|
|
897
989
|
{
|
|
898
|
-
ec = boost::system::error_code();
|
|
899
990
|
bytes_transferred = bytes;
|
|
991
|
+
return true;
|
|
900
992
|
}
|
|
901
|
-
else
|
|
902
|
-
bytes_transferred = 0;
|
|
903
993
|
|
|
994
|
+
// Retry operation if interrupted by signal.
|
|
995
|
+
if (ec == boost::asio::error::interrupted)
|
|
996
|
+
continue;
|
|
997
|
+
|
|
998
|
+
// Check if we need to run the operation again.
|
|
999
|
+
if (ec == boost::asio::error::would_block
|
|
1000
|
+
|| ec == boost::asio::error::try_again)
|
|
1001
|
+
return false;
|
|
1002
|
+
|
|
1003
|
+
// Operation failed.
|
|
1004
|
+
bytes_transferred = 0;
|
|
904
1005
|
return true;
|
|
905
1006
|
}
|
|
906
1007
|
}
|
|
@@ -911,25 +1012,25 @@ signed_size_type recvfrom(socket_type s, buf* bufs, size_t count,
|
|
|
911
1012
|
int flags, socket_addr_type* addr, std::size_t* addrlen,
|
|
912
1013
|
boost::system::error_code& ec)
|
|
913
1014
|
{
|
|
914
|
-
clear_last_error();
|
|
915
1015
|
#if defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
|
|
916
1016
|
// Receive some data.
|
|
917
1017
|
DWORD recv_buf_count = static_cast<DWORD>(count);
|
|
918
1018
|
DWORD bytes_transferred = 0;
|
|
919
1019
|
DWORD recv_flags = flags;
|
|
920
1020
|
int tmp_addrlen = (int)*addrlen;
|
|
921
|
-
int result =
|
|
922
|
-
&bytes_transferred, &recv_flags, addr, &tmp_addrlen, 0, 0)
|
|
1021
|
+
int result = ::WSARecvFrom(s, bufs, recv_buf_count,
|
|
1022
|
+
&bytes_transferred, &recv_flags, addr, &tmp_addrlen, 0, 0);
|
|
1023
|
+
get_last_error(ec, true);
|
|
923
1024
|
*addrlen = (std::size_t)tmp_addrlen;
|
|
924
1025
|
if (ec.value() == ERROR_NETNAME_DELETED)
|
|
925
1026
|
ec = boost::asio::error::connection_reset;
|
|
926
1027
|
else if (ec.value() == ERROR_PORT_UNREACHABLE)
|
|
927
1028
|
ec = boost::asio::error::connection_refused;
|
|
928
1029
|
else if (ec.value() == WSAEMSGSIZE || ec.value() == ERROR_MORE_DATA)
|
|
929
|
-
|
|
1030
|
+
result = 0;
|
|
930
1031
|
if (result != 0)
|
|
931
1032
|
return socket_error_retval;
|
|
932
|
-
ec
|
|
1033
|
+
ec.assign(0, ec.category());
|
|
933
1034
|
return bytes_transferred;
|
|
934
1035
|
#else // defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
|
|
935
1036
|
msghdr msg = msghdr();
|
|
@@ -937,10 +1038,56 @@ signed_size_type recvfrom(socket_type s, buf* bufs, size_t count,
|
|
|
937
1038
|
msg.msg_namelen = static_cast<int>(*addrlen);
|
|
938
1039
|
msg.msg_iov = bufs;
|
|
939
1040
|
msg.msg_iovlen = static_cast<int>(count);
|
|
940
|
-
signed_size_type result =
|
|
1041
|
+
signed_size_type result = ::recvmsg(s, &msg, flags);
|
|
1042
|
+
get_last_error(ec, result < 0);
|
|
941
1043
|
*addrlen = msg.msg_namelen;
|
|
942
|
-
|
|
943
|
-
|
|
1044
|
+
return result;
|
|
1045
|
+
#endif // defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
|
|
1046
|
+
}
|
|
1047
|
+
|
|
1048
|
+
template <typename SockLenType>
|
|
1049
|
+
inline signed_size_type call_recvfrom(SockLenType msghdr::*,
|
|
1050
|
+
socket_type s, void* data, size_t size, int flags,
|
|
1051
|
+
socket_addr_type* addr, std::size_t* addrlen)
|
|
1052
|
+
{
|
|
1053
|
+
SockLenType tmp_addrlen = addrlen ? (SockLenType)*addrlen : 0;
|
|
1054
|
+
signed_size_type result = ::recvfrom(s, static_cast<char*>(data),
|
|
1055
|
+
size, flags, addr, addrlen ? &tmp_addrlen : 0);
|
|
1056
|
+
if (addrlen)
|
|
1057
|
+
*addrlen = (std::size_t)tmp_addrlen;
|
|
1058
|
+
return result;
|
|
1059
|
+
}
|
|
1060
|
+
|
|
1061
|
+
signed_size_type recvfrom1(socket_type s, void* data, size_t size,
|
|
1062
|
+
int flags, socket_addr_type* addr, std::size_t* addrlen,
|
|
1063
|
+
boost::system::error_code& ec)
|
|
1064
|
+
{
|
|
1065
|
+
#if defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
|
|
1066
|
+
// Receive some data.
|
|
1067
|
+
WSABUF buf;
|
|
1068
|
+
buf.buf = static_cast<char*>(data);
|
|
1069
|
+
buf.len = static_cast<ULONG>(size);
|
|
1070
|
+
DWORD bytes_transferred = 0;
|
|
1071
|
+
DWORD recv_flags = flags;
|
|
1072
|
+
int tmp_addrlen = (int)*addrlen;
|
|
1073
|
+
int result = ::WSARecvFrom(s, &buf, 1, &bytes_transferred,
|
|
1074
|
+
&recv_flags, addr, &tmp_addrlen, 0, 0);
|
|
1075
|
+
get_last_error(ec, true);
|
|
1076
|
+
*addrlen = (std::size_t)tmp_addrlen;
|
|
1077
|
+
if (ec.value() == ERROR_NETNAME_DELETED)
|
|
1078
|
+
ec = boost::asio::error::connection_reset;
|
|
1079
|
+
else if (ec.value() == ERROR_PORT_UNREACHABLE)
|
|
1080
|
+
ec = boost::asio::error::connection_refused;
|
|
1081
|
+
else if (ec.value() == WSAEMSGSIZE || ec.value() == ERROR_MORE_DATA)
|
|
1082
|
+
result = 0;
|
|
1083
|
+
if (result != 0)
|
|
1084
|
+
return socket_error_retval;
|
|
1085
|
+
ec.assign(0, ec.category());
|
|
1086
|
+
return bytes_transferred;
|
|
1087
|
+
#else // defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
|
|
1088
|
+
signed_size_type result = call_recvfrom(&msghdr::msg_namelen,
|
|
1089
|
+
s, data, size, flags, addr, addrlen);
|
|
1090
|
+
get_last_error(ec, result < 0);
|
|
944
1091
|
return result;
|
|
945
1092
|
#endif // defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
|
|
946
1093
|
}
|
|
@@ -978,6 +1125,39 @@ size_t sync_recvfrom(socket_type s, state_type state, buf* bufs,
|
|
|
978
1125
|
}
|
|
979
1126
|
}
|
|
980
1127
|
|
|
1128
|
+
size_t sync_recvfrom1(socket_type s, state_type state, void* data,
|
|
1129
|
+
size_t size, int flags, socket_addr_type* addr,
|
|
1130
|
+
std::size_t* addrlen, boost::system::error_code& ec)
|
|
1131
|
+
{
|
|
1132
|
+
if (s == invalid_socket)
|
|
1133
|
+
{
|
|
1134
|
+
ec = boost::asio::error::bad_descriptor;
|
|
1135
|
+
return 0;
|
|
1136
|
+
}
|
|
1137
|
+
|
|
1138
|
+
// Read some data.
|
|
1139
|
+
for (;;)
|
|
1140
|
+
{
|
|
1141
|
+
// Try to complete the operation without blocking.
|
|
1142
|
+
signed_size_type bytes = socket_ops::recvfrom1(
|
|
1143
|
+
s, data, size, flags, addr, addrlen, ec);
|
|
1144
|
+
|
|
1145
|
+
// Check if operation succeeded.
|
|
1146
|
+
if (bytes >= 0)
|
|
1147
|
+
return bytes;
|
|
1148
|
+
|
|
1149
|
+
// Operation failed.
|
|
1150
|
+
if ((state & user_set_non_blocking)
|
|
1151
|
+
|| (ec != boost::asio::error::would_block
|
|
1152
|
+
&& ec != boost::asio::error::try_again))
|
|
1153
|
+
return 0;
|
|
1154
|
+
|
|
1155
|
+
// Wait for socket to become ready.
|
|
1156
|
+
if (socket_ops::poll_read(s, 0, -1, ec) < 0)
|
|
1157
|
+
return 0;
|
|
1158
|
+
}
|
|
1159
|
+
}
|
|
1160
|
+
|
|
981
1161
|
#if defined(BOOST_ASIO_HAS_IOCP)
|
|
982
1162
|
|
|
983
1163
|
void complete_iocp_recvfrom(
|
|
@@ -1015,6 +1195,13 @@ bool non_blocking_recvfrom(socket_type s,
|
|
|
1015
1195
|
signed_size_type bytes = socket_ops::recvfrom(
|
|
1016
1196
|
s, bufs, count, flags, addr, addrlen, ec);
|
|
1017
1197
|
|
|
1198
|
+
// Check if operation succeeded.
|
|
1199
|
+
if (bytes >= 0)
|
|
1200
|
+
{
|
|
1201
|
+
bytes_transferred = bytes;
|
|
1202
|
+
return true;
|
|
1203
|
+
}
|
|
1204
|
+
|
|
1018
1205
|
// Retry operation if interrupted by signal.
|
|
1019
1206
|
if (ec == boost::asio::error::interrupted)
|
|
1020
1207
|
continue;
|
|
@@ -1024,15 +1211,41 @@ bool non_blocking_recvfrom(socket_type s,
|
|
|
1024
1211
|
|| ec == boost::asio::error::try_again)
|
|
1025
1212
|
return false;
|
|
1026
1213
|
|
|
1027
|
-
// Operation
|
|
1214
|
+
// Operation failed.
|
|
1215
|
+
bytes_transferred = 0;
|
|
1216
|
+
return true;
|
|
1217
|
+
}
|
|
1218
|
+
}
|
|
1219
|
+
|
|
1220
|
+
bool non_blocking_recvfrom1(socket_type s,
|
|
1221
|
+
void* data, size_t size, int flags,
|
|
1222
|
+
socket_addr_type* addr, std::size_t* addrlen,
|
|
1223
|
+
boost::system::error_code& ec, size_t& bytes_transferred)
|
|
1224
|
+
{
|
|
1225
|
+
for (;;)
|
|
1226
|
+
{
|
|
1227
|
+
// Read some data.
|
|
1228
|
+
signed_size_type bytes = socket_ops::recvfrom1(
|
|
1229
|
+
s, data, size, flags, addr, addrlen, ec);
|
|
1230
|
+
|
|
1231
|
+
// Check if operation succeeded.
|
|
1028
1232
|
if (bytes >= 0)
|
|
1029
1233
|
{
|
|
1030
|
-
ec = boost::system::error_code();
|
|
1031
1234
|
bytes_transferred = bytes;
|
|
1235
|
+
return true;
|
|
1032
1236
|
}
|
|
1033
|
-
else
|
|
1034
|
-
bytes_transferred = 0;
|
|
1035
1237
|
|
|
1238
|
+
// Retry operation if interrupted by signal.
|
|
1239
|
+
if (ec == boost::asio::error::interrupted)
|
|
1240
|
+
continue;
|
|
1241
|
+
|
|
1242
|
+
// Check if we need to run the operation again.
|
|
1243
|
+
if (ec == boost::asio::error::would_block
|
|
1244
|
+
|| ec == boost::asio::error::try_again)
|
|
1245
|
+
return false;
|
|
1246
|
+
|
|
1247
|
+
// Operation failed.
|
|
1248
|
+
bytes_transferred = 0;
|
|
1036
1249
|
return true;
|
|
1037
1250
|
}
|
|
1038
1251
|
}
|
|
@@ -1042,7 +1255,6 @@ bool non_blocking_recvfrom(socket_type s,
|
|
|
1042
1255
|
signed_size_type recvmsg(socket_type s, buf* bufs, size_t count,
|
|
1043
1256
|
int in_flags, int& out_flags, boost::system::error_code& ec)
|
|
1044
1257
|
{
|
|
1045
|
-
clear_last_error();
|
|
1046
1258
|
#if defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
|
|
1047
1259
|
out_flags = 0;
|
|
1048
1260
|
return socket_ops::recv(s, bufs, count, in_flags, ec);
|
|
@@ -1050,12 +1262,10 @@ signed_size_type recvmsg(socket_type s, buf* bufs, size_t count,
|
|
|
1050
1262
|
msghdr msg = msghdr();
|
|
1051
1263
|
msg.msg_iov = bufs;
|
|
1052
1264
|
msg.msg_iovlen = static_cast<int>(count);
|
|
1053
|
-
signed_size_type result =
|
|
1265
|
+
signed_size_type result = ::recvmsg(s, &msg, in_flags);
|
|
1266
|
+
get_last_error(ec, result < 0);
|
|
1054
1267
|
if (result >= 0)
|
|
1055
|
-
{
|
|
1056
|
-
ec = boost::system::error_code();
|
|
1057
1268
|
out_flags = msg.msg_flags;
|
|
1058
|
-
}
|
|
1059
1269
|
else
|
|
1060
1270
|
out_flags = 0;
|
|
1061
1271
|
return result;
|
|
@@ -1131,6 +1341,13 @@ bool non_blocking_recvmsg(socket_type s,
|
|
|
1131
1341
|
signed_size_type bytes = socket_ops::recvmsg(
|
|
1132
1342
|
s, bufs, count, in_flags, out_flags, ec);
|
|
1133
1343
|
|
|
1344
|
+
// Check if operation succeeded.
|
|
1345
|
+
if (bytes >= 0)
|
|
1346
|
+
{
|
|
1347
|
+
bytes_transferred = bytes;
|
|
1348
|
+
return true;
|
|
1349
|
+
}
|
|
1350
|
+
|
|
1134
1351
|
// Retry operation if interrupted by signal.
|
|
1135
1352
|
if (ec == boost::asio::error::interrupted)
|
|
1136
1353
|
continue;
|
|
@@ -1140,15 +1357,8 @@ bool non_blocking_recvmsg(socket_type s,
|
|
|
1140
1357
|
|| ec == boost::asio::error::try_again)
|
|
1141
1358
|
return false;
|
|
1142
1359
|
|
|
1143
|
-
// Operation
|
|
1144
|
-
|
|
1145
|
-
{
|
|
1146
|
-
ec = boost::system::error_code();
|
|
1147
|
-
bytes_transferred = bytes;
|
|
1148
|
-
}
|
|
1149
|
-
else
|
|
1150
|
-
bytes_transferred = 0;
|
|
1151
|
-
|
|
1360
|
+
// Operation failed.
|
|
1361
|
+
bytes_transferred = 0;
|
|
1152
1362
|
return true;
|
|
1153
1363
|
}
|
|
1154
1364
|
}
|
|
@@ -1158,21 +1368,21 @@ bool non_blocking_recvmsg(socket_type s,
|
|
|
1158
1368
|
signed_size_type send(socket_type s, const buf* bufs, size_t count,
|
|
1159
1369
|
int flags, boost::system::error_code& ec)
|
|
1160
1370
|
{
|
|
1161
|
-
clear_last_error();
|
|
1162
1371
|
#if defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
|
|
1163
1372
|
// Send the data.
|
|
1164
1373
|
DWORD send_buf_count = static_cast<DWORD>(count);
|
|
1165
1374
|
DWORD bytes_transferred = 0;
|
|
1166
1375
|
DWORD send_flags = flags;
|
|
1167
|
-
int result =
|
|
1168
|
-
send_buf_count, &bytes_transferred, send_flags, 0, 0)
|
|
1376
|
+
int result = ::WSASend(s, const_cast<buf*>(bufs),
|
|
1377
|
+
send_buf_count, &bytes_transferred, send_flags, 0, 0);
|
|
1378
|
+
get_last_error(ec, true);
|
|
1169
1379
|
if (ec.value() == ERROR_NETNAME_DELETED)
|
|
1170
1380
|
ec = boost::asio::error::connection_reset;
|
|
1171
1381
|
else if (ec.value() == ERROR_PORT_UNREACHABLE)
|
|
1172
1382
|
ec = boost::asio::error::connection_refused;
|
|
1173
1383
|
if (result != 0)
|
|
1174
1384
|
return socket_error_retval;
|
|
1175
|
-
ec
|
|
1385
|
+
ec.assign(0, ec.category());
|
|
1176
1386
|
return bytes_transferred;
|
|
1177
1387
|
#else // defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
|
|
1178
1388
|
msghdr msg = msghdr();
|
|
@@ -1181,9 +1391,40 @@ signed_size_type send(socket_type s, const buf* bufs, size_t count,
|
|
|
1181
1391
|
#if defined(__linux__)
|
|
1182
1392
|
flags |= MSG_NOSIGNAL;
|
|
1183
1393
|
#endif // defined(__linux__)
|
|
1184
|
-
signed_size_type result =
|
|
1185
|
-
|
|
1186
|
-
|
|
1394
|
+
signed_size_type result = ::sendmsg(s, &msg, flags);
|
|
1395
|
+
get_last_error(ec, result < 0);
|
|
1396
|
+
return result;
|
|
1397
|
+
#endif // defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
|
|
1398
|
+
}
|
|
1399
|
+
|
|
1400
|
+
signed_size_type send1(socket_type s, const void* data, size_t size,
|
|
1401
|
+
int flags, boost::system::error_code& ec)
|
|
1402
|
+
{
|
|
1403
|
+
#if defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
|
|
1404
|
+
// Send the data.
|
|
1405
|
+
WSABUF buf;
|
|
1406
|
+
buf.buf = const_cast<char*>(static_cast<const char*>(data));
|
|
1407
|
+
buf.len = static_cast<ULONG>(size);
|
|
1408
|
+
DWORD bytes_transferred = 0;
|
|
1409
|
+
DWORD send_flags = flags;
|
|
1410
|
+
int result = ::WSASend(s, &buf, 1,
|
|
1411
|
+
&bytes_transferred, send_flags, 0, 0);
|
|
1412
|
+
get_last_error(ec, true);
|
|
1413
|
+
if (ec.value() == ERROR_NETNAME_DELETED)
|
|
1414
|
+
ec = boost::asio::error::connection_reset;
|
|
1415
|
+
else if (ec.value() == ERROR_PORT_UNREACHABLE)
|
|
1416
|
+
ec = boost::asio::error::connection_refused;
|
|
1417
|
+
if (result != 0)
|
|
1418
|
+
return socket_error_retval;
|
|
1419
|
+
ec.assign(0, ec.category());
|
|
1420
|
+
return bytes_transferred;
|
|
1421
|
+
#else // defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
|
|
1422
|
+
#if defined(__linux__)
|
|
1423
|
+
flags |= MSG_NOSIGNAL;
|
|
1424
|
+
#endif // defined(__linux__)
|
|
1425
|
+
signed_size_type result = ::send(s,
|
|
1426
|
+
static_cast<const char*>(data), size, flags);
|
|
1427
|
+
get_last_error(ec, result < 0);
|
|
1187
1428
|
return result;
|
|
1188
1429
|
#endif // defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
|
|
1189
1430
|
}
|
|
@@ -1200,7 +1441,7 @@ size_t sync_send(socket_type s, state_type state, const buf* bufs,
|
|
|
1200
1441
|
// A request to write 0 bytes to a stream is a no-op.
|
|
1201
1442
|
if (all_empty && (state & stream_oriented))
|
|
1202
1443
|
{
|
|
1203
|
-
ec
|
|
1444
|
+
ec.assign(0, ec.category());
|
|
1204
1445
|
return 0;
|
|
1205
1446
|
}
|
|
1206
1447
|
|
|
@@ -1226,6 +1467,44 @@ size_t sync_send(socket_type s, state_type state, const buf* bufs,
|
|
|
1226
1467
|
}
|
|
1227
1468
|
}
|
|
1228
1469
|
|
|
1470
|
+
size_t sync_send1(socket_type s, state_type state, const void* data,
|
|
1471
|
+
size_t size, int flags, boost::system::error_code& ec)
|
|
1472
|
+
{
|
|
1473
|
+
if (s == invalid_socket)
|
|
1474
|
+
{
|
|
1475
|
+
ec = boost::asio::error::bad_descriptor;
|
|
1476
|
+
return 0;
|
|
1477
|
+
}
|
|
1478
|
+
|
|
1479
|
+
// A request to write 0 bytes to a stream is a no-op.
|
|
1480
|
+
if (size == 0 && (state & stream_oriented))
|
|
1481
|
+
{
|
|
1482
|
+
ec.assign(0, ec.category());
|
|
1483
|
+
return 0;
|
|
1484
|
+
}
|
|
1485
|
+
|
|
1486
|
+
// Read some data.
|
|
1487
|
+
for (;;)
|
|
1488
|
+
{
|
|
1489
|
+
// Try to complete the operation without blocking.
|
|
1490
|
+
signed_size_type bytes = socket_ops::send1(s, data, size, flags, ec);
|
|
1491
|
+
|
|
1492
|
+
// Check if operation succeeded.
|
|
1493
|
+
if (bytes >= 0)
|
|
1494
|
+
return bytes;
|
|
1495
|
+
|
|
1496
|
+
// Operation failed.
|
|
1497
|
+
if ((state & user_set_non_blocking)
|
|
1498
|
+
|| (ec != boost::asio::error::would_block
|
|
1499
|
+
&& ec != boost::asio::error::try_again))
|
|
1500
|
+
return 0;
|
|
1501
|
+
|
|
1502
|
+
// Wait for socket to become ready.
|
|
1503
|
+
if (socket_ops::poll_write(s, 0, -1, ec) < 0)
|
|
1504
|
+
return 0;
|
|
1505
|
+
}
|
|
1506
|
+
}
|
|
1507
|
+
|
|
1229
1508
|
#if defined(BOOST_ASIO_HAS_IOCP)
|
|
1230
1509
|
|
|
1231
1510
|
void complete_iocp_send(
|
|
@@ -1257,6 +1536,13 @@ bool non_blocking_send(socket_type s,
|
|
|
1257
1536
|
// Write some data.
|
|
1258
1537
|
signed_size_type bytes = socket_ops::send(s, bufs, count, flags, ec);
|
|
1259
1538
|
|
|
1539
|
+
// Check if operation succeeded.
|
|
1540
|
+
if (bytes >= 0)
|
|
1541
|
+
{
|
|
1542
|
+
bytes_transferred = bytes;
|
|
1543
|
+
return true;
|
|
1544
|
+
}
|
|
1545
|
+
|
|
1260
1546
|
// Retry operation if interrupted by signal.
|
|
1261
1547
|
if (ec == boost::asio::error::interrupted)
|
|
1262
1548
|
continue;
|
|
@@ -1266,15 +1552,39 @@ bool non_blocking_send(socket_type s,
|
|
|
1266
1552
|
|| ec == boost::asio::error::try_again)
|
|
1267
1553
|
return false;
|
|
1268
1554
|
|
|
1269
|
-
// Operation
|
|
1555
|
+
// Operation failed.
|
|
1556
|
+
bytes_transferred = 0;
|
|
1557
|
+
return true;
|
|
1558
|
+
}
|
|
1559
|
+
}
|
|
1560
|
+
|
|
1561
|
+
bool non_blocking_send1(socket_type s,
|
|
1562
|
+
const void* data, size_t size, int flags,
|
|
1563
|
+
boost::system::error_code& ec, size_t& bytes_transferred)
|
|
1564
|
+
{
|
|
1565
|
+
for (;;)
|
|
1566
|
+
{
|
|
1567
|
+
// Write some data.
|
|
1568
|
+
signed_size_type bytes = socket_ops::send1(s, data, size, flags, ec);
|
|
1569
|
+
|
|
1570
|
+
// Check if operation succeeded.
|
|
1270
1571
|
if (bytes >= 0)
|
|
1271
1572
|
{
|
|
1272
|
-
ec = boost::system::error_code();
|
|
1273
1573
|
bytes_transferred = bytes;
|
|
1574
|
+
return true;
|
|
1274
1575
|
}
|
|
1275
|
-
else
|
|
1276
|
-
bytes_transferred = 0;
|
|
1277
1576
|
|
|
1577
|
+
// Retry operation if interrupted by signal.
|
|
1578
|
+
if (ec == boost::asio::error::interrupted)
|
|
1579
|
+
continue;
|
|
1580
|
+
|
|
1581
|
+
// Check if we need to run the operation again.
|
|
1582
|
+
if (ec == boost::asio::error::would_block
|
|
1583
|
+
|| ec == boost::asio::error::try_again)
|
|
1584
|
+
return false;
|
|
1585
|
+
|
|
1586
|
+
// Operation failed.
|
|
1587
|
+
bytes_transferred = 0;
|
|
1278
1588
|
return true;
|
|
1279
1589
|
}
|
|
1280
1590
|
}
|
|
@@ -1285,21 +1595,21 @@ signed_size_type sendto(socket_type s, const buf* bufs, size_t count,
|
|
|
1285
1595
|
int flags, const socket_addr_type* addr, std::size_t addrlen,
|
|
1286
1596
|
boost::system::error_code& ec)
|
|
1287
1597
|
{
|
|
1288
|
-
clear_last_error();
|
|
1289
1598
|
#if defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
|
|
1290
1599
|
// Send the data.
|
|
1291
1600
|
DWORD send_buf_count = static_cast<DWORD>(count);
|
|
1292
1601
|
DWORD bytes_transferred = 0;
|
|
1293
|
-
int result =
|
|
1602
|
+
int result = ::WSASendTo(s, const_cast<buf*>(bufs),
|
|
1294
1603
|
send_buf_count, &bytes_transferred, flags, addr,
|
|
1295
|
-
static_cast<int>(addrlen), 0, 0)
|
|
1604
|
+
static_cast<int>(addrlen), 0, 0);
|
|
1605
|
+
get_last_error(ec, true);
|
|
1296
1606
|
if (ec.value() == ERROR_NETNAME_DELETED)
|
|
1297
1607
|
ec = boost::asio::error::connection_reset;
|
|
1298
1608
|
else if (ec.value() == ERROR_PORT_UNREACHABLE)
|
|
1299
1609
|
ec = boost::asio::error::connection_refused;
|
|
1300
1610
|
if (result != 0)
|
|
1301
1611
|
return socket_error_retval;
|
|
1302
|
-
ec
|
|
1612
|
+
ec.assign(0, ec.category());
|
|
1303
1613
|
return bytes_transferred;
|
|
1304
1614
|
#else // defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
|
|
1305
1615
|
msghdr msg = msghdr();
|
|
@@ -1310,9 +1620,49 @@ signed_size_type sendto(socket_type s, const buf* bufs, size_t count,
|
|
|
1310
1620
|
#if defined(__linux__)
|
|
1311
1621
|
flags |= MSG_NOSIGNAL;
|
|
1312
1622
|
#endif // defined(__linux__)
|
|
1313
|
-
signed_size_type result =
|
|
1314
|
-
|
|
1315
|
-
|
|
1623
|
+
signed_size_type result = ::sendmsg(s, &msg, flags);
|
|
1624
|
+
get_last_error(ec, result < 0);
|
|
1625
|
+
return result;
|
|
1626
|
+
#endif // defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
|
|
1627
|
+
}
|
|
1628
|
+
|
|
1629
|
+
template <typename SockLenType>
|
|
1630
|
+
inline signed_size_type call_sendto(SockLenType msghdr::*,
|
|
1631
|
+
socket_type s, const void* data, size_t size, int flags,
|
|
1632
|
+
const socket_addr_type* addr, std::size_t addrlen)
|
|
1633
|
+
{
|
|
1634
|
+
return ::sendto(s, static_cast<char*>(const_cast<void*>(data)),
|
|
1635
|
+
size, flags, addr, (SockLenType)addrlen);
|
|
1636
|
+
}
|
|
1637
|
+
|
|
1638
|
+
signed_size_type sendto1(socket_type s, const void* data, size_t size,
|
|
1639
|
+
int flags, const socket_addr_type* addr, std::size_t addrlen,
|
|
1640
|
+
boost::system::error_code& ec)
|
|
1641
|
+
{
|
|
1642
|
+
#if defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
|
|
1643
|
+
// Send the data.
|
|
1644
|
+
WSABUF buf;
|
|
1645
|
+
buf.buf = const_cast<char*>(static_cast<const char*>(data));
|
|
1646
|
+
buf.len = static_cast<ULONG>(size);
|
|
1647
|
+
DWORD bytes_transferred = 0;
|
|
1648
|
+
int result = ::WSASendTo(s, &buf, 1, &bytes_transferred,
|
|
1649
|
+
flags, addr, static_cast<int>(addrlen), 0, 0);
|
|
1650
|
+
get_last_error(ec, true);
|
|
1651
|
+
if (ec.value() == ERROR_NETNAME_DELETED)
|
|
1652
|
+
ec = boost::asio::error::connection_reset;
|
|
1653
|
+
else if (ec.value() == ERROR_PORT_UNREACHABLE)
|
|
1654
|
+
ec = boost::asio::error::connection_refused;
|
|
1655
|
+
if (result != 0)
|
|
1656
|
+
return socket_error_retval;
|
|
1657
|
+
ec.assign(0, ec.category());
|
|
1658
|
+
return bytes_transferred;
|
|
1659
|
+
#else // defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
|
|
1660
|
+
#if defined(__linux__)
|
|
1661
|
+
flags |= MSG_NOSIGNAL;
|
|
1662
|
+
#endif // defined(__linux__)
|
|
1663
|
+
signed_size_type result = call_sendto(&msghdr::msg_namelen,
|
|
1664
|
+
s, data, size, flags, addr, addrlen);
|
|
1665
|
+
get_last_error(ec, result < 0);
|
|
1316
1666
|
return result;
|
|
1317
1667
|
#endif // defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
|
|
1318
1668
|
}
|
|
@@ -1350,6 +1700,39 @@ size_t sync_sendto(socket_type s, state_type state, const buf* bufs,
|
|
|
1350
1700
|
}
|
|
1351
1701
|
}
|
|
1352
1702
|
|
|
1703
|
+
size_t sync_sendto1(socket_type s, state_type state, const void* data,
|
|
1704
|
+
size_t size, int flags, const socket_addr_type* addr,
|
|
1705
|
+
std::size_t addrlen, boost::system::error_code& ec)
|
|
1706
|
+
{
|
|
1707
|
+
if (s == invalid_socket)
|
|
1708
|
+
{
|
|
1709
|
+
ec = boost::asio::error::bad_descriptor;
|
|
1710
|
+
return 0;
|
|
1711
|
+
}
|
|
1712
|
+
|
|
1713
|
+
// Write some data.
|
|
1714
|
+
for (;;)
|
|
1715
|
+
{
|
|
1716
|
+
// Try to complete the operation without blocking.
|
|
1717
|
+
signed_size_type bytes = socket_ops::sendto1(
|
|
1718
|
+
s, data, size, flags, addr, addrlen, ec);
|
|
1719
|
+
|
|
1720
|
+
// Check if operation succeeded.
|
|
1721
|
+
if (bytes >= 0)
|
|
1722
|
+
return bytes;
|
|
1723
|
+
|
|
1724
|
+
// Operation failed.
|
|
1725
|
+
if ((state & user_set_non_blocking)
|
|
1726
|
+
|| (ec != boost::asio::error::would_block
|
|
1727
|
+
&& ec != boost::asio::error::try_again))
|
|
1728
|
+
return 0;
|
|
1729
|
+
|
|
1730
|
+
// Wait for socket to become ready.
|
|
1731
|
+
if (socket_ops::poll_write(s, 0, -1, ec) < 0)
|
|
1732
|
+
return 0;
|
|
1733
|
+
}
|
|
1734
|
+
}
|
|
1735
|
+
|
|
1353
1736
|
#if !defined(BOOST_ASIO_HAS_IOCP)
|
|
1354
1737
|
|
|
1355
1738
|
bool non_blocking_sendto(socket_type s,
|
|
@@ -1363,6 +1746,13 @@ bool non_blocking_sendto(socket_type s,
|
|
|
1363
1746
|
signed_size_type bytes = socket_ops::sendto(
|
|
1364
1747
|
s, bufs, count, flags, addr, addrlen, ec);
|
|
1365
1748
|
|
|
1749
|
+
// Check if operation succeeded.
|
|
1750
|
+
if (bytes >= 0)
|
|
1751
|
+
{
|
|
1752
|
+
bytes_transferred = bytes;
|
|
1753
|
+
return true;
|
|
1754
|
+
}
|
|
1755
|
+
|
|
1366
1756
|
// Retry operation if interrupted by signal.
|
|
1367
1757
|
if (ec == boost::asio::error::interrupted)
|
|
1368
1758
|
continue;
|
|
@@ -1372,15 +1762,41 @@ bool non_blocking_sendto(socket_type s,
|
|
|
1372
1762
|
|| ec == boost::asio::error::try_again)
|
|
1373
1763
|
return false;
|
|
1374
1764
|
|
|
1375
|
-
// Operation
|
|
1765
|
+
// Operation failed.
|
|
1766
|
+
bytes_transferred = 0;
|
|
1767
|
+
return true;
|
|
1768
|
+
}
|
|
1769
|
+
}
|
|
1770
|
+
|
|
1771
|
+
bool non_blocking_sendto1(socket_type s,
|
|
1772
|
+
const void* data, size_t size, int flags,
|
|
1773
|
+
const socket_addr_type* addr, std::size_t addrlen,
|
|
1774
|
+
boost::system::error_code& ec, size_t& bytes_transferred)
|
|
1775
|
+
{
|
|
1776
|
+
for (;;)
|
|
1777
|
+
{
|
|
1778
|
+
// Write some data.
|
|
1779
|
+
signed_size_type bytes = socket_ops::sendto1(
|
|
1780
|
+
s, data, size, flags, addr, addrlen, ec);
|
|
1781
|
+
|
|
1782
|
+
// Check if operation succeeded.
|
|
1376
1783
|
if (bytes >= 0)
|
|
1377
1784
|
{
|
|
1378
|
-
ec = boost::system::error_code();
|
|
1379
1785
|
bytes_transferred = bytes;
|
|
1786
|
+
return true;
|
|
1380
1787
|
}
|
|
1381
|
-
else
|
|
1382
|
-
bytes_transferred = 0;
|
|
1383
1788
|
|
|
1789
|
+
// Retry operation if interrupted by signal.
|
|
1790
|
+
if (ec == boost::asio::error::interrupted)
|
|
1791
|
+
continue;
|
|
1792
|
+
|
|
1793
|
+
// Check if we need to run the operation again.
|
|
1794
|
+
if (ec == boost::asio::error::would_block
|
|
1795
|
+
|| ec == boost::asio::error::try_again)
|
|
1796
|
+
return false;
|
|
1797
|
+
|
|
1798
|
+
// Operation failed.
|
|
1799
|
+
bytes_transferred = 0;
|
|
1384
1800
|
return true;
|
|
1385
1801
|
}
|
|
1386
1802
|
}
|
|
@@ -1390,10 +1806,9 @@ bool non_blocking_sendto(socket_type s,
|
|
|
1390
1806
|
socket_type socket(int af, int type, int protocol,
|
|
1391
1807
|
boost::system::error_code& ec)
|
|
1392
1808
|
{
|
|
1393
|
-
clear_last_error();
|
|
1394
1809
|
#if defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
|
|
1395
|
-
socket_type s =
|
|
1396
|
-
|
|
1810
|
+
socket_type s = ::WSASocketW(af, type, protocol, 0, 0, WSA_FLAG_OVERLAPPED);
|
|
1811
|
+
get_last_error(ec, s == invalid_socket);
|
|
1397
1812
|
if (s == invalid_socket)
|
|
1398
1813
|
return s;
|
|
1399
1814
|
|
|
@@ -1407,17 +1822,15 @@ socket_type socket(int af, int type, int protocol,
|
|
|
1407
1822
|
reinterpret_cast<const char*>(&optval), sizeof(optval));
|
|
1408
1823
|
}
|
|
1409
1824
|
|
|
1410
|
-
ec = boost::system::error_code();
|
|
1411
|
-
|
|
1412
1825
|
return s;
|
|
1413
1826
|
#elif defined(__MACH__) && defined(__APPLE__) || defined(__FreeBSD__)
|
|
1414
|
-
socket_type s =
|
|
1415
|
-
|
|
1416
|
-
return s;
|
|
1827
|
+
socket_type s = ::socket(af, type, protocol);
|
|
1828
|
+
get_last_error(ec, s < 0);
|
|
1417
1829
|
|
|
1418
1830
|
int optval = 1;
|
|
1419
|
-
int result =
|
|
1420
|
-
|
|
1831
|
+
int result = ::setsockopt(s, SOL_SOCKET,
|
|
1832
|
+
SO_NOSIGPIPE, &optval, sizeof(optval));
|
|
1833
|
+
get_last_error(ec, result != 0);
|
|
1421
1834
|
if (result != 0)
|
|
1422
1835
|
{
|
|
1423
1836
|
::close(s);
|
|
@@ -1426,9 +1839,8 @@ socket_type socket(int af, int type, int protocol,
|
|
|
1426
1839
|
|
|
1427
1840
|
return s;
|
|
1428
1841
|
#else
|
|
1429
|
-
int s =
|
|
1430
|
-
|
|
1431
|
-
ec = boost::system::error_code();
|
|
1842
|
+
int s = ::socket(af, type, protocol);
|
|
1843
|
+
get_last_error(ec, s < 0);
|
|
1432
1844
|
return s;
|
|
1433
1845
|
#endif
|
|
1434
1846
|
}
|
|
@@ -1470,7 +1882,7 @@ int setsockopt(socket_type s, state_type& state, int level, int optname,
|
|
|
1470
1882
|
state |= enable_connection_aborted;
|
|
1471
1883
|
else
|
|
1472
1884
|
state &= ~enable_connection_aborted;
|
|
1473
|
-
ec
|
|
1885
|
+
ec.assign(0, ec.category());
|
|
1474
1886
|
return 0;
|
|
1475
1887
|
}
|
|
1476
1888
|
|
|
@@ -1486,24 +1898,24 @@ int setsockopt(socket_type s, state_type& state, int level, int optname,
|
|
|
1486
1898
|
typedef int (WSAAPI *sso_t)(SOCKET, int, int, const char*, int);
|
|
1487
1899
|
if (sso_t sso = (sso_t)::GetProcAddress(winsock_module, "setsockopt"))
|
|
1488
1900
|
{
|
|
1489
|
-
|
|
1490
|
-
return error_wrapper(sso(s, level, optname,
|
|
1901
|
+
int result = sso(s, level, optname,
|
|
1491
1902
|
reinterpret_cast<const char*>(optval),
|
|
1492
|
-
static_cast<int>(optlen))
|
|
1903
|
+
static_cast<int>(optlen));
|
|
1904
|
+
get_last_error(ec, result != 0);
|
|
1905
|
+
return result;
|
|
1493
1906
|
}
|
|
1494
1907
|
}
|
|
1495
1908
|
ec = boost::asio::error::fault;
|
|
1496
1909
|
return socket_error_retval;
|
|
1497
1910
|
#else // defined(__BORLANDC__)
|
|
1498
|
-
|
|
1499
|
-
|
|
1500
|
-
|
|
1911
|
+
int result = call_setsockopt(&msghdr::msg_namelen,
|
|
1912
|
+
s, level, optname, optval, optlen);
|
|
1913
|
+
get_last_error(ec, result != 0);
|
|
1501
1914
|
if (result == 0)
|
|
1502
1915
|
{
|
|
1503
|
-
ec = boost::system::error_code();
|
|
1504
|
-
|
|
1505
1916
|
#if defined(__MACH__) && defined(__APPLE__) \
|
|
1506
|
-
|| defined(__NetBSD__) || defined(__FreeBSD__)
|
|
1917
|
+
|| defined(__NetBSD__) || defined(__FreeBSD__) \
|
|
1918
|
+
|| defined(__OpenBSD__) || defined(__QNX__)
|
|
1507
1919
|
// To implement portable behaviour for SO_REUSEADDR with UDP sockets we
|
|
1508
1920
|
// need to also set SO_REUSEPORT on BSD-based platforms.
|
|
1509
1921
|
if ((state & datagram_oriented)
|
|
@@ -1555,7 +1967,7 @@ int getsockopt(socket_type s, state_type state, int level, int optname,
|
|
|
1555
1967
|
}
|
|
1556
1968
|
|
|
1557
1969
|
*static_cast<int*>(optval) = (state & enable_connection_aborted) ? 1 : 0;
|
|
1558
|
-
ec
|
|
1970
|
+
ec.assign(0, ec.category());
|
|
1559
1971
|
return 0;
|
|
1560
1972
|
}
|
|
1561
1973
|
|
|
@@ -1568,10 +1980,10 @@ int getsockopt(socket_type s, state_type state, int level, int optname,
|
|
|
1568
1980
|
typedef int (WSAAPI *gso_t)(SOCKET, int, int, char*, int*);
|
|
1569
1981
|
if (gso_t gso = (gso_t)::GetProcAddress(winsock_module, "getsockopt"))
|
|
1570
1982
|
{
|
|
1571
|
-
clear_last_error();
|
|
1572
1983
|
int tmp_optlen = static_cast<int>(*optlen);
|
|
1573
|
-
int result =
|
|
1574
|
-
reinterpret_cast<char*>(optval), &tmp_optlen)
|
|
1984
|
+
int result = gso(s, level, optname,
|
|
1985
|
+
reinterpret_cast<char*>(optval), &tmp_optlen);
|
|
1986
|
+
get_last_error(ec, result != 0);
|
|
1575
1987
|
*optlen = static_cast<size_t>(tmp_optlen);
|
|
1576
1988
|
if (result != 0 && level == IPPROTO_IPV6 && optname == IPV6_V6ONLY
|
|
1577
1989
|
&& ec.value() == WSAENOPROTOOPT && *optlen == sizeof(DWORD))
|
|
@@ -1582,7 +1994,7 @@ int getsockopt(socket_type s, state_type state, int level, int optname,
|
|
|
1582
1994
|
// value is non-zero (i.e. true). This corresponds to the behavior of
|
|
1583
1995
|
// IPv6 sockets on Windows platforms pre-Vista.
|
|
1584
1996
|
*static_cast<DWORD*>(optval) = 1;
|
|
1585
|
-
ec
|
|
1997
|
+
ec.assign(0, ec.category());
|
|
1586
1998
|
}
|
|
1587
1999
|
return result;
|
|
1588
2000
|
}
|
|
@@ -1590,9 +2002,9 @@ int getsockopt(socket_type s, state_type state, int level, int optname,
|
|
|
1590
2002
|
ec = boost::asio::error::fault;
|
|
1591
2003
|
return socket_error_retval;
|
|
1592
2004
|
#elif defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
|
|
1593
|
-
|
|
1594
|
-
|
|
1595
|
-
|
|
2005
|
+
int result = call_getsockopt(&msghdr::msg_namelen,
|
|
2006
|
+
s, level, optname, optval, optlen);
|
|
2007
|
+
get_last_error(ec, result != 0);
|
|
1596
2008
|
if (result != 0 && level == IPPROTO_IPV6 && optname == IPV6_V6ONLY
|
|
1597
2009
|
&& ec.value() == WSAENOPROTOOPT && *optlen == sizeof(DWORD))
|
|
1598
2010
|
{
|
|
@@ -1602,15 +2014,13 @@ int getsockopt(socket_type s, state_type state, int level, int optname,
|
|
|
1602
2014
|
// non-zero (i.e. true). This corresponds to the behavior of IPv6 sockets
|
|
1603
2015
|
// on Windows platforms pre-Vista.
|
|
1604
2016
|
*static_cast<DWORD*>(optval) = 1;
|
|
1605
|
-
ec
|
|
2017
|
+
ec.assign(0, ec.category());
|
|
1606
2018
|
}
|
|
1607
|
-
if (result == 0)
|
|
1608
|
-
ec = boost::system::error_code();
|
|
1609
2019
|
return result;
|
|
1610
2020
|
#else // defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
|
|
1611
|
-
|
|
1612
|
-
|
|
1613
|
-
|
|
2021
|
+
int result = call_getsockopt(&msghdr::msg_namelen,
|
|
2022
|
+
s, level, optname, optval, optlen);
|
|
2023
|
+
get_last_error(ec, result != 0);
|
|
1614
2024
|
#if defined(__linux__)
|
|
1615
2025
|
if (result == 0 && level == SOL_SOCKET && *optlen == sizeof(int)
|
|
1616
2026
|
&& (optname == SO_SNDBUF || optname == SO_RCVBUF))
|
|
@@ -1623,8 +2033,6 @@ int getsockopt(socket_type s, state_type state, int level, int optname,
|
|
|
1623
2033
|
*static_cast<int*>(optval) /= 2;
|
|
1624
2034
|
}
|
|
1625
2035
|
#endif // defined(__linux__)
|
|
1626
|
-
if (result == 0)
|
|
1627
|
-
ec = boost::system::error_code();
|
|
1628
2036
|
return result;
|
|
1629
2037
|
#endif // defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
|
|
1630
2038
|
}
|
|
@@ -1667,7 +2075,7 @@ int getpeername(socket_type s, socket_addr_type* addr,
|
|
|
1667
2075
|
}
|
|
1668
2076
|
|
|
1669
2077
|
// The cached value is still valid.
|
|
1670
|
-
ec
|
|
2078
|
+
ec.assign(0, ec.category());
|
|
1671
2079
|
return 0;
|
|
1672
2080
|
}
|
|
1673
2081
|
#else // defined(BOOST_ASIO_WINDOWS) && !defined(BOOST_ASIO_WINDOWS_APP)
|
|
@@ -1676,11 +2084,8 @@ int getpeername(socket_type s, socket_addr_type* addr,
|
|
|
1676
2084
|
#endif // defined(BOOST_ASIO_WINDOWS) && !defined(BOOST_ASIO_WINDOWS_APP)
|
|
1677
2085
|
// || defined(__CYGWIN__)
|
|
1678
2086
|
|
|
1679
|
-
|
|
1680
|
-
|
|
1681
|
-
&msghdr::msg_namelen, s, addr, addrlen), ec);
|
|
1682
|
-
if (result == 0)
|
|
1683
|
-
ec = boost::system::error_code();
|
|
2087
|
+
int result = call_getpeername(&msghdr::msg_namelen, s, addr, addrlen);
|
|
2088
|
+
get_last_error(ec, result != 0);
|
|
1684
2089
|
return result;
|
|
1685
2090
|
}
|
|
1686
2091
|
|
|
@@ -1703,11 +2108,8 @@ int getsockname(socket_type s, socket_addr_type* addr,
|
|
|
1703
2108
|
return socket_error_retval;
|
|
1704
2109
|
}
|
|
1705
2110
|
|
|
1706
|
-
|
|
1707
|
-
|
|
1708
|
-
&msghdr::msg_namelen, s, addr, addrlen), ec);
|
|
1709
|
-
if (result == 0)
|
|
1710
|
-
ec = boost::system::error_code();
|
|
2111
|
+
int result = call_getsockname(&msghdr::msg_namelen, s, addr, addrlen);
|
|
2112
|
+
get_last_error(ec, result != 0);
|
|
1711
2113
|
return result;
|
|
1712
2114
|
}
|
|
1713
2115
|
|
|
@@ -1720,20 +2122,17 @@ int ioctl(socket_type s, state_type& state, int cmd,
|
|
|
1720
2122
|
return socket_error_retval;
|
|
1721
2123
|
}
|
|
1722
2124
|
|
|
1723
|
-
clear_last_error();
|
|
1724
2125
|
#if defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
|
|
1725
|
-
int result =
|
|
2126
|
+
int result = ::ioctlsocket(s, cmd, arg);
|
|
1726
2127
|
#elif defined(__MACH__) && defined(__APPLE__) \
|
|
1727
2128
|
|| defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__)
|
|
1728
|
-
int result =
|
|
1729
|
-
static_cast<unsigned int>(cmd), arg), ec);
|
|
2129
|
+
int result = ::ioctl(s, static_cast<unsigned int>(cmd), arg);
|
|
1730
2130
|
#else
|
|
1731
|
-
int result =
|
|
2131
|
+
int result = ::ioctl(s, cmd, arg);
|
|
1732
2132
|
#endif
|
|
2133
|
+
get_last_error(ec, result < 0);
|
|
1733
2134
|
if (result >= 0)
|
|
1734
2135
|
{
|
|
1735
|
-
ec = boost::system::error_code();
|
|
1736
|
-
|
|
1737
2136
|
// When updating the non-blocking mode we always perform the ioctl syscall,
|
|
1738
2137
|
// even if the flags would otherwise indicate that the socket is already in
|
|
1739
2138
|
// the correct state. This ensures that the underlying socket is put into
|
|
@@ -1761,7 +2160,9 @@ int ioctl(socket_type s, state_type& state, int cmd,
|
|
|
1761
2160
|
int select(int nfds, fd_set* readfds, fd_set* writefds,
|
|
1762
2161
|
fd_set* exceptfds, timeval* timeout, boost::system::error_code& ec)
|
|
1763
2162
|
{
|
|
1764
|
-
|
|
2163
|
+
#if defined(__EMSCRIPTEN__)
|
|
2164
|
+
exceptfds = 0;
|
|
2165
|
+
#endif // defined(__EMSCRIPTEN__)
|
|
1765
2166
|
#if defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
|
|
1766
2167
|
if (!readfds && !writefds && !exceptfds && timeout)
|
|
1767
2168
|
{
|
|
@@ -1769,7 +2170,7 @@ int select(int nfds, fd_set* readfds, fd_set* writefds,
|
|
|
1769
2170
|
if (milliseconds == 0)
|
|
1770
2171
|
milliseconds = 1; // Force context switch.
|
|
1771
2172
|
::Sleep(milliseconds);
|
|
1772
|
-
ec
|
|
2173
|
+
ec.assign(0, ec.category());
|
|
1773
2174
|
return 0;
|
|
1774
2175
|
}
|
|
1775
2176
|
|
|
@@ -1788,15 +2189,13 @@ int select(int nfds, fd_set* readfds, fd_set* writefds,
|
|
|
1788
2189
|
timespec ts;
|
|
1789
2190
|
ts.tv_sec = timeout ? timeout->tv_sec : 0;
|
|
1790
2191
|
ts.tv_nsec = timeout ? timeout->tv_usec * 1000 : 0;
|
|
1791
|
-
|
|
1792
|
-
writefds, exceptfds, timeout ? &ts : 0, 0)
|
|
2192
|
+
int result = ::pselect(nfds, readfds,
|
|
2193
|
+
writefds, exceptfds, timeout ? &ts : 0, 0);
|
|
1793
2194
|
#else
|
|
1794
|
-
int result =
|
|
1795
|
-
writefds, exceptfds, timeout), ec);
|
|
1796
|
-
if (result >= 0)
|
|
1797
|
-
ec = boost::system::error_code();
|
|
1798
|
-
return result;
|
|
2195
|
+
int result = ::select(nfds, readfds, writefds, exceptfds, timeout);
|
|
1799
2196
|
#endif
|
|
2197
|
+
get_last_error(ec, result < 0);
|
|
2198
|
+
return result;
|
|
1800
2199
|
}
|
|
1801
2200
|
|
|
1802
2201
|
int poll_read(socket_type s, state_type state,
|
|
@@ -1830,8 +2229,8 @@ int poll_read(socket_type s, state_type state,
|
|
|
1830
2229
|
}
|
|
1831
2230
|
else
|
|
1832
2231
|
timeout = 0;
|
|
1833
|
-
|
|
1834
|
-
|
|
2232
|
+
int result = ::select(s + 1, &fds, 0, 0, timeout);
|
|
2233
|
+
get_last_error(ec, result < 0);
|
|
1835
2234
|
#else // defined(BOOST_ASIO_WINDOWS)
|
|
1836
2235
|
// || defined(__CYGWIN__)
|
|
1837
2236
|
// || defined(__SYMBIAN32__)
|
|
@@ -1840,16 +2239,14 @@ int poll_read(socket_type s, state_type state,
|
|
|
1840
2239
|
fds.events = POLLIN;
|
|
1841
2240
|
fds.revents = 0;
|
|
1842
2241
|
int timeout = (state & user_set_non_blocking) ? 0 : msec;
|
|
1843
|
-
|
|
1844
|
-
|
|
2242
|
+
int result = ::poll(&fds, 1, timeout);
|
|
2243
|
+
get_last_error(ec, result < 0);
|
|
1845
2244
|
#endif // defined(BOOST_ASIO_WINDOWS)
|
|
1846
2245
|
// || defined(__CYGWIN__)
|
|
1847
2246
|
// || defined(__SYMBIAN32__)
|
|
1848
2247
|
if (result == 0)
|
|
1849
|
-
|
|
1850
|
-
|
|
1851
|
-
else if (result > 0)
|
|
1852
|
-
ec = boost::system::error_code();
|
|
2248
|
+
if (state & user_set_non_blocking)
|
|
2249
|
+
ec = boost::asio::error::would_block;
|
|
1853
2250
|
return result;
|
|
1854
2251
|
}
|
|
1855
2252
|
|
|
@@ -1884,8 +2281,8 @@ int poll_write(socket_type s, state_type state,
|
|
|
1884
2281
|
}
|
|
1885
2282
|
else
|
|
1886
2283
|
timeout = 0;
|
|
1887
|
-
|
|
1888
|
-
|
|
2284
|
+
int result = ::select(s + 1, 0, &fds, 0, timeout);
|
|
2285
|
+
get_last_error(ec, result < 0);
|
|
1889
2286
|
#else // defined(BOOST_ASIO_WINDOWS)
|
|
1890
2287
|
// || defined(__CYGWIN__)
|
|
1891
2288
|
// || defined(__SYMBIAN32__)
|
|
@@ -1894,16 +2291,14 @@ int poll_write(socket_type s, state_type state,
|
|
|
1894
2291
|
fds.events = POLLOUT;
|
|
1895
2292
|
fds.revents = 0;
|
|
1896
2293
|
int timeout = (state & user_set_non_blocking) ? 0 : msec;
|
|
1897
|
-
|
|
1898
|
-
|
|
2294
|
+
int result = ::poll(&fds, 1, timeout);
|
|
2295
|
+
get_last_error(ec, result < 0);
|
|
1899
2296
|
#endif // defined(BOOST_ASIO_WINDOWS)
|
|
1900
2297
|
// || defined(__CYGWIN__)
|
|
1901
2298
|
// || defined(__SYMBIAN32__)
|
|
1902
2299
|
if (result == 0)
|
|
1903
|
-
|
|
1904
|
-
|
|
1905
|
-
else if (result > 0)
|
|
1906
|
-
ec = boost::system::error_code();
|
|
2300
|
+
if (state & user_set_non_blocking)
|
|
2301
|
+
ec = boost::asio::error::would_block;
|
|
1907
2302
|
return result;
|
|
1908
2303
|
}
|
|
1909
2304
|
|
|
@@ -1938,8 +2333,8 @@ int poll_error(socket_type s, state_type state,
|
|
|
1938
2333
|
}
|
|
1939
2334
|
else
|
|
1940
2335
|
timeout = 0;
|
|
1941
|
-
|
|
1942
|
-
|
|
2336
|
+
int result = ::select(s + 1, 0, 0, &fds, timeout);
|
|
2337
|
+
get_last_error(ec, result < 0);
|
|
1943
2338
|
#else // defined(BOOST_ASIO_WINDOWS)
|
|
1944
2339
|
// || defined(__CYGWIN__)
|
|
1945
2340
|
// || defined(__SYMBIAN32__)
|
|
@@ -1948,16 +2343,14 @@ int poll_error(socket_type s, state_type state,
|
|
|
1948
2343
|
fds.events = POLLPRI | POLLERR | POLLHUP;
|
|
1949
2344
|
fds.revents = 0;
|
|
1950
2345
|
int timeout = (state & user_set_non_blocking) ? 0 : msec;
|
|
1951
|
-
|
|
1952
|
-
|
|
2346
|
+
int result = ::poll(&fds, 1, timeout);
|
|
2347
|
+
get_last_error(ec, result < 0);
|
|
1953
2348
|
#endif // defined(BOOST_ASIO_WINDOWS)
|
|
1954
2349
|
// || defined(__CYGWIN__)
|
|
1955
2350
|
// || defined(__SYMBIAN32__)
|
|
1956
2351
|
if (result == 0)
|
|
1957
|
-
|
|
1958
|
-
|
|
1959
|
-
else if (result > 0)
|
|
1960
|
-
ec = boost::system::error_code();
|
|
2352
|
+
if (state & user_set_non_blocking)
|
|
2353
|
+
ec = boost::asio::error::would_block;
|
|
1961
2354
|
return result;
|
|
1962
2355
|
}
|
|
1963
2356
|
|
|
@@ -1988,11 +2381,8 @@ int poll_connect(socket_type s, int msec, boost::system::error_code& ec)
|
|
|
1988
2381
|
}
|
|
1989
2382
|
else
|
|
1990
2383
|
timeout = 0;
|
|
1991
|
-
|
|
1992
|
-
|
|
1993
|
-
s + 1, 0, &write_fds, &except_fds, timeout), ec);
|
|
1994
|
-
if (result >= 0)
|
|
1995
|
-
ec = boost::system::error_code();
|
|
2384
|
+
int result = ::select(s + 1, 0, &write_fds, &except_fds, timeout);
|
|
2385
|
+
get_last_error(ec, result < 0);
|
|
1996
2386
|
return result;
|
|
1997
2387
|
#else // defined(BOOST_ASIO_WINDOWS)
|
|
1998
2388
|
// || defined(__CYGWIN__)
|
|
@@ -2001,10 +2391,8 @@ int poll_connect(socket_type s, int msec, boost::system::error_code& ec)
|
|
|
2001
2391
|
fds.fd = s;
|
|
2002
2392
|
fds.events = POLLOUT;
|
|
2003
2393
|
fds.revents = 0;
|
|
2004
|
-
|
|
2005
|
-
|
|
2006
|
-
if (result >= 0)
|
|
2007
|
-
ec = boost::system::error_code();
|
|
2394
|
+
int result = ::poll(&fds, 1, msec);
|
|
2395
|
+
get_last_error(ec, result < 0);
|
|
2008
2396
|
return result;
|
|
2009
2397
|
#endif // defined(BOOST_ASIO_WINDOWS)
|
|
2010
2398
|
// || defined(__CYGWIN__)
|
|
@@ -2089,18 +2477,20 @@ const char* inet_ntop(int af, const void* src, char* dest, size_t length,
|
|
|
2089
2477
|
DWORD string_length = static_cast<DWORD>(length);
|
|
2090
2478
|
#if defined(BOOST_NO_ANSI_APIS) || (defined(_MSC_VER) && (_MSC_VER >= 1800))
|
|
2091
2479
|
LPWSTR string_buffer = (LPWSTR)_alloca(length * sizeof(WCHAR));
|
|
2092
|
-
int result =
|
|
2093
|
-
address_length, 0, string_buffer, &string_length)
|
|
2480
|
+
int result = ::WSAAddressToStringW(&address.base,
|
|
2481
|
+
address_length, 0, string_buffer, &string_length);
|
|
2482
|
+
get_last_error(ec, true);
|
|
2094
2483
|
::WideCharToMultiByte(CP_ACP, 0, string_buffer, -1,
|
|
2095
2484
|
dest, static_cast<int>(length), 0, 0);
|
|
2096
2485
|
#else
|
|
2097
|
-
int result =
|
|
2098
|
-
|
|
2486
|
+
int result = ::WSAAddressToStringA(&address.base,
|
|
2487
|
+
address_length, 0, dest, &string_length);
|
|
2488
|
+
get_last_error(ec, true);
|
|
2099
2489
|
#endif
|
|
2100
2490
|
|
|
2101
2491
|
// Windows may set error code on success.
|
|
2102
2492
|
if (result != socket_error_retval)
|
|
2103
|
-
ec
|
|
2493
|
+
ec.assign(0, ec.category());
|
|
2104
2494
|
|
|
2105
2495
|
// Windows may not set an error code on failure.
|
|
2106
2496
|
else if (result == socket_error_retval && !ec)
|
|
@@ -2108,8 +2498,8 @@ const char* inet_ntop(int af, const void* src, char* dest, size_t length,
|
|
|
2108
2498
|
|
|
2109
2499
|
return result == socket_error_retval ? 0 : dest;
|
|
2110
2500
|
#else // defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
|
|
2111
|
-
const char* result =
|
|
2112
|
-
|
|
2501
|
+
const char* result = ::inet_ntop(af, src, dest, static_cast<int>(length));
|
|
2502
|
+
get_last_error(ec, true);
|
|
2113
2503
|
if (result == 0 && !ec)
|
|
2114
2504
|
ec = boost::asio::error::invalid_argument;
|
|
2115
2505
|
if (result != 0 && af == BOOST_ASIO_OS_DEF(AF_INET6) && scope_id != 0)
|
|
@@ -2154,7 +2544,7 @@ int inet_pton(int af, const char* src, void* dest,
|
|
|
2154
2544
|
bytes[1] = static_cast<unsigned char>(b1);
|
|
2155
2545
|
bytes[2] = static_cast<unsigned char>(b2);
|
|
2156
2546
|
bytes[3] = static_cast<unsigned char>(b3);
|
|
2157
|
-
ec
|
|
2547
|
+
ec.assign(), ec.category());
|
|
2158
2548
|
return 1;
|
|
2159
2549
|
}
|
|
2160
2550
|
else if (af == BOOST_ASIO_OS_DEF(AF_INET6))
|
|
@@ -2270,7 +2660,7 @@ int inet_pton(int af, const char* src, void* dest,
|
|
|
2270
2660
|
for (int i = 0; i < num_back_bytes; ++i)
|
|
2271
2661
|
bytes[16 - num_back_bytes + i] = back_bytes[i];
|
|
2272
2662
|
|
|
2273
|
-
ec
|
|
2663
|
+
ec.assign(0, ec.category());
|
|
2274
2664
|
return 1;
|
|
2275
2665
|
}
|
|
2276
2666
|
else
|
|
@@ -2299,11 +2689,13 @@ int inet_pton(int af, const char* src, void* dest,
|
|
|
2299
2689
|
int num_wide_chars = static_cast<int>(strlen(src)) + 1;
|
|
2300
2690
|
LPWSTR wide_buffer = (LPWSTR)_alloca(num_wide_chars * sizeof(WCHAR));
|
|
2301
2691
|
::MultiByteToWideChar(CP_ACP, 0, src, -1, wide_buffer, num_wide_chars);
|
|
2302
|
-
int result =
|
|
2303
|
-
|
|
2692
|
+
int result = ::WSAStringToAddressW(wide_buffer,
|
|
2693
|
+
af, 0, &address.base, &address_length);
|
|
2694
|
+
get_last_error(ec, true);
|
|
2304
2695
|
#else
|
|
2305
|
-
int result =
|
|
2306
|
-
|
|
2696
|
+
int result = ::WSAStringToAddressA(const_cast<char*>(src),
|
|
2697
|
+
af, 0, &address.base, &address_length);
|
|
2698
|
+
get_last_error(ec, true);
|
|
2307
2699
|
#endif
|
|
2308
2700
|
|
|
2309
2701
|
if (af == BOOST_ASIO_OS_DEF(AF_INET))
|
|
@@ -2311,12 +2703,12 @@ int inet_pton(int af, const char* src, void* dest,
|
|
|
2311
2703
|
if (result != socket_error_retval)
|
|
2312
2704
|
{
|
|
2313
2705
|
memcpy(dest, &address.v4.sin_addr, sizeof(in4_addr_type));
|
|
2314
|
-
ec
|
|
2706
|
+
ec.assign(0, ec.category());
|
|
2315
2707
|
}
|
|
2316
2708
|
else if (strcmp(src, "255.255.255.255") == 0)
|
|
2317
2709
|
{
|
|
2318
2710
|
static_cast<in4_addr_type*>(dest)->s_addr = INADDR_NONE;
|
|
2319
|
-
ec
|
|
2711
|
+
ec.assign(0, ec.category());
|
|
2320
2712
|
}
|
|
2321
2713
|
}
|
|
2322
2714
|
else // AF_INET6
|
|
@@ -2326,7 +2718,7 @@ int inet_pton(int af, const char* src, void* dest,
|
|
|
2326
2718
|
memcpy(dest, &address.v6.sin6_addr, sizeof(in6_addr_type));
|
|
2327
2719
|
if (scope_id)
|
|
2328
2720
|
*scope_id = address.v6.sin6_scope_id;
|
|
2329
|
-
ec
|
|
2721
|
+
ec.assign(0, ec.category());
|
|
2330
2722
|
}
|
|
2331
2723
|
}
|
|
2332
2724
|
|
|
@@ -2335,7 +2727,7 @@ int inet_pton(int af, const char* src, void* dest,
|
|
|
2335
2727
|
ec = boost::asio::error::invalid_argument;
|
|
2336
2728
|
|
|
2337
2729
|
if (result != socket_error_retval)
|
|
2338
|
-
ec
|
|
2730
|
+
ec.assign(0, ec.category());
|
|
2339
2731
|
|
|
2340
2732
|
return result == socket_error_retval ? -1 : 1;
|
|
2341
2733
|
#else // defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
|
|
@@ -2359,7 +2751,8 @@ int inet_pton(int af, const char* src, void* dest,
|
|
|
2359
2751
|
src_ptr = src_buf;
|
|
2360
2752
|
}
|
|
2361
2753
|
|
|
2362
|
-
int result =
|
|
2754
|
+
int result = ::inet_pton(af, src_ptr, dest);
|
|
2755
|
+
get_last_error(ec, true);
|
|
2363
2756
|
if (result <= 0 && !ec)
|
|
2364
2757
|
ec = boost::asio::error::invalid_argument;
|
|
2365
2758
|
if (result > 0 && is_v6 && scope_id)
|
|
@@ -2385,7 +2778,6 @@ int inet_pton(int af, const char* src, void* dest,
|
|
|
2385
2778
|
|
|
2386
2779
|
int gethostname(char* name, int namelen, boost::system::error_code& ec)
|
|
2387
2780
|
{
|
|
2388
|
-
clear_last_error();
|
|
2389
2781
|
#if defined(BOOST_ASIO_WINDOWS_RUNTIME)
|
|
2390
2782
|
try
|
|
2391
2783
|
{
|
|
@@ -2416,11 +2808,8 @@ int gethostname(char* name, int namelen, boost::system::error_code& ec)
|
|
|
2416
2808
|
return -1;
|
|
2417
2809
|
}
|
|
2418
2810
|
#else // defined(BOOST_ASIO_WINDOWS_RUNTIME)
|
|
2419
|
-
int result =
|
|
2420
|
-
|
|
2421
|
-
if (result == 0)
|
|
2422
|
-
ec = boost::system::error_code();
|
|
2423
|
-
# endif // defined(BOOST_ASIO_WINDOWS)
|
|
2811
|
+
int result = ::gethostname(name, namelen);
|
|
2812
|
+
get_last_error(ec, result != 0);
|
|
2424
2813
|
return result;
|
|
2425
2814
|
#endif // defined(BOOST_ASIO_WINDOWS_RUNTIME)
|
|
2426
2815
|
}
|
|
@@ -2455,20 +2844,20 @@ inline boost::system::error_code translate_netdb_error(int error)
|
|
|
2455
2844
|
inline hostent* gethostbyaddr(const char* addr, int length, int af,
|
|
2456
2845
|
hostent* result, char* buffer, int buflength, boost::system::error_code& ec)
|
|
2457
2846
|
{
|
|
2458
|
-
clear_last_error();
|
|
2459
2847
|
#if defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
|
|
2460
2848
|
(void)(buffer);
|
|
2461
2849
|
(void)(buflength);
|
|
2462
|
-
hostent* retval =
|
|
2850
|
+
hostent* retval = ::gethostbyaddr(addr, length, af);
|
|
2851
|
+
get_last_error(ec, !retval);
|
|
2463
2852
|
if (!retval)
|
|
2464
2853
|
return 0;
|
|
2465
|
-
ec = boost::system::error_code();
|
|
2466
2854
|
*result = *retval;
|
|
2467
2855
|
return retval;
|
|
2468
2856
|
#elif defined(__sun) || defined(__QNX__)
|
|
2469
2857
|
int error = 0;
|
|
2470
|
-
hostent* retval =
|
|
2471
|
-
|
|
2858
|
+
hostent* retval = ::gethostbyaddr_r(addr, length,
|
|
2859
|
+
af, result, buffer, buflength, &error);
|
|
2860
|
+
get_last_error(ec, !retval);
|
|
2472
2861
|
if (error)
|
|
2473
2862
|
ec = translate_netdb_error(error);
|
|
2474
2863
|
return retval;
|
|
@@ -2476,8 +2865,8 @@ inline hostent* gethostbyaddr(const char* addr, int length, int af,
|
|
|
2476
2865
|
(void)(buffer);
|
|
2477
2866
|
(void)(buflength);
|
|
2478
2867
|
int error = 0;
|
|
2479
|
-
hostent* retval =
|
|
2480
|
-
|
|
2868
|
+
hostent* retval = ::getipnodebyaddr(addr, length, af, &error);
|
|
2869
|
+
get_last_error(ec, !retval);
|
|
2481
2870
|
if (error)
|
|
2482
2871
|
ec = translate_netdb_error(error);
|
|
2483
2872
|
if (!retval)
|
|
@@ -2487,8 +2876,10 @@ inline hostent* gethostbyaddr(const char* addr, int length, int af,
|
|
|
2487
2876
|
#else
|
|
2488
2877
|
hostent* retval = 0;
|
|
2489
2878
|
int error = 0;
|
|
2490
|
-
|
|
2491
|
-
|
|
2879
|
+
clear_last_error();
|
|
2880
|
+
::gethostbyaddr_r(addr, length, af, result,
|
|
2881
|
+
buffer, buflength, &retval, &error);
|
|
2882
|
+
get_last_error(ec, true);
|
|
2492
2883
|
if (error)
|
|
2493
2884
|
ec = translate_netdb_error(error);
|
|
2494
2885
|
return retval;
|
|
@@ -2498,7 +2889,6 @@ inline hostent* gethostbyaddr(const char* addr, int length, int af,
|
|
|
2498
2889
|
inline hostent* gethostbyname(const char* name, int af, struct hostent* result,
|
|
2499
2890
|
char* buffer, int buflength, int ai_flags, boost::system::error_code& ec)
|
|
2500
2891
|
{
|
|
2501
|
-
clear_last_error();
|
|
2502
2892
|
#if defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
|
|
2503
2893
|
(void)(buffer);
|
|
2504
2894
|
(void)(buflength);
|
|
@@ -2508,10 +2898,10 @@ inline hostent* gethostbyname(const char* name, int af, struct hostent* result,
|
|
|
2508
2898
|
ec = boost::asio::error::address_family_not_supported;
|
|
2509
2899
|
return 0;
|
|
2510
2900
|
}
|
|
2511
|
-
hostent* retval =
|
|
2901
|
+
hostent* retval = ::gethostbyname(name);
|
|
2902
|
+
get_last_error(ec, !retval);
|
|
2512
2903
|
if (!retval)
|
|
2513
2904
|
return 0;
|
|
2514
|
-
ec = boost::system::error_code();
|
|
2515
2905
|
*result = *retval;
|
|
2516
2906
|
return result;
|
|
2517
2907
|
#elif defined(__sun) || defined(__QNX__)
|
|
@@ -2522,8 +2912,8 @@ inline hostent* gethostbyname(const char* name, int af, struct hostent* result,
|
|
|
2522
2912
|
return 0;
|
|
2523
2913
|
}
|
|
2524
2914
|
int error = 0;
|
|
2525
|
-
hostent* retval =
|
|
2526
|
-
|
|
2915
|
+
hostent* retval = ::gethostbyname_r(name, result, buffer, buflength, &error);
|
|
2916
|
+
get_last_error(ec, !retval);
|
|
2527
2917
|
if (error)
|
|
2528
2918
|
ec = translate_netdb_error(error);
|
|
2529
2919
|
return retval;
|
|
@@ -2531,8 +2921,8 @@ inline hostent* gethostbyname(const char* name, int af, struct hostent* result,
|
|
|
2531
2921
|
(void)(buffer);
|
|
2532
2922
|
(void)(buflength);
|
|
2533
2923
|
int error = 0;
|
|
2534
|
-
hostent* retval =
|
|
2535
|
-
|
|
2924
|
+
hostent* retval = ::getipnodebyname(name, af, ai_flags, &error);
|
|
2925
|
+
get_last_error(ec, !retval);
|
|
2536
2926
|
if (error)
|
|
2537
2927
|
ec = translate_netdb_error(error);
|
|
2538
2928
|
if (!retval)
|
|
@@ -2548,8 +2938,9 @@ inline hostent* gethostbyname(const char* name, int af, struct hostent* result,
|
|
|
2548
2938
|
}
|
|
2549
2939
|
hostent* retval = 0;
|
|
2550
2940
|
int error = 0;
|
|
2551
|
-
|
|
2552
|
-
|
|
2941
|
+
clear_last_error();
|
|
2942
|
+
::gethostbyname_r(name, result, buffer, buflength, &retval, &error);
|
|
2943
|
+
get_last_error(ec, true);
|
|
2553
2944
|
if (error)
|
|
2554
2945
|
ec = translate_netdb_error(error);
|
|
2555
2946
|
return retval;
|
|
@@ -3265,7 +3656,7 @@ inline boost::system::error_code getnameinfo_emulation(
|
|
|
3265
3656
|
}
|
|
3266
3657
|
}
|
|
3267
3658
|
|
|
3268
|
-
ec
|
|
3659
|
+
ec.assign(0, ec.category());
|
|
3269
3660
|
return ec;
|
|
3270
3661
|
}
|
|
3271
3662
|
|