passenger 5.3.3 → 5.3.4
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 +8 -0
- data/build/support/cxx_dependency_map.rb +151 -83
- data/dev/configkit-schemas/index.json +3 -3
- data/src/agent/Core/AdminPanelConnector.h +5 -3
- data/src/agent/Core/ApplicationPool/Common.h +1 -2
- data/src/agent/Core/ApplicationPool/Context.h +1 -2
- data/src/agent/Core/ApplicationPool/Group/InternalUtils.cpp +2 -2
- data/src/agent/Core/ApplicationPool/Pool/InitializationAndShutdown.cpp +2 -2
- data/src/agent/Core/Config.h +1 -1
- data/src/agent/Core/Controller.h +2 -1
- data/src/agent/Core/Controller/Config.h +6 -5
- data/src/agent/Core/Controller/Hooks.cpp +11 -0
- data/src/agent/Core/Controller/SendRequest.cpp +7 -7
- data/src/agent/Core/CoreMain.cpp +0 -2
- data/src/agent/Core/SpawningKit/Context.h +1 -3
- data/src/agent/Core/SpawningKit/Handshake/BackgroundIOCapturer.h +2 -2
- data/src/agent/Core/SpawningKit/Handshake/Perform.h +2 -2
- data/src/agent/Core/SpawningKit/Handshake/Prepare.h +17 -38
- data/src/agent/Core/SpawningKit/PipeWatcher.h +5 -3
- data/src/agent/Core/SpawningKit/UserSwitchingRules.h +13 -5
- data/src/agent/Shared/ApiServerUtils.h +2 -2
- data/src/agent/SpawnEnvSetupper/SpawnEnvSetupperMain.cpp +33 -18
- data/src/agent/Watchdog/Config.h +1 -1
- data/src/agent/Watchdog/WatchdogMain.cpp +20 -20
- data/src/apache2_module/Config.cpp +7 -6
- data/src/cxx_supportlib/ConfigKit/Store.h +2 -2
- data/src/cxx_supportlib/Constants.h +1 -1
- data/src/cxx_supportlib/Exceptions.h +0 -1
- data/src/cxx_supportlib/FileTools/PathSecurityCheck.cpp +3 -2
- data/src/cxx_supportlib/ResourceLocator.h +3 -21
- data/src/cxx_supportlib/SafeLibev.h +6 -6
- data/src/cxx_supportlib/ServerKit/Channel.h +2 -2
- data/src/cxx_supportlib/ServerKit/FileBufferedChannel.h +3 -3
- data/src/cxx_supportlib/ServerKit/FileBufferedFdSinkChannel.h +2 -2
- data/src/cxx_supportlib/ServerKit/HttpServer.h +27 -15
- data/src/cxx_supportlib/ServerKit/Server.h +2 -2
- data/src/cxx_supportlib/SystemTools/README.md +1 -0
- data/src/cxx_supportlib/SystemTools/UserDatabase.cpp +222 -0
- data/src/cxx_supportlib/SystemTools/UserDatabase.h +151 -0
- data/src/cxx_supportlib/Utils.cpp +1 -113
- data/src/cxx_supportlib/Utils.h +1 -29
- data/src/cxx_supportlib/Utils/MessagePassing.h +3 -3
- data/src/cxx_supportlib/WatchdogLauncher.h +1 -2
- data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/detail/case_conv.hpp +6 -2
- data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/detail/find_iterator.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/detail/util.hpp +3 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio.hpp +31 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/associated_allocator.hpp +133 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/associated_executor.hpp +151 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/async_result.hpp +149 -22
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_datagram_socket.hpp +140 -49
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_deadline_timer.hpp +145 -35
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_io_object.hpp +75 -41
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_raw_socket.hpp +139 -49
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_seq_packet_socket.hpp +98 -45
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_serial_port.hpp +42 -49
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_signal_set.hpp +45 -38
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket.hpp +349 -109
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket_acceptor.hpp +959 -108
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket_iostream.hpp +198 -54
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket_streambuf.hpp +424 -284
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_stream_socket.hpp +116 -47
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_streambuf.hpp +99 -16
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_streambuf_fwd.hpp +4 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_waitable_timer.hpp +235 -49
- data/src/cxx_supportlib/vendor-modified/boost/asio/bind_executor.hpp +613 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/buffer.hpp +1139 -1216
- data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_read_stream.hpp +27 -14
- 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 +26 -6
- 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 +27 -14
- 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 +61 -21
- data/src/cxx_supportlib/vendor-modified/boost/asio/completion_condition.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/connect.hpp +462 -226
- data/src/cxx_supportlib/vendor-modified/boost/asio/coroutine.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/asio/datagram_socket_service.hpp +94 -64
- data/src/cxx_supportlib/vendor-modified/boost/asio/deadline_timer.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/deadline_timer_service.hpp +20 -18
- data/src/cxx_supportlib/vendor-modified/boost/asio/defer.hpp +109 -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 +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/base_from_completion_cond.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/bind_handler.hpp +404 -77
- 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 +212 -51
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/buffered_stream_storage.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/call_stack.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/chrono.hpp +68 -0
- 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 +8 -6
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/concurrency_hint.hpp +94 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/conditionally_enabled_event.hpp +114 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/conditionally_enabled_mutex.hpp +151 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/config.hpp +398 -13
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/consuming_buffers.hpp +287 -165
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/cstddef.hpp +33 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/cstdint.hpp +15 -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 +65 -14
- 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 +5 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/descriptor_read_op.hpp +17 -8
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/descriptor_write_op.hpp +17 -8
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/dev_poll_reactor.hpp +27 -15
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/epoll_reactor.hpp +41 -17
- 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 +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/executor_op.hpp +86 -0
- 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/{function.hpp → functional.hpp} +10 -10
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/gcc_arm_fenced_block.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/gcc_hppa_fenced_block.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/gcc_sync_fenced_block.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/gcc_x86_fenced_block.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/global.hpp +54 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_alloc_helpers.hpp +158 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_cont_helpers.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_invoke_helpers.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_tracking.hpp +90 -9
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_type_requirements.hpp +117 -39
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_work.hpp +97 -0
- 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 +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/descriptor_ops.ipp +24 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/dev_poll_reactor.hpp +17 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/dev_poll_reactor.ipp +34 -18
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/epoll_reactor.hpp +17 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/epoll_reactor.ipp +152 -51
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/eventfd_select_interrupter.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/handler_tracking.ipp +80 -27
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/kqueue_reactor.hpp +19 -6
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/kqueue_reactor.ipp +93 -23
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/null_event.ipp +76 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/pipe_select_interrupter.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_event.ipp +13 -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 +11 -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 +27 -13
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/reactive_serial_port_service.ipp +7 -6
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/reactive_socket_service_base.ipp +43 -10
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/resolver_service_base.ipp +54 -30
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/{task_io_service.ipp → scheduler.ipp} +167 -70
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/select_reactor.hpp +17 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/select_reactor.ipp +46 -26
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/service_registry.hpp +36 -30
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/service_registry.ipp +39 -30
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/signal_set_service.ipp +43 -21
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/socket_ops.ipp +129 -26
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/socket_select_interrupter.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_executor_service.hpp +181 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_executor_service.ipp +136 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_service.hpp +13 -13
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_service.ipp +15 -14
- 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 +12 -5
- 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 -51
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/is_buffer_sequence.hpp +241 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/is_executor.hpp +128 -0
- 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 +36 -14
- 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 +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/memory.hpp +42 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/mutex.hpp +1 -1
- 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 +17 -5
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_fenced_block.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_global.hpp +61 -0
- 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 +10 -9
- 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 +29 -19
- 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 +7 -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 +26 -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 +7 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/operation.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/pipe_select_interrupter.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/pop_options.hpp +5 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_event.hpp +37 -1
- 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 +82 -0
- 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 +5 -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 +10 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_descriptor_service.hpp +86 -20
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_null_buffers_op.hpp +9 -7
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_serial_port_service.hpp +10 -8
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_accept_op.hpp +101 -20
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_connect_op.hpp +14 -7
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_recv_op.hpp +20 -8
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_recvfrom_op.hpp +13 -8
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_recvmsg_op.hpp +15 -8
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_send_op.hpp +25 -11
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_sendto_op.hpp +15 -8
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_service.hpp +99 -31
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_service_base.hpp +96 -35
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_wait_op.hpp +92 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor_fwd.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor_op.hpp +7 -3
- 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 +106 -0
- 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 +25 -24
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolve_op.hpp +6 -92
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolve_query_op.hpp +136 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolver_service.hpp +38 -22
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolver_service_base.hpp +30 -19
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/{task_io_service.hpp → scheduler.hpp} +57 -45
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/{task_io_service_operation.hpp → scheduler_operation.hpp} +19 -17
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/{task_io_service_thread_info.hpp → scheduler_thread_info.hpp} +10 -10
- 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 +9 -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 +37 -18
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/service_registry.hpp +54 -34
- 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 +9 -5
- 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 +14 -13
- 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 +9 -6
- 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 +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_types.hpp +10 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/solaris_fenced_block.hpp +2 -1
- 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 +1 -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 +72 -0
- 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 +7 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/strand_executor_service.hpp +144 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/strand_service.hpp +10 -10
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/string_view.hpp +49 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread.hpp +9 -5
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread_context.hpp +44 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread_group.hpp +91 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread_info_base.hpp +45 -15
- 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 +29 -2
- 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 +11 -5
- 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 +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_scheduler_fwd.hpp +2 -2
- 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 +29 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/variadic_templates.hpp +74 -18
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/wait_handler.hpp +8 -6
- 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 +74 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/wrapped_handler.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/dispatch.hpp +110 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/error.hpp +17 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution_context.hpp +413 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/executor.hpp +343 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/executor_work_guard.hpp +172 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental.hpp +22 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/co_spawn.hpp +228 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detached.hpp +67 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/co_spawn.hpp +878 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/detached.hpp +93 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/redirect_error.hpp +296 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/redirect_error.hpp +69 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/generic/basic_endpoint.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/generic/datagram_protocol.hpp +1 -1
- 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 +3 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/generic/raw_protocol.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/generic/seq_packet_protocol.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/generic/stream_protocol.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/handler_alloc_hook.hpp +1 -1
- 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 +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/handler_type.hpp +11 -73
- data/src/cxx_supportlib/vendor-modified/boost/asio/high_resolution_timer.hpp +4 -23
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/buffered_read_stream.hpp +86 -15
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/buffered_write_stream.hpp +92 -19
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/connect.hpp +549 -119
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/defer.hpp +79 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/dispatch.hpp +80 -0
- 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 +109 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/execution_context.ipp +84 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/executor.hpp +388 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/executor.ipp +40 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/handler_alloc_hook.ipp +7 -32
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/io_context.hpp +347 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/io_context.ipp +176 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/post.hpp +79 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read.hpp +341 -379
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_at.hpp +173 -343
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_until.hpp +559 -206
- 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 +30 -30
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/spawn.hpp +254 -72
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/src.cpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/src.hpp +12 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/system_context.hpp +36 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/system_context.ipp +75 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/system_executor.hpp +87 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/thread_pool.hpp +129 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/thread_pool.ipp +78 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/use_future.hpp +855 -94
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/write.hpp +358 -449
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/write_at.hpp +165 -418
- data/src/cxx_supportlib/vendor-modified/boost/asio/io_context.hpp +878 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/io_context_strand.hpp +386 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/io_service.hpp +6 -743
- data/src/cxx_supportlib/vendor-modified/boost/asio/io_service_strand.hpp +20 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address.hpp +79 -19
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v4.hpp +111 -23
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v4_iterator.hpp +164 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v4_range.hpp +136 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v6.hpp +104 -14
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v6_iterator.hpp +185 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v6_range.hpp +131 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/bad_address_cast.hpp +50 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_endpoint.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver.hpp +821 -71
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_entry.hpp +23 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_iterator.hpp +31 -99
- 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 +313 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/detail/endpoint.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/detail/impl/endpoint.ipp +5 -10
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/detail/socket_option.hpp +16 -19
- 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 +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address.hpp +28 -14
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address.ipp +55 -47
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v4.hpp +28 -14
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v4.ipp +76 -44
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v6.hpp +28 -14
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v6.ipp +85 -33
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/basic_endpoint.hpp +2 -14
- 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 +56 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/network_v4.ipp +218 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/network_v6.hpp +55 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/network_v6.ipp +187 -0
- 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 +263 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/network_v6.hpp +237 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/resolver_base.hpp +131 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/resolver_query_base.hpp +3 -90
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/resolver_service.hpp +48 -24
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/tcp.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/udp.hpp +1 -1
- 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_executor.hpp +48 -0
- 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 +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/local/connect_pair.hpp +23 -21
- data/src/cxx_supportlib/vendor-modified/boost/asio/local/datagram_protocol.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/local/detail/endpoint.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/local/detail/impl/endpoint.ipp +3 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/local/stream_protocol.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/packaged_task.hpp +128 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/placeholders.hpp +30 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/posix/basic_descriptor.hpp +138 -46
- data/src/cxx_supportlib/vendor-modified/boost/asio/posix/basic_stream_descriptor.hpp +15 -15
- data/src/cxx_supportlib/vendor-modified/boost/asio/posix/descriptor.hpp +646 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/posix/descriptor_base.hpp +17 -24
- data/src/cxx_supportlib/vendor-modified/boost/asio/posix/stream_descriptor.hpp +326 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/posix/stream_descriptor_service.hpp +63 -44
- data/src/cxx_supportlib/vendor-modified/boost/asio/post.hpp +109 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/raw_socket_service.hpp +94 -64
- data/src/cxx_supportlib/vendor-modified/boost/asio/read.hpp +328 -12
- data/src/cxx_supportlib/vendor-modified/boost/asio/read_at.hpp +13 -6
- data/src/cxx_supportlib/vendor-modified/boost/asio/read_until.hpp +1148 -247
- data/src/cxx_supportlib/vendor-modified/boost/asio/seq_packet_socket_service.hpp +88 -56
- data/src/cxx_supportlib/vendor-modified/boost/asio/serial_port.hpp +736 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/serial_port_base.hpp +11 -11
- data/src/cxx_supportlib/vendor-modified/boost/asio/serial_port_service.hpp +41 -45
- data/src/cxx_supportlib/vendor-modified/boost/asio/signal_set.hpp +422 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/signal_set_service.hpp +32 -24
- data/src/cxx_supportlib/vendor-modified/boost/asio/socket_acceptor_service.hpp +114 -48
- data/src/cxx_supportlib/vendor-modified/boost/asio/socket_base.hpp +85 -46
- data/src/cxx_supportlib/vendor-modified/boost/asio/spawn.hpp +89 -18
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl.hpp +1 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/context.hpp +33 -62
- 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 +27 -23
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/engine.hpp +10 -14
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/handshake_op.hpp +2 -8
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/impl/engine.ipp +22 -25
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/impl/openssl_init.ipp +5 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/io.hpp +40 -17
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/openssl_init.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/openssl_types.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/password_callback.hpp +4 -10
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/read_op.hpp +3 -9
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/shutdown_op.hpp +2 -8
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/stream_core.hpp +27 -19
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/verify_callback.hpp +2 -8
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/write_op.hpp +3 -9
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/error.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/context.hpp +8 -12
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/context.ipp +86 -102
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/error.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/rfc2818_verification.ipp +7 -13
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/src.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/rfc2818_verification.hpp +7 -13
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/stream.hpp +90 -85
- 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 +3 -9
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/verify_mode.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/steady_timer.hpp +4 -23
- data/src/cxx_supportlib/vendor-modified/boost/asio/strand.hpp +209 -175
- data/src/cxx_supportlib/vendor-modified/boost/asio/stream_socket_service.hpp +88 -56
- data/src/cxx_supportlib/vendor-modified/boost/asio/streambuf.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/system_context.hpp +80 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/system_executor.hpp +131 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/system_timer.hpp +4 -19
- data/src/cxx_supportlib/vendor-modified/boost/asio/thread_pool.hpp +234 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/time_traits.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ts/buffer.hpp +24 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ts/executor.hpp +35 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ts/internet.hpp +40 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ts/io_context.hpp +20 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ts/net.hpp +26 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ts/netfwd.hpp +199 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ts/socket.hpp +27 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ts/timer.hpp +26 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/unyield.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/use_future.hpp +70 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/uses_executor.hpp +73 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/version.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/wait_traits.hpp +17 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/waitable_timer_service.hpp +62 -20
- data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_handle.hpp +22 -30
- data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_object_handle.hpp +14 -10
- data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_random_access_handle.hpp +15 -15
- data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_stream_handle.hpp +15 -15
- data/src/cxx_supportlib/vendor-modified/boost/asio/windows/object_handle.hpp +346 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/windows/object_handle_service.hpp +26 -20
- data/src/cxx_supportlib/vendor-modified/boost/asio/windows/overlapped_handle.hpp +333 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/windows/overlapped_ptr.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/asio/windows/random_access_handle.hpp +344 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/windows/random_access_handle_service.hpp +31 -37
- data/src/cxx_supportlib/vendor-modified/boost/asio/windows/stream_handle.hpp +328 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/windows/stream_handle_service.hpp +29 -37
- data/src/cxx_supportlib/vendor-modified/boost/asio/write.hpp +321 -12
- data/src/cxx_supportlib/vendor-modified/boost/asio/write_at.hpp +13 -6
- data/src/cxx_supportlib/vendor-modified/boost/asio/yield.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/atomic/atomic.hpp +11 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/capabilities.hpp +50 -1
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/addressof.hpp +58 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/atomic_flag.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/atomic_template.hpp +688 -220
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/bitwise_cast.hpp +25 -21
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/bitwise_fp_cast.hpp +86 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_gcc_arm.hpp +1 -18
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_gcc_atomic.hpp +9 -10
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_gcc_ppc.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_gcc_sync.hpp +7 -8
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_gcc_x86.hpp +1 -36
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/config.hpp +108 -34
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_fp_operations.hpp +28 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_fp_operations_fwd.hpp +35 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_fp_ops_emulated.hpp +107 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_fp_ops_generic.hpp +189 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_operations.hpp +28 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_operations_fwd.hpp +35 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_emulated.hpp +238 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_gcc_arm.hpp +1111 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_gcc_ppc.hpp +840 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_gcc_x86.hpp +1656 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_generic.hpp +402 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_msvc_arm.hpp +106 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_msvc_x86.hpp +1301 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/float_sizes.hpp +142 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fp_operations.hpp +28 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fp_operations_fwd.hpp +35 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fp_ops_emulated.hpp +72 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fp_ops_generic.hpp +83 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/hwcaps_gcc_arm.hpp +67 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/hwcaps_gcc_ppc.hpp +42 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/hwcaps_gcc_x86.hpp +58 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/int_sizes.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/integral_extend.hpp +105 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/interlocked.hpp +35 -1
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/operations_lockfree.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_cas_based.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_emulated.hpp +8 -9
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_extending_cas_based.hpp +8 -7
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_alpha.hpp +14 -16
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_arm.hpp +548 -126
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_arm_common.hpp +134 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_atomic.hpp +36 -44
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_ppc.hpp +524 -96
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_ppc_common.hpp +70 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_sparc.hpp +14 -16
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_sync.hpp +27 -59
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_x86.hpp +104 -57
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_x86_dcas.hpp +268 -340
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_linux_arm.hpp +9 -9
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_msvc_arm.hpp +22 -24
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_msvc_x86.hpp +55 -80
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/platform.hpp +88 -46
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/storage_type.hpp +30 -103
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/string_ops.hpp +61 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/conditional.hpp +42 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/integral_constant.hpp +46 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_floating_point.hpp +42 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_function.hpp +42 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_iec559.hpp +47 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_integral.hpp +43 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_signed.hpp +43 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_trivially_default_constructible.hpp +46 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/make_signed.hpp +43 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/make_unsigned.hpp +43 -0
- data/src/cxx_supportlib/vendor-modified/boost/bind/bind.hpp +37 -0
- data/src/cxx_supportlib/vendor-modified/boost/bind/bind_cc.hpp +30 -30
- data/src/cxx_supportlib/vendor-modified/boost/bind/bind_mf_cc.hpp +36 -36
- data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/system.hpp +0 -10
- data/src/cxx_supportlib/vendor-modified/boost/chrono/duration.hpp +28 -30
- data/src/cxx_supportlib/vendor-modified/boost/chrono/io/duration_get.hpp +2 -4
- data/src/cxx_supportlib/vendor-modified/boost/chrono/io/duration_io.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/chrono/io/time_point_io.hpp +14 -8
- data/src/cxx_supportlib/vendor-modified/boost/chrono/io/time_point_units.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/chrono/io_v1/chrono_io.hpp +2 -4
- data/src/cxx_supportlib/vendor-modified/boost/chrono/process_cpu_clocks.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/chrono/time_point.hpp +0 -1
- data/src/cxx_supportlib/vendor-modified/boost/circular_buffer/base.hpp +9 -9
- data/src/cxx_supportlib/vendor-modified/boost/circular_buffer/details.hpp +7 -6
- data/src/cxx_supportlib/vendor-modified/boost/config.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/config/auto_link.hpp +26 -4
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/borland.hpp +12 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/clang.hpp +30 -2
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/codegear.hpp +13 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/common_edg.hpp +11 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/cray.hpp +32 -2
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/diab.hpp +26 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/digitalmars.hpp +11 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/gcc.hpp +33 -6
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/gcc_xml.hpp +11 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/intel.hpp +8 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/metrowerks.hpp +11 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/mpw.hpp +11 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/nvcc.hpp +28 -2
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/pathscale.hpp +17 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/pgi.hpp +8 -142
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/sunpro_cc.hpp +14 -3
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/vacpp.hpp +16 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/visualc.hpp +37 -9
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/xlcpp.hpp +19 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/xlcpp_zos.hpp +169 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/{posix_features.hpp → detail/posix_features.hpp} +0 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/{select_compiler_config.hpp → detail/select_compiler_config.hpp} +15 -5
- data/src/cxx_supportlib/vendor-modified/boost/config/{select_platform_config.hpp → detail/select_platform_config.hpp} +8 -3
- data/src/cxx_supportlib/vendor-modified/boost/config/{select_stdlib_config.hpp → detail/select_stdlib_config.hpp} +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/{suffix.hpp → detail/suffix.hpp} +27 -27
- data/src/cxx_supportlib/vendor-modified/boost/config/header_deprecated.hpp +26 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/helper_macros.hpp +37 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/platform/aix.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/platform/beos.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/platform/bsd.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/platform/cray.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/platform/cygwin.hpp +12 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/platform/haiku.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/platform/hpux.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/platform/irix.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/platform/linux.hpp +4 -3
- data/src/cxx_supportlib/vendor-modified/boost/config/platform/macos.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/platform/qnxnto.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/platform/solaris.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/platform/symbian.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/platform/vxworks.hpp +155 -91
- data/src/cxx_supportlib/vendor-modified/boost/config/platform/zos.hpp +32 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/pragma_message.hpp +31 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/dinkumware.hpp +21 -2
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libcomo.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libcpp.hpp +20 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libstdcpp3.hpp +35 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/modena.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/msl.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/roguewave.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/sgi.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/stlport.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/vacpp.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/xlcpp_zos.hpp +60 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/workaround.hpp +279 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/adaptive_pool.hpp +19 -19
- data/src/cxx_supportlib/vendor-modified/boost/container/allocator.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/container/allocator_traits.hpp +58 -58
- data/src/cxx_supportlib/vendor-modified/boost/container/container_fwd.hpp +7 -28
- data/src/cxx_supportlib/vendor-modified/boost/container/deque.hpp +57 -57
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/adaptive_node_pool.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/adaptive_node_pool_impl.hpp +10 -10
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/addressof.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/advanced_insert_int.hpp +18 -18
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/algorithm.hpp +122 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/alloc_helpers.hpp +8 -8
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/allocator_version_traits.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/construct_in_place.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/container_or_allocator_rebind.hpp +49 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/container_rebind.hpp +258 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/copy_move_algo.hpp +119 -134
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/destroyers.hpp +15 -15
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/dispatch_uses_allocator.hpp +55 -55
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/flat_tree.hpp +714 -282
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/is_container.hpp +55 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/is_contiguous_container.hpp +47 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/is_sorted.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/iterator.hpp +30 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/iterator_to_raw_pointer.hpp +4 -29
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/iterators.hpp +9 -9
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/math_functions.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/min_max.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/mpl.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/multiallocation_chain.hpp +8 -8
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/mutex.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/next_capacity.hpp +37 -35
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_alloc_holder.hpp +41 -41
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_pool.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_pool_impl.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/pair.hpp +69 -16
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/pair_key_mapped_of_value.hpp +55 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/pool_common.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/pool_common_alloc.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/singleton.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/transform_iterator.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/tree.hpp +180 -116
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/type_traits.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/value_functors.hpp +36 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/value_init.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/variadic_templates_tools.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/version_type.hpp +8 -8
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/workaround.hpp +0 -6
- data/src/cxx_supportlib/vendor-modified/boost/container/flat_map.hpp +874 -572
- data/src/cxx_supportlib/vendor-modified/boost/container/flat_set.hpp +497 -248
- data/src/cxx_supportlib/vendor-modified/boost/container/list.hpp +33 -42
- data/src/cxx_supportlib/vendor-modified/boost/container/map.hpp +326 -246
- data/src/cxx_supportlib/vendor-modified/boost/container/node_allocator.hpp +19 -19
- data/src/cxx_supportlib/vendor-modified/boost/container/node_handle.hpp +122 -78
- data/src/cxx_supportlib/vendor-modified/boost/container/options.hpp +165 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/flat_map.hpp +4 -8
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/flat_set.hpp +4 -8
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/map.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/polymorphic_allocator.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/resource_adaptor.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/set.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/container/scoped_allocator.hpp +19 -19
- data/src/cxx_supportlib/vendor-modified/boost/container/set.hpp +285 -110
- data/src/cxx_supportlib/vendor-modified/boost/container/slist.hpp +35 -53
- data/src/cxx_supportlib/vendor-modified/boost/container/small_vector.hpp +18 -19
- data/src/cxx_supportlib/vendor-modified/boost/container/stable_vector.hpp +25 -25
- data/src/cxx_supportlib/vendor-modified/boost/container/static_vector.hpp +24 -9
- data/src/cxx_supportlib/vendor-modified/boost/container/string.hpp +194 -142
- data/src/cxx_supportlib/vendor-modified/boost/container/throw_exception.hpp +15 -5
- data/src/cxx_supportlib/vendor-modified/boost/container/uses_allocator.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/container/vector.hpp +395 -421
- data/src/cxx_supportlib/vendor-modified/boost/{functional/hash → container_hash}/detail/float_functions.hpp +0 -0
- data/src/cxx_supportlib/vendor-modified/boost/{functional/hash → container_hash}/detail/hash_float.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/{functional/hash → container_hash}/detail/limits.hpp +0 -0
- data/src/cxx_supportlib/vendor-modified/boost/{functional/hash → container_hash}/extensions.hpp +112 -16
- data/src/cxx_supportlib/vendor-modified/boost/{functional/hash → container_hash}/hash.hpp +195 -7
- data/src/cxx_supportlib/vendor-modified/boost/{functional/hash → container_hash}/hash_fwd.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/core/addressof.hpp +53 -44
- data/src/cxx_supportlib/vendor-modified/boost/core/lightweight_test.hpp +80 -2
- data/src/cxx_supportlib/vendor-modified/boost/core/no_exceptions_support.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/core/pointer_traits.hpp +233 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/ref.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/cstdint.hpp +26 -16
- data/src/cxx_supportlib/vendor-modified/boost/date_time/adjust_functors.hpp +20 -34
- data/src/cxx_supportlib/vendor-modified/boost/date_time/c_local_time_adjustor.hpp +8 -5
- data/src/cxx_supportlib/vendor-modified/boost/date_time/date_duration.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/date_time/date_formatting.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/date_time/date_formatting_locales.hpp +7 -6
- data/src/cxx_supportlib/vendor-modified/boost/date_time/dst_rules.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/date_time/filetime_functions.hpp +8 -94
- data/src/cxx_supportlib/vendor-modified/boost/date_time/format_date_parser.hpp +1 -8
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_day.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_facet.hpp +6 -4
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_month.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_weekday.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_year.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/gregorian_io.hpp +52 -52
- data/src/cxx_supportlib/vendor-modified/boost/date_time/int_adapter.hpp +14 -27
- data/src/cxx_supportlib/vendor-modified/boost/date_time/local_time/custom_time_zone.hpp +0 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/locale_config.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/microsec_time_clock.hpp +36 -5
- data/src/cxx_supportlib/vendor-modified/boost/date_time/period_formatter.hpp +10 -9
- data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/conversion.hpp +10 -12
- data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/posix_time_duration.hpp +18 -10
- data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/posix_time_io.hpp +12 -12
- data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/time_serialize.hpp +65 -20
- data/src/cxx_supportlib/vendor-modified/boost/date_time/special_values_parser.hpp +32 -23
- data/src/cxx_supportlib/vendor-modified/boost/date_time/string_parse_tree.hpp +6 -5
- data/src/cxx_supportlib/vendor-modified/boost/date_time/time_duration.hpp +10 -7
- data/src/cxx_supportlib/vendor-modified/boost/date_time/time_facet.hpp +8 -3
- data/src/cxx_supportlib/vendor-modified/boost/date_time/time_parsing.hpp +20 -0
- data/src/cxx_supportlib/vendor-modified/boost/date_time/time_resolution_traits.hpp +31 -8
- data/src/cxx_supportlib/vendor-modified/boost/date_time/time_system_split.hpp +10 -4
- data/src/cxx_supportlib/vendor-modified/boost/date_time/tz_db_base.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/detail/workaround.hpp +2 -264
- data/src/cxx_supportlib/vendor-modified/boost/enable_shared_from_this.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/exception/detail/error_info_impl.hpp +38 -21
- data/src/cxx_supportlib/vendor-modified/boost/exception/detail/exception_ptr.hpp +10 -9
- data/src/cxx_supportlib/vendor-modified/boost/exception/detail/is_output_streamable.hpp +3 -2
- data/src/cxx_supportlib/vendor-modified/boost/exception/detail/object_hex_dump.hpp +7 -6
- data/src/cxx_supportlib/vendor-modified/boost/exception/detail/type_info.hpp +7 -6
- data/src/cxx_supportlib/vendor-modified/boost/exception/diagnostic_information.hpp +10 -7
- data/src/cxx_supportlib/vendor-modified/boost/exception/get_error_info.hpp +8 -6
- data/src/cxx_supportlib/vendor-modified/boost/exception/info.hpp +13 -47
- data/src/cxx_supportlib/vendor-modified/boost/exception/to_string.hpp +5 -4
- data/src/cxx_supportlib/vendor-modified/boost/exception/to_string_stub.hpp +5 -4
- data/src/cxx_supportlib/vendor-modified/boost/function.hpp +12 -4
- data/src/cxx_supportlib/vendor-modified/boost/function/detail/gen_maybe_include.pl +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/function/detail/maybe_include.hpp +102 -0
- data/src/cxx_supportlib/vendor-modified/boost/function/function_base.hpp +20 -0
- data/src/cxx_supportlib/vendor-modified/boost/function/function_template.hpp +9 -0
- data/src/cxx_supportlib/vendor-modified/boost/functional/hash.hpp +1 -2
- data/src/cxx_supportlib/vendor-modified/boost/functional/hash_fwd.hpp +1 -6
- data/src/cxx_supportlib/vendor-modified/boost/integer/common_factor_rt.hpp +508 -390
- data/src/cxx_supportlib/vendor-modified/boost/integer/integer_mask.hpp +9 -1
- data/src/cxx_supportlib/vendor-modified/boost/integer_fwd.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/bstree.hpp +11 -3
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/circular_list_algorithms.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/config_begin.hpp +7 -20
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/default_header_holder.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/ebo_functor_holder.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hashtable_node.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hook_traits.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/iterator.hpp +108 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/mpl.hpp +15 -5
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/node_to_value.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/tree_value_compare.hpp +8 -4
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/hashtable.hpp +147 -64
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/list.hpp +9 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/member_value_traits.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/pointer_plus_bits.hpp +15 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/pointer_traits.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/slist.hpp +9 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive_ptr.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/iterator/advance.hpp +84 -0
- data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_adaptor.hpp +0 -2
- data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_categories.hpp +3 -2
- data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_concepts.hpp +8 -10
- data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_facade.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_traits.hpp +7 -6
- data/src/cxx_supportlib/vendor-modified/boost/iterator/reverse_iterator.hpp +7 -4
- data/src/cxx_supportlib/vendor-modified/boost/iterator/transform_iterator.hpp +6 -2
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical_streams.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/libs/thread/src/pthread/once_atomic.cpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/libs/thread/src/pthread/thread.cpp +36 -92
- data/src/cxx_supportlib/vendor-modified/boost/make_shared.hpp +1 -2
- data/src/cxx_supportlib/vendor-modified/boost/math/special_functions/detail/fp_traits.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/math/special_functions/math_fwd.hpp +57 -3
- data/src/cxx_supportlib/vendor-modified/boost/math/special_functions/sign.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/math/tools/config.hpp +12 -1
- data/src/cxx_supportlib/vendor-modified/boost/memory_order.hpp +40 -9
- data/src/cxx_supportlib/vendor-modified/boost/move/adl_move_swap.hpp +6 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/adaptive_merge.hpp +253 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/adaptive_sort.hpp +563 -4
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/adaptive_sort_merge.hpp +324 -1071
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/basic_op.hpp +10 -10
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/heap_sort.hpp +111 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/insertion_sort.hpp +12 -11
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/is_sorted.hpp +55 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/merge.hpp +59 -143
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/merge_sort.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/pdqsort.hpp +334 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/set_difference.hpp +207 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/move.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/predicate.hpp +86 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/unique.hpp +55 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/core.hpp +1 -9
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/destruct_n.hpp +3 -4
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/fwd_macros.hpp +25 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/iterator_to_raw_pointer.hpp +59 -0
- data/src/cxx_supportlib/vendor-modified/boost/{intrusive → move}/detail/pointer_element.hpp +12 -12
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/to_raw_pointer.hpp +45 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/type_traits.hpp +19 -5
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/unique_ptr_meta_utils.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/mpl/assert.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/mpl/get_tag.hpp +26 -0
- data/src/cxx_supportlib/vendor-modified/boost/next_prior.hpp +85 -55
- data/src/cxx_supportlib/vendor-modified/boost/numeric/conversion/cast.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/numeric/conversion/conversion_traits.hpp +0 -7
- data/src/cxx_supportlib/vendor-modified/boost/numeric/conversion/detail/converter.hpp +4 -13
- data/src/cxx_supportlib/vendor-modified/boost/operators.hpp +26 -7
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/experimental_traits.hpp +98 -0
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/old_optional_implementation.hpp +10 -10
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_aligned_storage.hpp +17 -21
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_config.hpp +25 -6
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_reference_spec.hpp +15 -15
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_relops.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_trivially_copyable_base.hpp +499 -0
- data/src/cxx_supportlib/vendor-modified/boost/optional/optional.hpp +126 -21
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/arg_list.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/pointer_cast.hpp +10 -9
- data/src/cxx_supportlib/vendor-modified/boost/pointer_to_other.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/arm.h +6 -1
- data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/parisc.h +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/intel.h +8 -1
- data/src/cxx_supportlib/vendor-modified/boost/predef/hardware/simd/arm.h +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/predef/library/c.h +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/library/c/cloudabi.h +53 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/make.h +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/os/android.h +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/predef/os/bsd/free.h +10 -3
- data/src/cxx_supportlib/vendor-modified/boost/predef/os/bsd/open.h +80 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/other/workaround.h +87 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/platform.h +9 -2
- data/src/cxx_supportlib/vendor-modified/boost/predef/platform/cloudabi.h +43 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/platform/ios.h +58 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/platform/mingw.h +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/predef/platform/mingw32.h +63 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/platform/mingw64.h +63 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/platform/windows_desktop.h +9 -3
- data/src/cxx_supportlib/vendor-modified/boost/predef/platform/windows_phone.h +7 -2
- data/src/cxx_supportlib/vendor-modified/boost/predef/platform/windows_runtime.h +13 -5
- data/src/cxx_supportlib/vendor-modified/boost/predef/platform/windows_server.h +47 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/platform/windows_store.h +11 -4
- data/src/cxx_supportlib/vendor-modified/boost/predef/platform/windows_system.h +47 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/platform/windows_uwp.h +60 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/version.h +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/config/config.hpp +11 -9
- data/src/cxx_supportlib/vendor-modified/boost/random/binomial_distribution.hpp +27 -27
- data/src/cxx_supportlib/vendor-modified/boost/random/detail/vector_io.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/discrete_distribution.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/random/hyperexponential_distribution.hpp +0 -11
- data/src/cxx_supportlib/vendor-modified/boost/random/independent_bits.hpp +12 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/linear_congruential.hpp +5 -1
- data/src/cxx_supportlib/vendor-modified/boost/random/poisson_distribution.hpp +17 -17
- data/src/cxx_supportlib/vendor-modified/boost/random/seed_seq.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/random/uniform_on_sphere.hpp +6 -2
- data/src/cxx_supportlib/vendor-modified/boost/range/concepts.hpp +6 -4
- data/src/cxx_supportlib/vendor-modified/boost/range/iterator_range_core.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/config.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/regex/pending/object_cache.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex_creator.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex_parser.hpp +56 -11
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/instances.hpp +10 -10
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher.hpp +7 -2
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_common.hpp +6 -1
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_non_recursive.hpp +37 -13
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_recursive.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_traits_defaults.hpp +9 -6
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_workaround.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/scoped_array.hpp +1 -2
- data/src/cxx_supportlib/vendor-modified/boost/scoped_ptr.hpp +1 -2
- data/src/cxx_supportlib/vendor-modified/boost/shared_array.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/shared_ptr.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/allocate_shared_array.hpp +333 -656
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/bad_weak_ptr.hpp +4 -2
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count_gcc.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/local_counted_base.hpp +148 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/local_sp_deleter.hpp +91 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/operator_bool.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/shared_count.hpp +15 -3
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_aix.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_clang.hpp +3 -2
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_cw_x86.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp +7 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_nt.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_pt.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_snc_ps3.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_solaris.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_spin.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_std_atomic.hpp +3 -2
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_sync.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_vacpp_ppc.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_impl.hpp +29 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_noexcept.hpp +21 -3
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/yield_k.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/enable_shared_from_this.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/intrusive_ptr.hpp +26 -26
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/intrusive_ref_counter.hpp +17 -16
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/make_shared.hpp +1 -2
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/make_shared_object.hpp +19 -19
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/scoped_array.hpp +11 -12
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/scoped_ptr.hpp +15 -16
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/shared_array.hpp +22 -22
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/shared_ptr.hpp +135 -90
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/weak_ptr.hpp +23 -23
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_code.ipp +140 -111
- data/src/cxx_supportlib/vendor-modified/boost/system/error_code.hpp +297 -49
- data/src/cxx_supportlib/vendor-modified/boost/system/system_error.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/detail/sync_deque_base.hpp +30 -30
- data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/detail/sync_queue_base.hpp +30 -30
- data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/sync_bounded_queue.hpp +4 -2
- data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/sync_deque.hpp +5 -7
- data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/sync_priority_queue.hpp +19 -19
- data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/sync_queue.hpp +5 -15
- data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/sync_timed_queue.hpp +118 -183
- data/src/cxx_supportlib/vendor-modified/boost/{detail → thread/detail}/atomic_redef_macros.hpp +0 -0
- data/src/cxx_supportlib/vendor-modified/boost/{detail → thread/detail}/atomic_undef_macros.hpp +0 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/detail/config.hpp +62 -11
- data/src/cxx_supportlib/vendor-modified/boost/thread/detail/log.hpp +15 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/detail/move.hpp +0 -2
- data/src/cxx_supportlib/vendor-modified/boost/thread/detail/platform.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/detail/platform_time.hpp +478 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/detail/thread.hpp +51 -85
- data/src/cxx_supportlib/vendor-modified/boost/thread/executors/basic_thread_pool.hpp +11 -3
- data/src/cxx_supportlib/vendor-modified/boost/thread/executors/detail/priority_executor_base.hpp +10 -4
- data/src/cxx_supportlib/vendor-modified/boost/thread/executors/scheduled_thread_pool.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/executors/scheduler.hpp +10 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/executors/scheduling_adaptor.hpp +15 -4
- data/src/cxx_supportlib/vendor-modified/boost/thread/executors/serial_executor.hpp +9 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/future.hpp +320 -92
- data/src/cxx_supportlib/vendor-modified/boost/thread/once.hpp +10 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/condition_variable.hpp +187 -112
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/condition_variable_fwd.hpp +137 -164
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/mutex.hpp +67 -37
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/pthread_helpers.hpp +42 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/pthread_mutex_scoped_lock.hpp +15 -9
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/recursive_mutex.hpp +65 -33
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/shared_mutex.hpp +84 -158
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/thread_data.hpp +143 -35
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/thread_heap_alloc.hpp +32 -2
- data/src/cxx_supportlib/vendor-modified/boost/thread/shared_mutex.hpp +8 -1
- data/src/cxx_supportlib/vendor-modified/boost/thread/thread_only.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/thread/v2/shared_mutex.hpp +579 -589
- data/src/cxx_supportlib/vendor-modified/boost/token_functions.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/token_iterator.hpp +5 -2
- data/src/cxx_supportlib/vendor-modified/boost/tuple/detail/tuple_basic.hpp +7 -9
- data/src/cxx_supportlib/vendor-modified/boost/tuple/tuple.hpp +8 -8
- 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 +6 -2
- data/src/cxx_supportlib/vendor-modified/boost/type_index/type_index_facade.hpp +5 -8
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/add_const.hpp +6 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/add_cv.hpp +6 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/add_lvalue_reference.hpp +6 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/add_pointer.hpp +6 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/add_reference.hpp +7 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/add_rvalue_reference.hpp +6 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/add_volatile.hpp +6 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/common_type.hpp +7 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/conditional.hpp +8 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/copy_cv.hpp +6 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/decay.hpp +6 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/config.hpp +12 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/detector.hpp +37 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/has_binary_operator.hpp +71 -14
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/has_postfix_operator.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/has_prefix_operator.hpp +4 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_function_ptr_helper.hpp +370 -102
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_likely_lambda.hpp +94 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp +1177 -572
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_mem_fun_pointer_tester.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detected.hpp +24 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detected_or.hpp +25 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/floating_point_promotion.hpp +8 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_equal_to.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_greater.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_greater_equal.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_less.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_less_equal.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_minus.hpp +93 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_minus_assign.hpp +95 -2
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_not_equal_to.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_nothrow_destructor.hpp +11 -2
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_plus_assign.hpp +90 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/integral_constant.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/integral_promotion.hpp +6 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/intrinsics.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_assignable.hpp +10 -2
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_complete.hpp +90 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_complex.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_constructible.hpp +12 -2
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_convertible.hpp +20 -2
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_default_constructible.hpp +16 -2
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_destructible.hpp +10 -2
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_detected.hpp +29 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_detected_convertible.hpp +29 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_detected_exact.hpp +29 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_list_constructible.hpp +48 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_nothrow_move_assignable.hpp +14 -3
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_nothrow_move_constructible.hpp +14 -4
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_nothrow_swappable.hpp +67 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/make_signed.hpp +6 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/make_unsigned.hpp +6 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/nonesuch.hpp +35 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/promote.hpp +6 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_all_extents.hpp +6 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_bounds.hpp +7 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_const.hpp +6 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_cv.hpp +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_cv_ref.hpp +30 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_extent.hpp +6 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_pointer.hpp +7 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_reference.hpp +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_volatile.hpp +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/type_identity.hpp +9 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/type_with_alignment.hpp +2 -3
- data/src/cxx_supportlib/vendor-modified/boost/typeof/decltype.hpp +34 -0
- data/src/cxx_supportlib/vendor-modified/boost/typeof/msvc/typeof_impl.hpp +5 -85
- data/src/cxx_supportlib/vendor-modified/boost/typeof/register_fundamental.hpp +1 -2
- data/src/cxx_supportlib/vendor-modified/boost/typeof/std/functional.hpp +6 -0
- data/src/cxx_supportlib/vendor-modified/boost/typeof/std/memory.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/typeof/typeof.hpp +24 -14
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/fwd.hpp +18 -12
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/implementation.hpp +4018 -4052
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/map.hpp +57 -97
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/set.hpp +56 -95
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_map.hpp +2150 -1777
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_map_fwd.hpp +41 -38
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_set.hpp +1630 -1420
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_set_fwd.hpp +40 -37
- data/src/cxx_supportlib/vendor-modified/boost/utility.hpp +6 -3
- data/src/cxx_supportlib/vendor-modified/boost/utility/detail/minstd_rand.hpp +55 -0
- data/src/cxx_supportlib/vendor-modified/boost/utility/detail/result_of_iterate.hpp +14 -17
- data/src/cxx_supportlib/vendor-modified/boost/utility/result_of.hpp +44 -20
- data/src/cxx_supportlib/vendor-modified/boost/utility/string_view.hpp +30 -30
- data/src/cxx_supportlib/vendor-modified/boost/version.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/weak_ptr.hpp +1 -1
- data/src/ruby_supportlib/phusion_passenger.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/common_library.rb +3 -0
- data/src/ruby_supportlib/phusion_passenger/platform_info/compiler.rb +8 -1
- data/src/ruby_supportlib/phusion_passenger/platform_info/cxx_portability.rb +7 -1
- data/src/ruby_supportlib/phusion_passenger/request_handler/thread_handler.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/utils/tee_input.rb +4 -4
- metadata +201 -47
- data/src/cxx_supportlib/ConfigKit/VariantMapUtils.h +0 -96
- data/src/cxx_supportlib/MessageClient.h +0 -309
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/addressof.hpp +0 -40
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/task_io_service.hpp +0 -80
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/shared_ptr.hpp +0 -40
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/weak_ptr.hpp +0 -40
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/win_iocp_serial_port_service.hpp +0 -230
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/io_service.hpp +0 -156
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/io_service.ipp +0 -157
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/basic_context.hpp +0 -42
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/context_service.hpp +0 -42
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/old/basic_context.hpp +0 -436
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/old/context_service.hpp +0 -176
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/old/detail/openssl_context_service.hpp +0 -396
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/old/detail/openssl_operation.hpp +0 -526
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/old/detail/openssl_stream_service.hpp +0 -573
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/old/stream.hpp +0 -503
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/old/stream_service.hpp +0 -186
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/stream_service.hpp +0 -42
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/to_raw_pointer.hpp +0 -33
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/to_raw_pointer.hpp +0 -47
- data/src/cxx_supportlib/vendor-modified/boost/iterator.hpp +0 -20
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/shared_mutex_assert.hpp +0 -724
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/timespec.hpp +0 -149
- data/src/cxx_supportlib/vendor-modified/boost/thread/v2/thread.hpp +0 -155
- data/src/cxx_supportlib/vendor-modified/boost/utility/empty_deleter.hpp +0 -43
|
@@ -36,6 +36,7 @@
|
|
|
36
36
|
#include <boost/type_traits/is_same.hpp>
|
|
37
37
|
#include <boost/type_traits/decay.hpp>
|
|
38
38
|
#include <boost/functional/hash.hpp>
|
|
39
|
+
#include <boost/thread/detail/platform_time.hpp>
|
|
39
40
|
#ifdef BOOST_THREAD_USES_CHRONO
|
|
40
41
|
#include <boost/chrono/system_clocks.hpp>
|
|
41
42
|
#include <boost/chrono/ceil.hpp>
|
|
@@ -291,7 +292,7 @@ namespace boost
|
|
|
291
292
|
template <class F>
|
|
292
293
|
explicit thread(F f
|
|
293
294
|
, typename disable_if_c<
|
|
294
|
-
boost::thread_detail::is_rv<F>::value // todo
|
|
295
|
+
boost::thread_detail::is_rv<F>::value // todo as a thread_detail::is_rv
|
|
295
296
|
//boost::thread_detail::is_convertible<F&,BOOST_THREAD_RV_REF(F)>::value
|
|
296
297
|
//|| is_same<typename decay<F>::type, thread>::value
|
|
297
298
|
, dummy* >::type=0
|
|
@@ -454,111 +455,80 @@ namespace boost
|
|
|
454
455
|
}
|
|
455
456
|
|
|
456
457
|
class id;
|
|
457
|
-
#ifdef BOOST_THREAD_PLATFORM_PTHREAD
|
|
458
|
-
inline id get_id() const BOOST_NOEXCEPT;
|
|
459
|
-
#else
|
|
460
458
|
id get_id() const BOOST_NOEXCEPT;
|
|
461
|
-
#endif
|
|
462
|
-
|
|
463
459
|
|
|
464
460
|
bool joinable() const BOOST_NOEXCEPT;
|
|
465
461
|
private:
|
|
466
462
|
bool join_noexcept();
|
|
463
|
+
bool do_try_join_until_noexcept(detail::internal_platform_timepoint const &timeout, bool& res);
|
|
464
|
+
bool do_try_join_until(detail::internal_platform_timepoint const &timeout);
|
|
467
465
|
public:
|
|
468
|
-
|
|
466
|
+
void join();
|
|
469
467
|
|
|
470
468
|
#ifdef BOOST_THREAD_USES_CHRONO
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
bool try_join_for(const chrono::duration<Rep, Period>& rel_time)
|
|
474
|
-
{
|
|
475
|
-
chrono::milliseconds rel_time2= chrono::ceil<chrono::milliseconds>(rel_time);
|
|
476
|
-
return do_try_join_until(rel_time2.count());
|
|
477
|
-
}
|
|
478
|
-
#else
|
|
479
|
-
template <class Rep, class Period>
|
|
480
|
-
bool try_join_for(const chrono::duration<Rep, Period>& rel_time)
|
|
469
|
+
template <class Duration>
|
|
470
|
+
bool try_join_until(const chrono::time_point<detail::internal_chrono_clock, Duration>& t)
|
|
481
471
|
{
|
|
482
|
-
return
|
|
472
|
+
return do_try_join_until(boost::detail::internal_platform_timepoint(t));
|
|
483
473
|
}
|
|
484
|
-
#endif
|
|
485
|
-
|
|
486
|
-
#if defined(BOOST_THREAD_HAS_CONDATTR_SET_CLOCK_MONOTONIC) && defined(BOOST_THREAD_USEFIXES_TIMESPEC)
|
|
487
|
-
typedef chrono::steady_clock my_clock_t;
|
|
488
|
-
#else
|
|
489
|
-
typedef chrono::system_clock my_clock_t;
|
|
490
|
-
#endif
|
|
491
474
|
|
|
492
475
|
template <class Clock, class Duration>
|
|
493
476
|
bool try_join_until(const chrono::time_point<Clock, Duration>& t)
|
|
494
477
|
{
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
478
|
+
typedef typename common_type<Duration, typename Clock::duration>::type common_duration;
|
|
479
|
+
common_duration d(t - Clock::now());
|
|
480
|
+
d = (std::min)(d, common_duration(chrono::milliseconds(BOOST_THREAD_POLL_INTERVAL_MILLISECONDS)));
|
|
481
|
+
while ( ! try_join_until(detail::internal_chrono_clock::now() + d) )
|
|
482
|
+
{
|
|
483
|
+
d = t - Clock::now();
|
|
484
|
+
if ( d <= common_duration::zero() ) return false; // timeout occurred
|
|
485
|
+
d = (std::min)(d, common_duration(chrono::milliseconds(BOOST_THREAD_POLL_INTERVAL_MILLISECONDS)));
|
|
486
|
+
}
|
|
503
487
|
return true;
|
|
504
488
|
}
|
|
505
|
-
template <class Duration>
|
|
506
|
-
bool try_join_until(const chrono::time_point<my_clock_t, Duration>& t)
|
|
507
|
-
{
|
|
508
|
-
using namespace chrono;
|
|
509
|
-
typedef time_point<my_clock_t, nanoseconds> nano_sys_tmpt;
|
|
510
|
-
return try_join_until(nano_sys_tmpt(ceil<nanoseconds>(t.time_since_epoch())));
|
|
511
|
-
}
|
|
512
|
-
#endif
|
|
513
|
-
#if defined(BOOST_THREAD_PLATFORM_WIN32)
|
|
514
|
-
private:
|
|
515
|
-
bool do_try_join_until_noexcept(uintmax_t milli, bool& res);
|
|
516
|
-
inline bool do_try_join_until(uintmax_t milli);
|
|
517
|
-
public:
|
|
518
|
-
bool timed_join(const system_time& abs_time);
|
|
519
|
-
//{
|
|
520
|
-
// return do_try_join_until(get_milliseconds_until(wait_until));
|
|
521
|
-
//}
|
|
522
489
|
|
|
523
|
-
|
|
524
|
-
bool
|
|
490
|
+
template <class Rep, class Period>
|
|
491
|
+
bool try_join_for(const chrono::duration<Rep, Period>& rel_time)
|
|
525
492
|
{
|
|
526
|
-
|
|
527
|
-
return do_try_join_until(rel_time.count());
|
|
493
|
+
return try_join_until(chrono::steady_clock::now() + rel_time);
|
|
528
494
|
}
|
|
529
495
|
#endif
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
#else
|
|
533
|
-
private:
|
|
534
|
-
bool do_try_join_until_noexcept(struct timespec const &timeout, bool& res);
|
|
535
|
-
inline bool do_try_join_until(struct timespec const &timeout);
|
|
536
|
-
public:
|
|
537
496
|
#if defined BOOST_THREAD_USES_DATETIME
|
|
538
497
|
bool timed_join(const system_time& abs_time)
|
|
539
498
|
{
|
|
540
|
-
|
|
499
|
+
const detail::real_platform_timepoint ts(abs_time);
|
|
500
|
+
#if defined BOOST_THREAD_INTERNAL_CLOCK_IS_MONO
|
|
501
|
+
detail::platform_duration d(ts - detail::real_platform_clock::now());
|
|
502
|
+
d = (std::min)(d, detail::platform_milliseconds(BOOST_THREAD_POLL_INTERVAL_MILLISECONDS));
|
|
503
|
+
while ( ! do_try_join_until(detail::internal_platform_clock::now() + d) )
|
|
504
|
+
{
|
|
505
|
+
d = ts - detail::real_platform_clock::now();
|
|
506
|
+
if ( d <= detail::platform_duration::zero() ) return false; // timeout occurred
|
|
507
|
+
d = (std::min)(d, detail::platform_milliseconds(BOOST_THREAD_POLL_INTERVAL_MILLISECONDS));
|
|
508
|
+
}
|
|
509
|
+
return true;
|
|
510
|
+
#else
|
|
541
511
|
return do_try_join_until(ts);
|
|
542
|
-
}
|
|
543
512
|
#endif
|
|
544
|
-
#ifdef BOOST_THREAD_USES_CHRONO
|
|
545
|
-
bool try_join_until(const chrono::time_point<chrono::system_clock, chrono::nanoseconds>& tp)
|
|
546
|
-
{
|
|
547
|
-
using namespace chrono;
|
|
548
|
-
nanoseconds d = tp.time_since_epoch();
|
|
549
|
-
timespec ts = boost::detail::to_timespec(d);
|
|
550
|
-
return do_try_join_until(ts);
|
|
551
513
|
}
|
|
552
|
-
#endif
|
|
553
514
|
|
|
554
|
-
#endif
|
|
555
|
-
public:
|
|
556
|
-
|
|
557
|
-
#if defined BOOST_THREAD_USES_DATETIME
|
|
558
515
|
template<typename TimeDuration>
|
|
559
|
-
|
|
516
|
+
bool timed_join(TimeDuration const& rel_time)
|
|
560
517
|
{
|
|
561
|
-
|
|
518
|
+
detail::platform_duration d(rel_time);
|
|
519
|
+
#if defined(BOOST_THREAD_HAS_MONO_CLOCK) && !defined(BOOST_THREAD_INTERNAL_CLOCK_IS_MONO)
|
|
520
|
+
const detail::mono_platform_timepoint ts(detail::mono_platform_clock::now() + d);
|
|
521
|
+
d = (std::min)(d, detail::platform_milliseconds(BOOST_THREAD_POLL_INTERVAL_MILLISECONDS));
|
|
522
|
+
while ( ! do_try_join_until(detail::internal_platform_clock::now() + d) )
|
|
523
|
+
{
|
|
524
|
+
d = ts - detail::mono_platform_clock::now();
|
|
525
|
+
if ( d <= detail::platform_duration::zero() ) return false; // timeout occurred
|
|
526
|
+
d = (std::min)(d, detail::platform_milliseconds(BOOST_THREAD_POLL_INTERVAL_MILLISECONDS));
|
|
527
|
+
}
|
|
528
|
+
return true;
|
|
529
|
+
#else
|
|
530
|
+
return do_try_join_until(detail::internal_platform_clock::now() + d);
|
|
531
|
+
#endif
|
|
562
532
|
}
|
|
563
533
|
#endif
|
|
564
534
|
void detach();
|
|
@@ -612,7 +582,7 @@ namespace boost
|
|
|
612
582
|
namespace this_thread
|
|
613
583
|
{
|
|
614
584
|
#ifdef BOOST_THREAD_PLATFORM_PTHREAD
|
|
615
|
-
|
|
585
|
+
thread::id get_id() BOOST_NOEXCEPT;
|
|
616
586
|
#else
|
|
617
587
|
thread::id BOOST_THREAD_DECL get_id() BOOST_NOEXCEPT;
|
|
618
588
|
#endif
|
|
@@ -743,7 +713,7 @@ namespace boost
|
|
|
743
713
|
};
|
|
744
714
|
|
|
745
715
|
#ifdef BOOST_THREAD_PLATFORM_PTHREAD
|
|
746
|
-
thread::id thread::get_id() const BOOST_NOEXCEPT
|
|
716
|
+
inline thread::id thread::get_id() const BOOST_NOEXCEPT
|
|
747
717
|
{
|
|
748
718
|
#if defined BOOST_THREAD_PROVIDES_BASIC_THREAD_ID
|
|
749
719
|
return const_cast<thread*>(this)->native_handle();
|
|
@@ -766,7 +736,7 @@ namespace boost
|
|
|
766
736
|
}
|
|
767
737
|
}
|
|
768
738
|
#endif
|
|
769
|
-
void thread::join() {
|
|
739
|
+
inline void thread::join() {
|
|
770
740
|
if (this_thread::get_id() == get_id())
|
|
771
741
|
boost::throw_exception(thread_resource_error(static_cast<int>(system::errc::resource_deadlock_would_occur), "boost thread: trying joining itself"));
|
|
772
742
|
|
|
@@ -775,11 +745,7 @@ namespace boost
|
|
|
775
745
|
);
|
|
776
746
|
}
|
|
777
747
|
|
|
778
|
-
|
|
779
|
-
bool thread::do_try_join_until(struct timespec const &timeout)
|
|
780
|
-
#else
|
|
781
|
-
bool thread::do_try_join_until(uintmax_t timeout)
|
|
782
|
-
#endif
|
|
748
|
+
inline bool thread::do_try_join_until(detail::internal_platform_timepoint const &timeout)
|
|
783
749
|
{
|
|
784
750
|
if (this_thread::get_id() == get_id())
|
|
785
751
|
boost::throw_exception(thread_resource_error(static_cast<int>(system::errc::resource_deadlock_would_occur), "boost thread: trying joining itself"));
|
|
@@ -86,11 +86,18 @@ namespace executors
|
|
|
86
86
|
for(;;)
|
|
87
87
|
{
|
|
88
88
|
work task;
|
|
89
|
-
|
|
90
|
-
|
|
89
|
+
try
|
|
90
|
+
{
|
|
91
|
+
queue_op_status st = work_queue.wait_pull(task);
|
|
92
|
+
if (st == queue_op_status::closed) {
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
task();
|
|
96
|
+
}
|
|
97
|
+
catch (boost::thread_interrupted&)
|
|
98
|
+
{
|
|
91
99
|
return;
|
|
92
100
|
}
|
|
93
|
-
task();
|
|
94
101
|
}
|
|
95
102
|
}
|
|
96
103
|
catch (...)
|
|
@@ -234,6 +241,7 @@ namespace executors
|
|
|
234
241
|
{
|
|
235
242
|
for (unsigned i = 0; i < threads.size(); ++i)
|
|
236
243
|
{
|
|
244
|
+
threads[i].interrupt();
|
|
237
245
|
threads[i].join();
|
|
238
246
|
}
|
|
239
247
|
}
|
data/src/cxx_supportlib/vendor-modified/boost/thread/executors/detail/priority_executor_base.hpp
CHANGED
|
@@ -57,10 +57,16 @@ namespace detail
|
|
|
57
57
|
{
|
|
58
58
|
for(;;)
|
|
59
59
|
{
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
60
|
+
try {
|
|
61
|
+
work task;
|
|
62
|
+
queue_op_status st = _workq.wait_pull(task);
|
|
63
|
+
if (st == queue_op_status::closed) return;
|
|
64
|
+
task();
|
|
65
|
+
}
|
|
66
|
+
catch (boost::thread_interrupted&)
|
|
67
|
+
{
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
64
70
|
}
|
|
65
71
|
}
|
|
66
72
|
catch (...)
|
|
@@ -16,6 +16,11 @@
|
|
|
16
16
|
|
|
17
17
|
#include <boost/config/abi_prefix.hpp>
|
|
18
18
|
|
|
19
|
+
#if defined(BOOST_MSVC)
|
|
20
|
+
# pragma warning(push)
|
|
21
|
+
# pragma warning(disable: 4355) // 'this' : used in base member initializer list
|
|
22
|
+
#endif
|
|
23
|
+
|
|
19
24
|
namespace boost
|
|
20
25
|
{
|
|
21
26
|
namespace executors
|
|
@@ -231,6 +236,7 @@ namespace boost
|
|
|
231
236
|
~scheduler()
|
|
232
237
|
{
|
|
233
238
|
this->close();
|
|
239
|
+
thr.interrupt();
|
|
234
240
|
thr.join();
|
|
235
241
|
}
|
|
236
242
|
template <class Ex>
|
|
@@ -266,6 +272,10 @@ namespace boost
|
|
|
266
272
|
using executors::scheduler;
|
|
267
273
|
}
|
|
268
274
|
|
|
275
|
+
#if defined(BOOST_MSVC)
|
|
276
|
+
# pragma warning(pop)
|
|
277
|
+
#endif
|
|
278
|
+
|
|
269
279
|
#include <boost/config/abi_suffix.hpp>
|
|
270
280
|
|
|
271
281
|
#endif
|
|
@@ -10,27 +10,33 @@
|
|
|
10
10
|
|
|
11
11
|
#include <boost/thread/executors/detail/scheduled_executor_base.hpp>
|
|
12
12
|
|
|
13
|
+
#if defined(BOOST_MSVC)
|
|
14
|
+
# pragma warning(push)
|
|
15
|
+
# pragma warning(disable: 4355) // 'this' : used in base member initializer list
|
|
16
|
+
#endif
|
|
17
|
+
|
|
13
18
|
namespace boost
|
|
14
19
|
{
|
|
15
20
|
namespace executors
|
|
16
21
|
{
|
|
17
22
|
|
|
18
23
|
template <typename Executor>
|
|
19
|
-
class
|
|
24
|
+
class scheduling_adaptor : public detail::scheduled_executor_base<>
|
|
20
25
|
{
|
|
21
26
|
private:
|
|
22
27
|
Executor& _exec;
|
|
23
28
|
thread _scheduler;
|
|
24
29
|
public:
|
|
25
30
|
|
|
26
|
-
|
|
31
|
+
scheduling_adaptor(Executor& ex)
|
|
27
32
|
: super(),
|
|
28
33
|
_exec(ex),
|
|
29
34
|
_scheduler(&super::loop, this) {}
|
|
30
35
|
|
|
31
|
-
~
|
|
36
|
+
~scheduling_adaptor()
|
|
32
37
|
{
|
|
33
38
|
this->close();
|
|
39
|
+
_scheduler.interrupt();
|
|
34
40
|
_scheduler.join();
|
|
35
41
|
}
|
|
36
42
|
|
|
@@ -45,7 +51,12 @@ namespace executors
|
|
|
45
51
|
|
|
46
52
|
} //end executors
|
|
47
53
|
|
|
48
|
-
using executors::
|
|
54
|
+
using executors::scheduling_adaptor;
|
|
49
55
|
|
|
50
56
|
} //end boost
|
|
57
|
+
|
|
58
|
+
#if defined(BOOST_MSVC)
|
|
59
|
+
# pragma warning(pop)
|
|
60
|
+
#endif
|
|
61
|
+
|
|
51
62
|
#endif
|
|
@@ -20,6 +20,11 @@
|
|
|
20
20
|
|
|
21
21
|
#include <boost/config/abi_prefix.hpp>
|
|
22
22
|
|
|
23
|
+
#if defined(BOOST_MSVC)
|
|
24
|
+
# pragma warning(push)
|
|
25
|
+
# pragma warning(disable: 4355) // 'this' : used in base member initializer list
|
|
26
|
+
#endif
|
|
27
|
+
|
|
23
28
|
namespace boost
|
|
24
29
|
{
|
|
25
30
|
namespace executors
|
|
@@ -211,6 +216,10 @@ namespace executors
|
|
|
211
216
|
using executors::serial_executor;
|
|
212
217
|
}
|
|
213
218
|
|
|
219
|
+
#if defined(BOOST_MSVC)
|
|
220
|
+
# pragma warning(pop)
|
|
221
|
+
#endif
|
|
222
|
+
|
|
214
223
|
#include <boost/config/abi_suffix.hpp>
|
|
215
224
|
|
|
216
225
|
#endif
|
|
@@ -159,7 +159,7 @@ namespace boost
|
|
|
159
159
|
boost::function<void()> callback;
|
|
160
160
|
// This declaration should be only included conditionally, but is included to maintain the same layout.
|
|
161
161
|
continuations_type continuations;
|
|
162
|
-
executor_ptr_type
|
|
162
|
+
executor_ptr_type ex_;
|
|
163
163
|
|
|
164
164
|
// This declaration should be only included conditionally, but is included to maintain the same layout.
|
|
165
165
|
virtual void launch_continuation()
|
|
@@ -173,43 +173,49 @@ namespace boost
|
|
|
173
173
|
is_constructed(false),
|
|
174
174
|
policy_(launch::none),
|
|
175
175
|
continuations(),
|
|
176
|
-
|
|
176
|
+
ex_()
|
|
177
177
|
{}
|
|
178
178
|
|
|
179
|
-
shared_state_base(exceptional_ptr const&
|
|
180
|
-
exception(
|
|
179
|
+
shared_state_base(exceptional_ptr const& ex):
|
|
180
|
+
exception(ex.ptr_),
|
|
181
181
|
done(true),
|
|
182
182
|
is_valid_(true),
|
|
183
183
|
is_deferred_(false),
|
|
184
184
|
is_constructed(false),
|
|
185
185
|
policy_(launch::none),
|
|
186
186
|
continuations(),
|
|
187
|
-
|
|
187
|
+
ex_()
|
|
188
188
|
{}
|
|
189
189
|
|
|
190
190
|
|
|
191
191
|
virtual ~shared_state_base()
|
|
192
192
|
{
|
|
193
193
|
}
|
|
194
|
+
|
|
195
|
+
bool is_done()
|
|
196
|
+
{
|
|
197
|
+
return done;
|
|
198
|
+
}
|
|
199
|
+
|
|
194
200
|
executor_ptr_type get_executor()
|
|
195
201
|
{
|
|
196
|
-
return
|
|
202
|
+
return ex_;
|
|
197
203
|
}
|
|
198
204
|
|
|
199
205
|
void set_executor_policy(executor_ptr_type aex)
|
|
200
206
|
{
|
|
201
207
|
set_executor();
|
|
202
|
-
|
|
208
|
+
ex_ = aex;
|
|
203
209
|
}
|
|
204
210
|
void set_executor_policy(executor_ptr_type aex, boost::lock_guard<boost::mutex>&)
|
|
205
211
|
{
|
|
206
212
|
set_executor();
|
|
207
|
-
|
|
213
|
+
ex_ = aex;
|
|
208
214
|
}
|
|
209
215
|
void set_executor_policy(executor_ptr_type aex, boost::unique_lock<boost::mutex>&)
|
|
210
216
|
{
|
|
211
217
|
set_executor();
|
|
212
|
-
|
|
218
|
+
ex_ = aex;
|
|
213
219
|
}
|
|
214
220
|
|
|
215
221
|
bool valid(boost::unique_lock<boost::mutex>&) { return is_valid_; }
|
|
@@ -262,6 +268,10 @@ namespace boost
|
|
|
262
268
|
external_waiters.erase(it);
|
|
263
269
|
}
|
|
264
270
|
|
|
271
|
+
#if 0
|
|
272
|
+
// this inline definition results in ODR. See https://github.com/boostorg/thread/issues/193
|
|
273
|
+
// to avoid it, we define the function on the derived templates using the macro BOOST_THREAD_DO_CONTINUATION
|
|
274
|
+
#define BOOST_THREAD_DO_CONTINUATION
|
|
265
275
|
#if defined BOOST_THREAD_PROVIDES_FUTURE_CONTINUATION
|
|
266
276
|
void do_continuation(boost::unique_lock<boost::mutex>& lock)
|
|
267
277
|
{
|
|
@@ -279,6 +289,31 @@ namespace boost
|
|
|
279
289
|
{
|
|
280
290
|
}
|
|
281
291
|
#endif
|
|
292
|
+
|
|
293
|
+
#else
|
|
294
|
+
#if defined BOOST_THREAD_PROVIDES_FUTURE_CONTINUATION
|
|
295
|
+
#define BOOST_THREAD_DO_CONTINUATION \
|
|
296
|
+
void do_continuation(boost::unique_lock<boost::mutex>& lock) \
|
|
297
|
+
{ \
|
|
298
|
+
if (! this->continuations.empty()) { \
|
|
299
|
+
continuations_type the_continuations = this->continuations; \
|
|
300
|
+
this->continuations.clear(); \
|
|
301
|
+
relocker rlk(lock); \
|
|
302
|
+
for (continuations_type::iterator it = the_continuations.begin(); it != the_continuations.end(); ++it) { \
|
|
303
|
+
(*it)->launch_continuation(); \
|
|
304
|
+
} \
|
|
305
|
+
} \
|
|
306
|
+
}
|
|
307
|
+
#else
|
|
308
|
+
#define BOOST_THREAD_DO_CONTINUATION \
|
|
309
|
+
void do_continuation(boost::unique_lock<boost::mutex>&) \
|
|
310
|
+
{ \
|
|
311
|
+
}
|
|
312
|
+
#endif
|
|
313
|
+
|
|
314
|
+
virtual void do_continuation(boost::unique_lock<boost::mutex>&) = 0;
|
|
315
|
+
#endif
|
|
316
|
+
|
|
282
317
|
#if defined BOOST_THREAD_PROVIDES_FUTURE_CONTINUATION
|
|
283
318
|
virtual void set_continuation_ptr(continuation_ptr_type continuation, boost::unique_lock<boost::mutex>& lock)
|
|
284
319
|
{
|
|
@@ -299,7 +334,7 @@ namespace boost
|
|
|
299
334
|
}
|
|
300
335
|
do_continuation(lock);
|
|
301
336
|
}
|
|
302
|
-
void
|
|
337
|
+
void notify_deferred()
|
|
303
338
|
{
|
|
304
339
|
boost::unique_lock<boost::mutex> lock(this->mutex);
|
|
305
340
|
mark_finished_internal(lock);
|
|
@@ -348,10 +383,7 @@ namespace boost
|
|
|
348
383
|
is_deferred_=false;
|
|
349
384
|
execute(lk);
|
|
350
385
|
}
|
|
351
|
-
|
|
352
|
-
{
|
|
353
|
-
waiters.wait(lk);
|
|
354
|
-
}
|
|
386
|
+
waiters.wait(lk, boost::bind(&shared_state_base::is_done, boost::ref(*this)));
|
|
355
387
|
if(rethrow && exception)
|
|
356
388
|
{
|
|
357
389
|
boost::rethrow_exception(exception);
|
|
@@ -370,6 +402,17 @@ namespace boost
|
|
|
370
402
|
}
|
|
371
403
|
|
|
372
404
|
#if defined BOOST_THREAD_USES_DATETIME
|
|
405
|
+
template<typename Duration>
|
|
406
|
+
bool timed_wait(Duration const& rel_time)
|
|
407
|
+
{
|
|
408
|
+
boost::unique_lock<boost::mutex> lock(this->mutex);
|
|
409
|
+
if (is_deferred_)
|
|
410
|
+
return false;
|
|
411
|
+
|
|
412
|
+
do_callback(lock);
|
|
413
|
+
return waiters.timed_wait(lock, rel_time, boost::bind(&shared_state_base::is_done, boost::ref(*this)));
|
|
414
|
+
}
|
|
415
|
+
|
|
373
416
|
bool timed_wait_until(boost::system_time const& target_time)
|
|
374
417
|
{
|
|
375
418
|
boost::unique_lock<boost::mutex> lock(this->mutex);
|
|
@@ -377,15 +420,7 @@ namespace boost
|
|
|
377
420
|
return false;
|
|
378
421
|
|
|
379
422
|
do_callback(lock);
|
|
380
|
-
|
|
381
|
-
{
|
|
382
|
-
bool const success=waiters.timed_wait(lock,target_time);
|
|
383
|
-
if(!success && !done)
|
|
384
|
-
{
|
|
385
|
-
return false;
|
|
386
|
-
}
|
|
387
|
-
}
|
|
388
|
-
return true;
|
|
423
|
+
return waiters.timed_wait(lock, target_time, boost::bind(&shared_state_base::is_done, boost::ref(*this)));
|
|
389
424
|
}
|
|
390
425
|
#endif
|
|
391
426
|
#ifdef BOOST_THREAD_USES_CHRONO
|
|
@@ -398,13 +433,9 @@ namespace boost
|
|
|
398
433
|
if (is_deferred_)
|
|
399
434
|
return future_status::deferred;
|
|
400
435
|
do_callback(lock);
|
|
401
|
-
|
|
436
|
+
if(!waiters.wait_until(lock, abs_time, boost::bind(&shared_state_base::is_done, boost::ref(*this))))
|
|
402
437
|
{
|
|
403
|
-
|
|
404
|
-
if(st==cv_status::timeout && !done)
|
|
405
|
-
{
|
|
406
|
-
return future_status::timeout;
|
|
407
|
-
}
|
|
438
|
+
return future_status::timeout;
|
|
408
439
|
}
|
|
409
440
|
return future_status::ready;
|
|
410
441
|
}
|
|
@@ -421,7 +452,7 @@ namespace boost
|
|
|
421
452
|
mark_exceptional_finish_internal(boost::current_exception(), lock);
|
|
422
453
|
}
|
|
423
454
|
|
|
424
|
-
void
|
|
455
|
+
void set_exception_deferred(exception_ptr e)
|
|
425
456
|
{
|
|
426
457
|
unique_lock<boost::mutex> lk(this->mutex);
|
|
427
458
|
if (has_value(lk))
|
|
@@ -430,6 +461,17 @@ namespace boost
|
|
|
430
461
|
}
|
|
431
462
|
exception=e;
|
|
432
463
|
this->is_constructed = true;
|
|
464
|
+
}
|
|
465
|
+
void set_exception_at_thread_exit(exception_ptr e)
|
|
466
|
+
{
|
|
467
|
+
set_exception_deferred(e);
|
|
468
|
+
// unique_lock<boost::mutex> lk(this->mutex);
|
|
469
|
+
// if (has_value(lk))
|
|
470
|
+
// {
|
|
471
|
+
// throw_exception(promise_already_satisfied());
|
|
472
|
+
// }
|
|
473
|
+
// exception=e;
|
|
474
|
+
// this->is_constructed = true;
|
|
433
475
|
detail::make_ready_at_thread_exit(shared_from_this());
|
|
434
476
|
}
|
|
435
477
|
|
|
@@ -535,10 +577,8 @@ namespace boost
|
|
|
535
577
|
detail::shared_state_base(ex), result()
|
|
536
578
|
{}
|
|
537
579
|
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
{
|
|
541
|
-
}
|
|
580
|
+
// locating this definition on the template avoid the ODR issue. See https://github.com/boostorg/thread/issues/193
|
|
581
|
+
BOOST_THREAD_DO_CONTINUATION
|
|
542
582
|
|
|
543
583
|
void mark_finished_with_result_internal(source_reference_type result_, boost::unique_lock<boost::mutex>& lock)
|
|
544
584
|
{
|
|
@@ -617,8 +657,7 @@ namespace boost
|
|
|
617
657
|
boost::unique_lock<boost::mutex> lk(this->mutex);
|
|
618
658
|
return this->get_sh(lk);
|
|
619
659
|
}
|
|
620
|
-
|
|
621
|
-
void set_value_at_thread_exit(source_reference_type result_)
|
|
660
|
+
void set_value_deferred(source_reference_type result_)
|
|
622
661
|
{
|
|
623
662
|
unique_lock<boost::mutex> lk(this->mutex);
|
|
624
663
|
if (this->has_value(lk))
|
|
@@ -632,13 +671,14 @@ namespace boost
|
|
|
632
671
|
#endif
|
|
633
672
|
|
|
634
673
|
this->is_constructed = true;
|
|
635
|
-
detail::make_ready_at_thread_exit(shared_from_this());
|
|
636
674
|
}
|
|
637
|
-
void
|
|
675
|
+
void set_value_deferred(rvalue_source_type result_)
|
|
638
676
|
{
|
|
639
677
|
unique_lock<boost::mutex> lk(this->mutex);
|
|
640
678
|
if (this->has_value(lk))
|
|
679
|
+
{
|
|
641
680
|
throw_exception(promise_already_satisfied());
|
|
681
|
+
}
|
|
642
682
|
|
|
643
683
|
#if ! defined BOOST_NO_CXX11_RVALUE_REFERENCES
|
|
644
684
|
#if defined BOOST_THREAD_FUTURE_USES_OPTIONAL
|
|
@@ -654,6 +694,46 @@ namespace boost
|
|
|
654
694
|
#endif
|
|
655
695
|
#endif
|
|
656
696
|
this->is_constructed = true;
|
|
697
|
+
}
|
|
698
|
+
|
|
699
|
+
void set_value_at_thread_exit(source_reference_type result_)
|
|
700
|
+
{
|
|
701
|
+
set_value_deferred(result_);
|
|
702
|
+
// unique_lock<boost::mutex> lk(this->mutex);
|
|
703
|
+
// if (this->has_value(lk))
|
|
704
|
+
// {
|
|
705
|
+
// throw_exception(promise_already_satisfied());
|
|
706
|
+
// }
|
|
707
|
+
//#if defined BOOST_THREAD_FUTURE_USES_OPTIONAL
|
|
708
|
+
// result = result_;
|
|
709
|
+
//#else
|
|
710
|
+
// result.reset(new T(result_));
|
|
711
|
+
//#endif
|
|
712
|
+
//
|
|
713
|
+
// this->is_constructed = true;
|
|
714
|
+
detail::make_ready_at_thread_exit(shared_from_this());
|
|
715
|
+
}
|
|
716
|
+
void set_value_at_thread_exit(rvalue_source_type result_)
|
|
717
|
+
{
|
|
718
|
+
set_value_deferred(boost::move(result_));
|
|
719
|
+
// unique_lock<boost::mutex> lk(this->mutex);
|
|
720
|
+
// if (this->has_value(lk))
|
|
721
|
+
// throw_exception(promise_already_satisfied());
|
|
722
|
+
//
|
|
723
|
+
//#if ! defined BOOST_NO_CXX11_RVALUE_REFERENCES
|
|
724
|
+
//#if defined BOOST_THREAD_FUTURE_USES_OPTIONAL
|
|
725
|
+
// result = boost::move(result_);
|
|
726
|
+
//#else
|
|
727
|
+
// result.reset(new T(boost::move(result_)));
|
|
728
|
+
//#endif
|
|
729
|
+
//#else
|
|
730
|
+
//#if defined BOOST_THREAD_FUTURE_USES_OPTIONAL
|
|
731
|
+
// result = boost::move(result_);
|
|
732
|
+
//#else
|
|
733
|
+
// result.reset(new T(static_cast<rvalue_source_type>(result_)));
|
|
734
|
+
//#endif
|
|
735
|
+
//#endif
|
|
736
|
+
// this->is_constructed = true;
|
|
657
737
|
detail::make_ready_at_thread_exit(shared_from_this());
|
|
658
738
|
}
|
|
659
739
|
|
|
@@ -681,9 +761,8 @@ namespace boost
|
|
|
681
761
|
detail::shared_state_base(ex), result(0)
|
|
682
762
|
{}
|
|
683
763
|
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
}
|
|
764
|
+
// locating this definition on the template avoid the ODR issue. See https://github.com/boostorg/thread/issues/193
|
|
765
|
+
BOOST_THREAD_DO_CONTINUATION
|
|
687
766
|
|
|
688
767
|
void mark_finished_with_result_internal(source_reference_type result_, boost::unique_lock<boost::mutex>& lock)
|
|
689
768
|
{
|
|
@@ -719,13 +798,25 @@ namespace boost
|
|
|
719
798
|
return get_sh(lock);
|
|
720
799
|
}
|
|
721
800
|
|
|
722
|
-
void
|
|
801
|
+
void set_value_deferred(T& result_)
|
|
723
802
|
{
|
|
724
803
|
unique_lock<boost::mutex> lk(this->mutex);
|
|
725
804
|
if (this->has_value(lk))
|
|
805
|
+
{
|
|
726
806
|
throw_exception(promise_already_satisfied());
|
|
807
|
+
}
|
|
727
808
|
result= &result_;
|
|
728
809
|
this->is_constructed = true;
|
|
810
|
+
}
|
|
811
|
+
|
|
812
|
+
void set_value_at_thread_exit(T& result_)
|
|
813
|
+
{
|
|
814
|
+
set_value_deferred(result_);
|
|
815
|
+
// unique_lock<boost::mutex> lk(this->mutex);
|
|
816
|
+
// if (this->has_value(lk))
|
|
817
|
+
// throw_exception(promise_already_satisfied());
|
|
818
|
+
// result= &result_;
|
|
819
|
+
// this->is_constructed = true;
|
|
729
820
|
detail::make_ready_at_thread_exit(shared_from_this());
|
|
730
821
|
}
|
|
731
822
|
|
|
@@ -748,6 +839,9 @@ namespace boost
|
|
|
748
839
|
detail::shared_state_base(ex)
|
|
749
840
|
{}
|
|
750
841
|
|
|
842
|
+
// locating this definition on the template avoid the ODR issue. See https://github.com/boostorg/thread/issues/193
|
|
843
|
+
BOOST_THREAD_DO_CONTINUATION
|
|
844
|
+
|
|
751
845
|
void mark_finished_with_result_internal(boost::unique_lock<boost::mutex>& lock)
|
|
752
846
|
{
|
|
753
847
|
mark_finished_internal(lock);
|
|
@@ -779,7 +873,7 @@ namespace boost
|
|
|
779
873
|
this->get_sh(lock);
|
|
780
874
|
}
|
|
781
875
|
|
|
782
|
-
void
|
|
876
|
+
void set_value_deferred()
|
|
783
877
|
{
|
|
784
878
|
unique_lock<boost::mutex> lk(this->mutex);
|
|
785
879
|
if (this->has_value(lk))
|
|
@@ -787,6 +881,16 @@ namespace boost
|
|
|
787
881
|
throw_exception(promise_already_satisfied());
|
|
788
882
|
}
|
|
789
883
|
this->is_constructed = true;
|
|
884
|
+
}
|
|
885
|
+
void set_value_at_thread_exit()
|
|
886
|
+
{
|
|
887
|
+
set_value_deferred();
|
|
888
|
+
// unique_lock<boost::mutex> lk(this->mutex);
|
|
889
|
+
// if (this->has_value(lk))
|
|
890
|
+
// {
|
|
891
|
+
// throw_exception(promise_already_satisfied());
|
|
892
|
+
// }
|
|
893
|
+
// this->is_constructed = true;
|
|
790
894
|
detail::make_ready_at_thread_exit(shared_from_this());
|
|
791
895
|
}
|
|
792
896
|
private:
|
|
@@ -826,10 +930,7 @@ namespace boost
|
|
|
826
930
|
join();
|
|
827
931
|
#elif defined BOOST_THREAD_ASYNC_FUTURE_WAITS
|
|
828
932
|
unique_lock<boost::mutex> lk(this->mutex);
|
|
829
|
-
|
|
830
|
-
{
|
|
831
|
-
this->waiters.wait(lk);
|
|
832
|
-
}
|
|
933
|
+
this->waiters.wait(lk, boost::bind(&shared_state_base::is_done, boost::ref(*this)));
|
|
833
934
|
#endif
|
|
834
935
|
}
|
|
835
936
|
|
|
@@ -934,10 +1035,8 @@ namespace boost
|
|
|
934
1035
|
template<typename Rp, typename Fp>
|
|
935
1036
|
struct future_deferred_shared_state: shared_state<Rp>
|
|
936
1037
|
{
|
|
937
|
-
typedef shared_state<Rp> base_type;
|
|
938
1038
|
Fp func_;
|
|
939
1039
|
|
|
940
|
-
public:
|
|
941
1040
|
explicit future_deferred_shared_state(BOOST_THREAD_FWD_REF(Fp) f)
|
|
942
1041
|
: func_(boost::move(f))
|
|
943
1042
|
{
|
|
@@ -962,10 +1061,8 @@ namespace boost
|
|
|
962
1061
|
template<typename Rp, typename Fp>
|
|
963
1062
|
struct future_deferred_shared_state<Rp&,Fp>: shared_state<Rp&>
|
|
964
1063
|
{
|
|
965
|
-
typedef shared_state<Rp&> base_type;
|
|
966
1064
|
Fp func_;
|
|
967
1065
|
|
|
968
|
-
public:
|
|
969
1066
|
explicit future_deferred_shared_state(BOOST_THREAD_FWD_REF(Fp) f)
|
|
970
1067
|
: func_(boost::move(f))
|
|
971
1068
|
{
|
|
@@ -987,10 +1084,8 @@ namespace boost
|
|
|
987
1084
|
template<typename Fp>
|
|
988
1085
|
struct future_deferred_shared_state<void,Fp>: shared_state<void>
|
|
989
1086
|
{
|
|
990
|
-
typedef shared_state<void> base_type;
|
|
991
1087
|
Fp func_;
|
|
992
1088
|
|
|
993
|
-
public:
|
|
994
1089
|
explicit future_deferred_shared_state(BOOST_THREAD_FWD_REF(Fp) f)
|
|
995
1090
|
: func_(boost::move(f))
|
|
996
1091
|
{
|
|
@@ -1018,7 +1113,6 @@ namespace boost
|
|
|
1018
1113
|
public:
|
|
1019
1114
|
typedef std::vector<int>::size_type count_type;
|
|
1020
1115
|
private:
|
|
1021
|
-
struct registered_waiter;
|
|
1022
1116
|
struct registered_waiter
|
|
1023
1117
|
{
|
|
1024
1118
|
boost::shared_ptr<detail::shared_state_base> future_;
|
|
@@ -1335,7 +1429,7 @@ namespace boost
|
|
|
1335
1429
|
|
|
1336
1430
|
bool valid() const BOOST_NOEXCEPT
|
|
1337
1431
|
{
|
|
1338
|
-
return future_ != 0 && future_->valid();
|
|
1432
|
+
return future_.get() != 0 && future_->valid();
|
|
1339
1433
|
}
|
|
1340
1434
|
|
|
1341
1435
|
void wait() const
|
|
@@ -1379,7 +1473,11 @@ namespace boost
|
|
|
1379
1473
|
template<typename Duration>
|
|
1380
1474
|
bool timed_wait(Duration const& rel_time) const
|
|
1381
1475
|
{
|
|
1382
|
-
|
|
1476
|
+
if(!future_)
|
|
1477
|
+
{
|
|
1478
|
+
boost::throw_exception(future_uninitialized());
|
|
1479
|
+
}
|
|
1480
|
+
return future_->timed_wait(rel_time);
|
|
1383
1481
|
}
|
|
1384
1482
|
|
|
1385
1483
|
bool timed_wait_until(boost::system_time const& abs_time) const
|
|
@@ -1639,7 +1737,9 @@ namespace boost
|
|
|
1639
1737
|
base_type(boost::move(static_cast<base_type&>(BOOST_THREAD_RV(other))))
|
|
1640
1738
|
{
|
|
1641
1739
|
}
|
|
1740
|
+
#if defined BOOST_THREAD_PROVIDES_FUTURE_UNWRAP
|
|
1642
1741
|
inline explicit BOOST_THREAD_FUTURE(BOOST_THREAD_RV_REF(BOOST_THREAD_FUTURE<BOOST_THREAD_FUTURE<R> >) other); // EXTENSION
|
|
1742
|
+
#endif
|
|
1643
1743
|
|
|
1644
1744
|
explicit BOOST_THREAD_FUTURE(BOOST_THREAD_RV_REF(shared_future<R>) other) :
|
|
1645
1745
|
base_type(boost::move(static_cast<base_type&>(BOOST_THREAD_RV(other))))
|
|
@@ -1680,7 +1780,7 @@ namespace boost
|
|
|
1680
1780
|
// retrieving the value
|
|
1681
1781
|
move_dest_type get()
|
|
1682
1782
|
{
|
|
1683
|
-
if (this->future_ == 0)
|
|
1783
|
+
if (this->future_.get() == 0)
|
|
1684
1784
|
{
|
|
1685
1785
|
boost::throw_exception(future_uninitialized());
|
|
1686
1786
|
}
|
|
@@ -1700,7 +1800,7 @@ namespace boost
|
|
|
1700
1800
|
get_or(BOOST_THREAD_RV_REF(R2) v)
|
|
1701
1801
|
{
|
|
1702
1802
|
|
|
1703
|
-
if (this->future_ == 0)
|
|
1803
|
+
if (this->future_.get() == 0)
|
|
1704
1804
|
{
|
|
1705
1805
|
boost::throw_exception(future_uninitialized());
|
|
1706
1806
|
}
|
|
@@ -1726,7 +1826,7 @@ namespace boost
|
|
|
1726
1826
|
typename boost::disable_if< is_void<R2>, move_dest_type>::type
|
|
1727
1827
|
get_or(R2 const& v) // EXTENSION
|
|
1728
1828
|
{
|
|
1729
|
-
if (this->future_ == 0)
|
|
1829
|
+
if (this->future_.get() == 0)
|
|
1730
1830
|
{
|
|
1731
1831
|
boost::throw_exception(future_uninitialized());
|
|
1732
1832
|
}
|
|
@@ -1941,7 +2041,7 @@ namespace boost
|
|
|
1941
2041
|
// retrieving the value
|
|
1942
2042
|
move_dest_type get()
|
|
1943
2043
|
{
|
|
1944
|
-
if (this->future_ == 0)
|
|
2044
|
+
if (this->future_.get() == 0)
|
|
1945
2045
|
{
|
|
1946
2046
|
boost::throw_exception(future_uninitialized());
|
|
1947
2047
|
}
|
|
@@ -1957,7 +2057,7 @@ namespace boost
|
|
|
1957
2057
|
}
|
|
1958
2058
|
move_dest_type get_or(BOOST_THREAD_RV_REF(R) v) // EXTENSION
|
|
1959
2059
|
{
|
|
1960
|
-
if (this->future_ == 0)
|
|
2060
|
+
if (this->future_.get() == 0)
|
|
1961
2061
|
{
|
|
1962
2062
|
boost::throw_exception(future_uninitialized());
|
|
1963
2063
|
}
|
|
@@ -1976,7 +2076,7 @@ namespace boost
|
|
|
1976
2076
|
|
|
1977
2077
|
move_dest_type get_or(R const& v) // EXTENSION
|
|
1978
2078
|
{
|
|
1979
|
-
if (this->future_ == 0)
|
|
2079
|
+
if (this->future_.get() == 0)
|
|
1980
2080
|
{
|
|
1981
2081
|
boost::throw_exception(future_uninitialized());
|
|
1982
2082
|
}
|
|
@@ -2163,13 +2263,13 @@ namespace boost
|
|
|
2163
2263
|
void lazy_init()
|
|
2164
2264
|
{
|
|
2165
2265
|
#if defined BOOST_THREAD_PROVIDES_PROMISE_LAZY
|
|
2166
|
-
#include <boost/detail/atomic_undef_macros.hpp>
|
|
2266
|
+
#include <boost/thread/detail/atomic_undef_macros.hpp>
|
|
2167
2267
|
if(!atomic_load(&future_))
|
|
2168
2268
|
{
|
|
2169
2269
|
future_ptr blank;
|
|
2170
2270
|
atomic_compare_exchange(&future_,&blank,future_ptr(new detail::shared_state<R>));
|
|
2171
2271
|
}
|
|
2172
|
-
#include <boost/detail/atomic_redef_macros.hpp>
|
|
2272
|
+
#include <boost/thread/detail/atomic_redef_macros.hpp>
|
|
2173
2273
|
#endif
|
|
2174
2274
|
}
|
|
2175
2275
|
|
|
@@ -2261,7 +2361,8 @@ namespace boost
|
|
|
2261
2361
|
|
|
2262
2362
|
#if defined BOOST_NO_CXX11_RVALUE_REFERENCES
|
|
2263
2363
|
template <class TR>
|
|
2264
|
-
typename boost::enable_if_c<is_copy_constructible<TR>::value && is_same<R, TR>::value, void>::type
|
|
2364
|
+
typename boost::enable_if_c<is_copy_constructible<TR>::value && is_same<R, TR>::value, void>::type
|
|
2365
|
+
set_value(TR const & r)
|
|
2265
2366
|
{
|
|
2266
2367
|
lazy_init();
|
|
2267
2368
|
boost::unique_lock<boost::mutex> lock(future_->mutex);
|
|
@@ -2299,6 +2400,44 @@ namespace boost
|
|
|
2299
2400
|
#endif
|
|
2300
2401
|
}
|
|
2301
2402
|
|
|
2403
|
+
#if defined BOOST_NO_CXX11_RVALUE_REFERENCES
|
|
2404
|
+
template <class TR>
|
|
2405
|
+
typename boost::enable_if_c<is_copy_constructible<TR>::value && is_same<R, TR>::value, void>::type
|
|
2406
|
+
set_value_deferred(TR const & r)
|
|
2407
|
+
{
|
|
2408
|
+
lazy_init();
|
|
2409
|
+
if (future_.get()==0)
|
|
2410
|
+
{
|
|
2411
|
+
boost::throw_exception(promise_moved());
|
|
2412
|
+
}
|
|
2413
|
+
future_->set_value_deferred(r);
|
|
2414
|
+
}
|
|
2415
|
+
#else
|
|
2416
|
+
void set_value_deferred(source_reference_type r)
|
|
2417
|
+
{
|
|
2418
|
+
lazy_init();
|
|
2419
|
+
if (future_.get()==0)
|
|
2420
|
+
{
|
|
2421
|
+
boost::throw_exception(promise_moved());
|
|
2422
|
+
}
|
|
2423
|
+
future_->set_value_deferred(r);
|
|
2424
|
+
}
|
|
2425
|
+
#endif
|
|
2426
|
+
|
|
2427
|
+
void set_value_deferred(rvalue_source_type r)
|
|
2428
|
+
{
|
|
2429
|
+
lazy_init();
|
|
2430
|
+
if (future_.get()==0)
|
|
2431
|
+
{
|
|
2432
|
+
boost::throw_exception(promise_moved());
|
|
2433
|
+
}
|
|
2434
|
+
#if ! defined BOOST_NO_CXX11_RVALUE_REFERENCES
|
|
2435
|
+
future_->set_value_deferred(boost::move(r));
|
|
2436
|
+
#else
|
|
2437
|
+
future_->set_value_deferred(static_cast<rvalue_source_type>(r));
|
|
2438
|
+
#endif
|
|
2439
|
+
}
|
|
2440
|
+
|
|
2302
2441
|
#if ! defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
|
|
2303
2442
|
template <class ...Args>
|
|
2304
2443
|
void emplace(BOOST_THREAD_FWD_REF(Args) ...args)
|
|
@@ -2329,6 +2468,21 @@ namespace boost
|
|
|
2329
2468
|
{
|
|
2330
2469
|
set_exception(boost::copy_exception(ex));
|
|
2331
2470
|
}
|
|
2471
|
+
void set_exception_deferred(boost::exception_ptr p)
|
|
2472
|
+
{
|
|
2473
|
+
lazy_init();
|
|
2474
|
+
if (future_.get()==0)
|
|
2475
|
+
{
|
|
2476
|
+
boost::throw_exception(promise_moved());
|
|
2477
|
+
}
|
|
2478
|
+
future_->set_exception_deferred(p);
|
|
2479
|
+
}
|
|
2480
|
+
template <typename E>
|
|
2481
|
+
void set_exception_deferred(E ex)
|
|
2482
|
+
{
|
|
2483
|
+
set_exception_deferred(boost::copy_exception(ex));
|
|
2484
|
+
}
|
|
2485
|
+
|
|
2332
2486
|
// setting the result with deferred notification
|
|
2333
2487
|
#if defined BOOST_NO_CXX11_RVALUE_REFERENCES
|
|
2334
2488
|
template <class TR>
|
|
@@ -2378,6 +2532,14 @@ namespace boost
|
|
|
2378
2532
|
lazy_init();
|
|
2379
2533
|
future_->set_wait_callback(f,this);
|
|
2380
2534
|
}
|
|
2535
|
+
void notify_deferred()
|
|
2536
|
+
{
|
|
2537
|
+
if (future_.get()==0)
|
|
2538
|
+
{
|
|
2539
|
+
boost::throw_exception(promise_moved());
|
|
2540
|
+
}
|
|
2541
|
+
future_->notify_deferred();
|
|
2542
|
+
}
|
|
2381
2543
|
|
|
2382
2544
|
};
|
|
2383
2545
|
|
|
@@ -2392,13 +2554,13 @@ namespace boost
|
|
|
2392
2554
|
void lazy_init()
|
|
2393
2555
|
{
|
|
2394
2556
|
#if defined BOOST_THREAD_PROVIDES_PROMISE_LAZY
|
|
2395
|
-
#include <boost/detail/atomic_undef_macros.hpp>
|
|
2557
|
+
#include <boost/thread/detail/atomic_undef_macros.hpp>
|
|
2396
2558
|
if(!atomic_load(&future_))
|
|
2397
2559
|
{
|
|
2398
2560
|
future_ptr blank;
|
|
2399
2561
|
atomic_compare_exchange(&future_,&blank,future_ptr(new detail::shared_state<R&>));
|
|
2400
2562
|
}
|
|
2401
|
-
#include <boost/detail/atomic_redef_macros.hpp>
|
|
2563
|
+
#include <boost/thread/detail/atomic_redef_macros.hpp>
|
|
2402
2564
|
#endif
|
|
2403
2565
|
}
|
|
2404
2566
|
|
|
@@ -2486,7 +2648,15 @@ namespace boost
|
|
|
2486
2648
|
}
|
|
2487
2649
|
future_->mark_finished_with_result_internal(r, lock);
|
|
2488
2650
|
}
|
|
2489
|
-
|
|
2651
|
+
void set_value_deferred(R& r)
|
|
2652
|
+
{
|
|
2653
|
+
lazy_init();
|
|
2654
|
+
if (future_.get()==0)
|
|
2655
|
+
{
|
|
2656
|
+
boost::throw_exception(promise_already_satisfied());
|
|
2657
|
+
}
|
|
2658
|
+
future_->set_value_deferred(r);
|
|
2659
|
+
}
|
|
2490
2660
|
void set_exception(boost::exception_ptr p)
|
|
2491
2661
|
{
|
|
2492
2662
|
lazy_init();
|
|
@@ -2502,7 +2672,20 @@ namespace boost
|
|
|
2502
2672
|
{
|
|
2503
2673
|
set_exception(boost::copy_exception(ex));
|
|
2504
2674
|
}
|
|
2505
|
-
|
|
2675
|
+
void set_exception_deferred(boost::exception_ptr p)
|
|
2676
|
+
{
|
|
2677
|
+
lazy_init();
|
|
2678
|
+
if (future_.get()==0)
|
|
2679
|
+
{
|
|
2680
|
+
boost::throw_exception(promise_moved());
|
|
2681
|
+
}
|
|
2682
|
+
future_->set_exception_deferred(p);
|
|
2683
|
+
}
|
|
2684
|
+
template <typename E>
|
|
2685
|
+
void set_exception_deferred(E ex)
|
|
2686
|
+
{
|
|
2687
|
+
set_exception_deferred(boost::copy_exception(ex));
|
|
2688
|
+
}
|
|
2506
2689
|
// setting the result with deferred notification
|
|
2507
2690
|
void set_value_at_thread_exit(R& r)
|
|
2508
2691
|
{
|
|
@@ -2533,6 +2716,14 @@ namespace boost
|
|
|
2533
2716
|
lazy_init();
|
|
2534
2717
|
future_->set_wait_callback(f,this);
|
|
2535
2718
|
}
|
|
2719
|
+
void notify_deferred()
|
|
2720
|
+
{
|
|
2721
|
+
if (future_.get()==0)
|
|
2722
|
+
{
|
|
2723
|
+
boost::throw_exception(promise_moved());
|
|
2724
|
+
}
|
|
2725
|
+
future_->notify_deferred();
|
|
2726
|
+
}
|
|
2536
2727
|
};
|
|
2537
2728
|
|
|
2538
2729
|
template <>
|
|
@@ -2642,6 +2833,15 @@ namespace boost
|
|
|
2642
2833
|
}
|
|
2643
2834
|
future_->mark_finished_with_result_internal(lock);
|
|
2644
2835
|
}
|
|
2836
|
+
void set_value_deferred()
|
|
2837
|
+
{
|
|
2838
|
+
lazy_init();
|
|
2839
|
+
if (future_.get()==0)
|
|
2840
|
+
{
|
|
2841
|
+
boost::throw_exception(promise_moved());
|
|
2842
|
+
}
|
|
2843
|
+
future_->set_value_deferred();
|
|
2844
|
+
}
|
|
2645
2845
|
|
|
2646
2846
|
void set_exception(boost::exception_ptr p)
|
|
2647
2847
|
{
|
|
@@ -2658,7 +2858,20 @@ namespace boost
|
|
|
2658
2858
|
{
|
|
2659
2859
|
set_exception(boost::copy_exception(ex));
|
|
2660
2860
|
}
|
|
2661
|
-
|
|
2861
|
+
void set_exception_deferred(boost::exception_ptr p)
|
|
2862
|
+
{
|
|
2863
|
+
lazy_init();
|
|
2864
|
+
if (future_.get()==0)
|
|
2865
|
+
{
|
|
2866
|
+
boost::throw_exception(promise_moved());
|
|
2867
|
+
}
|
|
2868
|
+
future_->set_exception_deferred(p);
|
|
2869
|
+
}
|
|
2870
|
+
template <typename E>
|
|
2871
|
+
void set_exception_deferred(E ex)
|
|
2872
|
+
{
|
|
2873
|
+
set_exception_deferred(boost::copy_exception(ex));
|
|
2874
|
+
}
|
|
2662
2875
|
// setting the result with deferred notification
|
|
2663
2876
|
void set_value_at_thread_exit()
|
|
2664
2877
|
{
|
|
@@ -2689,7 +2902,14 @@ namespace boost
|
|
|
2689
2902
|
lazy_init();
|
|
2690
2903
|
future_->set_wait_callback(f,this);
|
|
2691
2904
|
}
|
|
2692
|
-
|
|
2905
|
+
void notify_deferred()
|
|
2906
|
+
{
|
|
2907
|
+
if (future_.get()==0)
|
|
2908
|
+
{
|
|
2909
|
+
boost::throw_exception(promise_moved());
|
|
2910
|
+
}
|
|
2911
|
+
future_->notify_deferred();
|
|
2912
|
+
}
|
|
2693
2913
|
};
|
|
2694
2914
|
}
|
|
2695
2915
|
#if defined BOOST_THREAD_PROVIDES_FUTURE_CTOR_ALLOCATORS
|
|
@@ -2960,7 +3180,7 @@ namespace boost
|
|
|
2960
3180
|
}
|
|
2961
3181
|
};
|
|
2962
3182
|
|
|
2963
|
-
#if defined(
|
|
3183
|
+
#if defined(BOOST_THREAD_RVALUE_REFERENCES_DONT_MATCH_FUNCTION_PTR)
|
|
2964
3184
|
|
|
2965
3185
|
#if defined BOOST_THREAD_PROVIDES_SIGNATURE_PACKAGED_TASK
|
|
2966
3186
|
#if defined(BOOST_THREAD_PROVIDES_VARIADIC_THREAD)
|
|
@@ -3302,7 +3522,7 @@ namespace boost
|
|
|
3302
3522
|
{}
|
|
3303
3523
|
|
|
3304
3524
|
// construction and destruction
|
|
3305
|
-
#if defined(
|
|
3525
|
+
#if defined(BOOST_THREAD_RVALUE_REFERENCES_DONT_MATCH_FUNCTION_PTR)
|
|
3306
3526
|
|
|
3307
3527
|
#if defined BOOST_THREAD_PROVIDES_SIGNATURE_PACKAGED_TASK
|
|
3308
3528
|
#if defined(BOOST_THREAD_PROVIDES_VARIADIC_THREAD)
|
|
@@ -3392,7 +3612,7 @@ namespace boost
|
|
|
3392
3612
|
#endif
|
|
3393
3613
|
|
|
3394
3614
|
#if defined BOOST_THREAD_PROVIDES_FUTURE_CTOR_ALLOCATORS
|
|
3395
|
-
#if defined(
|
|
3615
|
+
#if defined(BOOST_THREAD_RVALUE_REFERENCES_DONT_MATCH_FUNCTION_PTR)
|
|
3396
3616
|
template <class Allocator>
|
|
3397
3617
|
packaged_task(boost::allocator_arg_t, Allocator a, R(*f)())
|
|
3398
3618
|
{
|
|
@@ -3413,7 +3633,7 @@ namespace boost
|
|
|
3413
3633
|
task = task_ptr(::new(a2.allocate(1)) task_shared_state_type(f), D(a2, 1) );
|
|
3414
3634
|
future_obtained = false;
|
|
3415
3635
|
}
|
|
3416
|
-
#endif //
|
|
3636
|
+
#endif // BOOST_THREAD_RVALUE_REFERENCES_DONT_MATCH_FUNCTION_PTR
|
|
3417
3637
|
|
|
3418
3638
|
#if ! defined BOOST_NO_CXX11_RVALUE_REFERENCES
|
|
3419
3639
|
template <class F, class Allocator>
|
|
@@ -3630,7 +3850,7 @@ namespace detail
|
|
|
3630
3850
|
// future<R> async(launch policy, F&&, ArgTypes&&...);
|
|
3631
3851
|
////////////////////////////////
|
|
3632
3852
|
|
|
3633
|
-
#if defined
|
|
3853
|
+
#if defined BOOST_THREAD_RVALUE_REFERENCES_DONT_MATCH_FUNCTION_PTR
|
|
3634
3854
|
|
|
3635
3855
|
#if defined(BOOST_THREAD_PROVIDES_VARIADIC_THREAD)
|
|
3636
3856
|
template <class R, class... ArgTypes>
|
|
@@ -3689,7 +3909,7 @@ namespace detail
|
|
|
3689
3909
|
}
|
|
3690
3910
|
}
|
|
3691
3911
|
#endif
|
|
3692
|
-
#endif // defined(
|
|
3912
|
+
#endif // defined(BOOST_THREAD_RVALUE_REFERENCES_DONT_MATCH_FUNCTION_PTR)
|
|
3693
3913
|
|
|
3694
3914
|
#if defined(BOOST_THREAD_PROVIDES_VARIADIC_THREAD)
|
|
3695
3915
|
|
|
@@ -3918,7 +4138,7 @@ namespace detail {
|
|
|
3918
4138
|
//#if ! defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
|
|
3919
4139
|
#if defined(BOOST_THREAD_PROVIDES_INVOKE) && ! defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) && ! defined(BOOST_NO_CXX11_HDR_TUPLE)
|
|
3920
4140
|
|
|
3921
|
-
#if defined
|
|
4141
|
+
#if defined BOOST_THREAD_RVALUE_REFERENCES_DONT_MATCH_FUNCTION_PTR
|
|
3922
4142
|
|
|
3923
4143
|
template <class Executor, class R, class... ArgTypes>
|
|
3924
4144
|
BOOST_THREAD_FUTURE<R>
|
|
@@ -3934,7 +4154,7 @@ namespace detail {
|
|
|
3934
4154
|
)
|
|
3935
4155
|
));
|
|
3936
4156
|
}
|
|
3937
|
-
#endif // defined
|
|
4157
|
+
#endif // defined BOOST_THREAD_RVALUE_REFERENCES_DONT_MATCH_FUNCTION_PTR
|
|
3938
4158
|
|
|
3939
4159
|
template <class Executor, class F, class ...ArgTypes>
|
|
3940
4160
|
BOOST_THREAD_FUTURE<typename boost::result_of<typename decay<F>::type(
|
|
@@ -3953,7 +4173,7 @@ namespace detail {
|
|
|
3953
4173
|
}
|
|
3954
4174
|
|
|
3955
4175
|
#else // ! defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
|
|
3956
|
-
#if defined
|
|
4176
|
+
#if defined BOOST_THREAD_RVALUE_REFERENCES_DONT_MATCH_FUNCTION_PTR
|
|
3957
4177
|
|
|
3958
4178
|
template <class Executor, class R>
|
|
3959
4179
|
BOOST_THREAD_FUTURE<R>
|
|
@@ -3983,7 +4203,7 @@ namespace detail {
|
|
|
3983
4203
|
)
|
|
3984
4204
|
));
|
|
3985
4205
|
}
|
|
3986
|
-
#endif // defined
|
|
4206
|
+
#endif // defined BOOST_THREAD_RVALUE_REFERENCES_DONT_MATCH_FUNCTION_PTR
|
|
3987
4207
|
|
|
3988
4208
|
template <class Executor, class F>
|
|
3989
4209
|
BOOST_THREAD_FUTURE<typename boost::result_of<typename decay<F>::type()>::type>
|
|
@@ -4039,7 +4259,7 @@ namespace detail {
|
|
|
4039
4259
|
// future<R> async(F&&, ArgTypes&&...);
|
|
4040
4260
|
////////////////////////////////
|
|
4041
4261
|
|
|
4042
|
-
#if defined
|
|
4262
|
+
#if defined BOOST_THREAD_RVALUE_REFERENCES_DONT_MATCH_FUNCTION_PTR
|
|
4043
4263
|
#if defined(BOOST_THREAD_PROVIDES_VARIADIC_THREAD)
|
|
4044
4264
|
template <class R, class... ArgTypes>
|
|
4045
4265
|
BOOST_THREAD_FUTURE<R>
|
|
@@ -4747,7 +4967,7 @@ namespace detail {
|
|
|
4747
4967
|
inline BOOST_THREAD_FUTURE<typename boost::result_of<F(BOOST_THREAD_FUTURE<R>)>::type>
|
|
4748
4968
|
BOOST_THREAD_FUTURE<R>::then(launch policy, BOOST_THREAD_FWD_REF(F) func) {
|
|
4749
4969
|
typedef typename boost::result_of<F(BOOST_THREAD_FUTURE<R>)>::type future_type;
|
|
4750
|
-
BOOST_THREAD_ASSERT_PRECONDITION(this->future_!=0, future_uninitialized());
|
|
4970
|
+
BOOST_THREAD_ASSERT_PRECONDITION(this->future_.get()!=0, future_uninitialized());
|
|
4751
4971
|
|
|
4752
4972
|
// keep state alive as we move ourself but hold the lock
|
|
4753
4973
|
shared_ptr<detail::shared_state_base> sentinel(this->future_);
|
|
@@ -4761,6 +4981,10 @@ namespace detail {
|
|
|
4761
4981
|
return BOOST_THREAD_MAKE_RV_REF((boost::detail::make_future_deferred_continuation_shared_state<BOOST_THREAD_FUTURE<R>, future_type>(
|
|
4762
4982
|
lock, boost::move(*this), boost::forward<F>(func)
|
|
4763
4983
|
)));
|
|
4984
|
+
} else if (underlying_cast<int>(policy) & int(launch::sync)) {
|
|
4985
|
+
return BOOST_THREAD_MAKE_RV_REF((boost::detail::make_future_sync_continuation_shared_state<BOOST_THREAD_FUTURE<R>, future_type>(
|
|
4986
|
+
lock, boost::move(*this), boost::forward<F>(func)
|
|
4987
|
+
)));
|
|
4764
4988
|
#ifdef BOOST_THREAD_PROVIDES_EXECUTORS
|
|
4765
4989
|
} else if (underlying_cast<int>(policy) & int(launch::executor)) {
|
|
4766
4990
|
assert(this->future_->get_executor());
|
|
@@ -4781,6 +5005,10 @@ namespace detail {
|
|
|
4781
5005
|
return BOOST_THREAD_MAKE_RV_REF((boost::detail::make_future_deferred_continuation_shared_state<BOOST_THREAD_FUTURE<R>, future_type>(
|
|
4782
5006
|
lock, boost::move(*this), boost::forward<F>(func)
|
|
4783
5007
|
)));
|
|
5008
|
+
} else if (underlying_cast<int>(policy_) & int(launch::sync)) {
|
|
5009
|
+
return BOOST_THREAD_MAKE_RV_REF((boost::detail::make_future_sync_continuation_shared_state<BOOST_THREAD_FUTURE<R>, future_type>(
|
|
5010
|
+
lock, boost::move(*this), boost::forward<F>(func)
|
|
5011
|
+
)));
|
|
4784
5012
|
#ifdef BOOST_THREAD_PROVIDES_EXECUTORS
|
|
4785
5013
|
} else if (underlying_cast<int>(policy_) & int(launch::executor)) {
|
|
4786
5014
|
assert(this->future_->get_executor());
|
|
@@ -4811,7 +5039,7 @@ namespace detail {
|
|
|
4811
5039
|
inline BOOST_THREAD_FUTURE<typename boost::result_of<F(BOOST_THREAD_FUTURE<R>)>::type>
|
|
4812
5040
|
BOOST_THREAD_FUTURE<R>::then(Ex& ex, BOOST_THREAD_FWD_REF(F) func) {
|
|
4813
5041
|
typedef typename boost::result_of<F(BOOST_THREAD_FUTURE<R>)>::type future_type;
|
|
4814
|
-
BOOST_THREAD_ASSERT_PRECONDITION(this->future_!=0, future_uninitialized());
|
|
5042
|
+
BOOST_THREAD_ASSERT_PRECONDITION(this->future_.get()!=0, future_uninitialized());
|
|
4815
5043
|
|
|
4816
5044
|
// keep state alive as we move ourself but hold the lock
|
|
4817
5045
|
shared_ptr<detail::shared_state_base> sentinel(this->future_);
|
|
@@ -4835,7 +5063,7 @@ namespace detail {
|
|
|
4835
5063
|
return this->then(this->launch_policy(), boost::forward<F>(func));
|
|
4836
5064
|
#else
|
|
4837
5065
|
typedef typename boost::result_of<F(BOOST_THREAD_FUTURE<R>)>::type future_type;
|
|
4838
|
-
BOOST_THREAD_ASSERT_PRECONDITION(this->future_!=0, future_uninitialized());
|
|
5066
|
+
BOOST_THREAD_ASSERT_PRECONDITION(this->future_.get()!=0, future_uninitialized());
|
|
4839
5067
|
|
|
4840
5068
|
// keep state alive as we move ourself but hold the lock
|
|
4841
5069
|
shared_ptr<detail::shared_state_base> sentinel(this->future_);
|
|
@@ -4865,7 +5093,7 @@ namespace detail {
|
|
|
4865
5093
|
BOOST_THREAD_FUTURE<BOOST_THREAD_FUTURE<R2> >::then(launch policy, BOOST_THREAD_FWD_REF(F) func) {
|
|
4866
5094
|
typedef BOOST_THREAD_FUTURE<R2> R;
|
|
4867
5095
|
typedef typename boost::result_of<F(BOOST_THREAD_FUTURE<R>)>::type future_type;
|
|
4868
|
-
BOOST_THREAD_ASSERT_PRECONDITION(this->future_!=0, future_uninitialized());
|
|
5096
|
+
BOOST_THREAD_ASSERT_PRECONDITION(this->future_.get()!=0, future_uninitialized());
|
|
4869
5097
|
|
|
4870
5098
|
// keep state alive as we move ourself but hold the lock
|
|
4871
5099
|
shared_ptr<detail::shared_state_base> sentinel(this->future_);
|
|
@@ -4939,7 +5167,7 @@ namespace detail {
|
|
|
4939
5167
|
BOOST_THREAD_FUTURE<BOOST_THREAD_FUTURE<R2> >::then(Ex& ex, BOOST_THREAD_FWD_REF(F) func) {
|
|
4940
5168
|
typedef BOOST_THREAD_FUTURE<R2> R;
|
|
4941
5169
|
typedef typename boost::result_of<F(BOOST_THREAD_FUTURE<R>)>::type future_type;
|
|
4942
|
-
BOOST_THREAD_ASSERT_PRECONDITION(this->future_!=0, future_uninitialized());
|
|
5170
|
+
BOOST_THREAD_ASSERT_PRECONDITION(this->future_.get()!=0, future_uninitialized());
|
|
4943
5171
|
|
|
4944
5172
|
// keep state alive as we move ourself but hold the lock
|
|
4945
5173
|
shared_ptr<detail::shared_state_base> sentinel(this->future_);
|
|
@@ -4965,7 +5193,7 @@ namespace detail {
|
|
|
4965
5193
|
#else
|
|
4966
5194
|
typedef BOOST_THREAD_FUTURE<R2> R;
|
|
4967
5195
|
typedef typename boost::result_of<F(BOOST_THREAD_FUTURE<R>)>::type future_type;
|
|
4968
|
-
BOOST_THREAD_ASSERT_PRECONDITION(this->future_!=0, future_uninitialized());
|
|
5196
|
+
BOOST_THREAD_ASSERT_PRECONDITION(this->future_.get()!=0, future_uninitialized());
|
|
4969
5197
|
|
|
4970
5198
|
// keep state alive as we move ourself but hold the lock
|
|
4971
5199
|
shared_ptr<detail::shared_state_base> sentinel(this->future_);
|
|
@@ -4995,7 +5223,7 @@ namespace detail {
|
|
|
4995
5223
|
shared_future<R>::then(launch policy, BOOST_THREAD_FWD_REF(F) func) const
|
|
4996
5224
|
{
|
|
4997
5225
|
typedef typename boost::result_of<F(shared_future<R>)>::type future_type;
|
|
4998
|
-
BOOST_THREAD_ASSERT_PRECONDITION(this->future_!=0, future_uninitialized());
|
|
5226
|
+
BOOST_THREAD_ASSERT_PRECONDITION(this->future_.get()!=0, future_uninitialized());
|
|
4999
5227
|
|
|
5000
5228
|
boost::unique_lock<boost::mutex> lock(this->future_->mutex);
|
|
5001
5229
|
if (underlying_cast<int>(policy) & int(launch::async)) {
|
|
@@ -5064,7 +5292,7 @@ namespace detail {
|
|
|
5064
5292
|
shared_future<R>::then(Ex& ex, BOOST_THREAD_FWD_REF(F) func) const
|
|
5065
5293
|
{
|
|
5066
5294
|
typedef typename boost::result_of<F(shared_future<R>)>::type future_type;
|
|
5067
|
-
BOOST_THREAD_ASSERT_PRECONDITION(this->future_!=0, future_uninitialized());
|
|
5295
|
+
BOOST_THREAD_ASSERT_PRECONDITION(this->future_.get()!=0, future_uninitialized());
|
|
5068
5296
|
|
|
5069
5297
|
boost::unique_lock<boost::mutex> lock(this->future_->mutex);
|
|
5070
5298
|
return BOOST_THREAD_MAKE_RV_REF((boost::detail::make_shared_future_executor_continuation_shared_state<Ex, shared_future<R>, future_type>(ex,
|
|
@@ -5085,7 +5313,7 @@ namespace detail {
|
|
|
5085
5313
|
return this->then(this->launch_policy(), boost::forward<F>(func));
|
|
5086
5314
|
#else
|
|
5087
5315
|
typedef typename boost::result_of<F(shared_future<R>)>::type future_type;
|
|
5088
|
-
BOOST_THREAD_ASSERT_PRECONDITION(this->future_!=0, future_uninitialized());
|
|
5316
|
+
BOOST_THREAD_ASSERT_PRECONDITION(this->future_.get()!=0, future_uninitialized());
|
|
5089
5317
|
|
|
5090
5318
|
boost::unique_lock<boost::mutex> lock(this->future_->mutex);
|
|
5091
5319
|
launch policy = this->launch_policy(lock);
|
|
@@ -5257,7 +5485,7 @@ namespace detail
|
|
|
5257
5485
|
BOOST_THREAD_FUTURE<R2>
|
|
5258
5486
|
BOOST_THREAD_FUTURE<BOOST_THREAD_FUTURE<R2> >::unwrap()
|
|
5259
5487
|
{
|
|
5260
|
-
BOOST_THREAD_ASSERT_PRECONDITION(this->future_!=0, future_uninitialized());
|
|
5488
|
+
BOOST_THREAD_ASSERT_PRECONDITION(this->future_.get()!=0, future_uninitialized());
|
|
5261
5489
|
|
|
5262
5490
|
// keep state alive as we move ourself but hold the lock
|
|
5263
5491
|
shared_ptr<detail::shared_state_base> sentinel(this->future_);
|