passenger 6.0.25 → 6.0.27
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 +33 -1
- data/CONTRIBUTING.md +2 -2
- data/build/agent.rb +0 -2
- data/build/basics.rb +2 -0
- data/build/common_library.rb +0 -6
- data/build/misc.rb +0 -2
- data/build/schema_printer.rb +0 -2
- data/build/support/cxx_dependency_map.rb +57 -254
- data/dev/copy_boost_headers +3 -14
- data/dev/index_cxx_dependencies.rb +1 -1
- data/doc/AiInstructions.md +112 -0
- data/doc/CxxMockingStrategy.md +42 -0
- data/doc/CxxTestingGuide.md +110 -0
- data/doc/DesignAspects/LimitedGemDependencies.md +22 -14
- data/doc/TempFileHandling.md +15 -0
- data/passenger.gemspec +1 -1
- data/resources/templates/standalone/server.erb +1 -0
- data/src/agent/Core/ApiServer.h +0 -1
- data/src/agent/Core/ApplicationPool/AbstractSession.h +10 -1
- data/src/agent/Core/ApplicationPool/Group/ProcessListManagement.cpp +1 -1
- data/src/agent/Core/ApplicationPool/Group/SessionManagement.cpp +33 -18
- data/src/agent/Core/ApplicationPool/Group.h +0 -1
- data/src/agent/Core/ApplicationPool/Implementation.cpp +0 -3
- data/src/agent/Core/ApplicationPool/Session.h +14 -19
- data/src/agent/Core/ApplicationPool/Socket.h +15 -5
- data/src/agent/Core/ApplicationPool/TestSession.h +74 -15
- data/src/agent/Core/Config.h +2 -34
- data/src/agent/Core/ConfigChange.cpp +1 -41
- data/src/agent/Core/Controller/CheckoutSession.cpp +100 -14
- data/src/agent/Core/Controller/Client.h +0 -1
- data/src/agent/Core/Controller/Config.h +1 -1
- data/src/agent/Core/Controller/Hooks.cpp +13 -0
- data/src/agent/Core/Controller/InitRequest.cpp +2 -0
- data/src/agent/Core/Controller/InternalUtils.cpp +12 -0
- data/src/agent/Core/Controller/Request.h +3 -2
- data/src/agent/Core/Controller.h +12 -13
- data/src/agent/Core/CoreMain.cpp +1 -56
- data/src/agent/Core/OptionParser.h +1 -7
- data/src/agent/Core/SecurityUpdateChecker.h +0 -1
- data/src/agent/Watchdog/Config.h +2 -21
- data/src/agent/Watchdog/WatchdogMain.cpp +0 -2
- data/src/apache2_module/ConfigGeneral/AutoGeneratedDefinitions.cpp +0 -20
- data/src/apache2_module/ConfigGeneral/AutoGeneratedSetterFuncs.cpp +0 -60
- data/src/apache2_module/Hooks.cpp +0 -4
- data/src/apache2_module/ServerConfig/AutoGeneratedManifestGeneration.cpp +0 -44
- data/src/apache2_module/ServerConfig/AutoGeneratedStruct.h +0 -52
- data/src/cxx_supportlib/Algorithms/Hasher.cpp +1 -1
- data/src/cxx_supportlib/Algorithms/Hasher.h +4 -7
- data/src/cxx_supportlib/Algorithms/MovingAverage.h +1 -160
- data/src/cxx_supportlib/Constants.h +2 -1
- data/src/cxx_supportlib/DataStructures/StringMap.h +2 -3
- data/src/cxx_supportlib/FileTools/FileManip.h +2 -0
- data/src/cxx_supportlib/Hooks.h +0 -1
- data/src/cxx_supportlib/IOTools/IOUtils.cpp +49 -60
- data/src/cxx_supportlib/IOTools/IOUtils.h +65 -73
- data/src/cxx_supportlib/ServerKit/AcceptLoadBalancer.h +2 -0
- data/src/cxx_supportlib/ServerKit/HttpHeaderParser.h +24 -24
- data/src/cxx_supportlib/StrIntTools/StrIntUtils.h +2 -2
- data/src/cxx_supportlib/SystemTools/SystemMetricsCollector.h +0 -2
- data/src/cxx_supportlib/Utils/FastStringStream.h +7 -7
- data/src/cxx_supportlib/Utils/IniFile.h +24 -25
- data/src/cxx_supportlib/Utils.h +0 -30
- data/src/cxx_supportlib/oxt/detail/tracable_exception_disabled.hpp +4 -0
- data/src/cxx_supportlib/oxt/detail/tracable_exception_enabled.hpp +1 -0
- data/src/cxx_supportlib/oxt/implementation.cpp +41 -2
- data/src/cxx_supportlib/oxt/system_calls.cpp +1 -0
- data/src/cxx_supportlib/oxt/system_calls.hpp +3 -4
- data/src/cxx_supportlib/vendor-modified/boost/container/allocator.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/deque.hpp +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/config_begin.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/container_or_allocator_rebind.hpp +1 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/container_rebind.hpp +23 -13
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/flat_tree.hpp +72 -49
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/function_detector.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/is_contiguous_container.hpp +15 -11
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/tree.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/devector.hpp +36 -9
- data/src/cxx_supportlib/vendor-modified/boost/container/flat_map.hpp +9 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/list.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/options.hpp +21 -17
- data/src/cxx_supportlib/vendor-modified/boost/container/slist.hpp +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/small_vector.hpp +10 -6
- data/src/cxx_supportlib/vendor-modified/boost/container/stable_vector.hpp +8 -3
- data/src/cxx_supportlib/vendor-modified/boost/container/static_vector.hpp +21 -3
- data/src/cxx_supportlib/vendor-modified/boost/container/string.hpp +5 -15
- data/src/cxx_supportlib/vendor-modified/boost/container/vector.hpp +73 -14
- data/src/cxx_supportlib/vendor-modified/boost/detail/basic_pointerbuf.hpp +1 -2
- data/src/cxx_supportlib/vendor-modified/boost/detail/lcast_precision.hpp +18 -29
- data/src/cxx_supportlib/vendor-modified/boost/function/function_template.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/integer/common_factor_rt.hpp +6 -10
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/avl_set.hpp +8 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/avltree.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/bs_set.hpp +8 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/bstree.hpp +12 -4
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/function_detector.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/parent_from_member.hpp +5 -4
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/workaround.hpp +10 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/list.hpp +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/rbtree.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/set.hpp +8 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/sg_set.hpp +8 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/sgtree.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/slist.hpp +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/splay_set.hpp +8 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/splaytree.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap_set.hpp +8 -0
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical_streams.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/inf_nan.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_unsigned_converters.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/move/adl_move_swap.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/core.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/meta_utils.hpp +1 -20
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/meta_utils_core.hpp +15 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/nsec_clock.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/placement_new.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/std_ns_begin.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/std_ns_end.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_count.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/mp11/version.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/none.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/none_t.hpp +10 -4
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/experimental_traits.hpp +4 -49
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_aligned_storage.hpp +2 -3
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_config.hpp +13 -4
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_reference_spec.hpp +47 -46
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_relops.hpp +11 -11
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_swap.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_trivially_copyable_base.hpp +12 -252
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_utility.hpp +41 -0
- data/src/cxx_supportlib/vendor-modified/boost/optional/optional.hpp +101 -592
- data/src/cxx_supportlib/vendor-modified/boost/optional/optional_io.hpp +1 -5
- data/src/cxx_supportlib/vendor-modified/boost/pointer_cast.hpp +12 -24
- data/src/cxx_supportlib/vendor-modified/boost/random/beta_distribution.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/random/hyperexponential_distribution.hpp +15 -15
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/allocate_shared_array.hpp +37 -44
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/bad_weak_ptr.hpp +1 -23
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/deprecated_macros.hpp +52 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/local_counted_base.hpp +14 -18
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/local_sp_deleter.hpp +7 -15
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/shared_count.hpp +39 -90
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_convertible.hpp +0 -16
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_nt.hpp +13 -14
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_std_atomic.hpp +16 -17
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_impl.hpp +16 -55
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_noexcept.hpp +5 -14
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_type_traits.hpp +55 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock_std_atomic.hpp +5 -6
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/enable_shared_from_this.hpp +7 -10
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/intrusive_ptr.hpp +32 -110
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/intrusive_ref_counter.hpp +17 -18
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/make_shared.hpp +2 -6
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/make_shared_array.hpp +10 -9
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/make_shared_object.hpp +28 -565
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/make_unique.hpp +11 -17
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/scoped_array.hpp +17 -21
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/scoped_ptr.hpp +20 -22
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/shared_array.hpp +34 -68
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/shared_ptr.hpp +78 -356
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/weak_ptr.hpp +31 -89
- data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_flat_map.hpp +195 -12
- data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_flat_set.hpp +206 -17
- data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_node_map.hpp +1202 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_node_map_fwd.hpp +67 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_node_set.hpp +1065 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_node_set_fwd.hpp +67 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/concurrent_static_asserts.hpp +30 -8
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/concurrent_table.hpp +248 -47
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/core.hpp +24 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/flat_map_types.hpp +10 -2
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/flat_set_types.hpp +8 -2
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/node_handle.hpp +120 -5
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/node_map_handle.hpp +56 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/node_map_types.hpp +15 -4
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/node_set_handle.hpp +48 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/node_set_types.hpp +13 -4
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/tuple_rotate_right.hpp +11 -10
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/types_constructibility.hpp +172 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/implementation.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/map.hpp +0 -17
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/set.hpp +0 -17
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/type_traits.hpp +11 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_map.hpp +9 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_set.hpp +9 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_map.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_map.hpp +32 -44
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_set.hpp +31 -35
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_printers.hpp +414 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_set.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/version.hpp +2 -2
- data/src/nginx_module/ConfigGeneral/AutoGeneratedDefinitions.c +8 -32
- data/src/nginx_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.c +6 -0
- data/src/nginx_module/ConfigGeneral/AutoGeneratedSetterFuncs.c +12 -48
- data/src/nginx_module/LocationConfig/AutoGeneratedCreateFunction.c +5 -0
- data/src/nginx_module/LocationConfig/AutoGeneratedHeaderSerialization.c +21 -0
- data/src/nginx_module/LocationConfig/AutoGeneratedManifestGeneration.c +13 -0
- data/src/nginx_module/LocationConfig/AutoGeneratedMergeFunction.c +3 -0
- data/src/nginx_module/LocationConfig/AutoGeneratedStruct.h +4 -0
- data/src/nginx_module/MainConfig/AutoGeneratedCreateFunction.c +0 -24
- data/src/nginx_module/MainConfig/AutoGeneratedManifestGeneration.c +0 -48
- data/src/nginx_module/MainConfig/AutoGeneratedStruct.h +0 -16
- data/src/nginx_module/ngx_http_passenger_module.c +0 -4
- data/src/ruby_native_extension/passenger_native_support.c +19 -3
- data/src/ruby_supportlib/phusion_passenger/apache2/config_options.rb +8 -24
- data/src/ruby_supportlib/phusion_passenger/common_library.rb +0 -3
- data/src/ruby_supportlib/phusion_passenger/constants.rb +1 -0
- data/src/ruby_supportlib/phusion_passenger/nginx/config_options.rb +6 -28
- data/src/ruby_supportlib/phusion_passenger/platform_info/compiler.rb +9 -8
- data/src/ruby_supportlib/phusion_passenger/platform_info/cxx_portability.rb +2 -27
- data/src/ruby_supportlib/phusion_passenger/platform_info/operating_system.rb +0 -30
- data/src/ruby_supportlib/phusion_passenger/standalone/config_options_list.rb +8 -20
- data/src/ruby_supportlib/phusion_passenger.rb +7 -7
- data/src/schema_printer/SchemaPrinterMain.cpp +0 -4
- metadata +19 -670
- data/dev/websocketpp.patch +0 -39
- data/src/agent/Core/AdminPanelConnector.h +0 -680
- data/src/cxx_supportlib/DataStructures/HashMap.h +0 -60
- data/src/cxx_supportlib/FileTools/LargeFiles.cpp +0 -41
- data/src/cxx_supportlib/FileTools/LargeFiles.h +0 -43
- data/src/cxx_supportlib/WebSocketCommandReverseServer.h +0 -975
- data/src/cxx_supportlib/vendor-modified/boost/asio/any_completion_executor.hpp +0 -338
- data/src/cxx_supportlib/vendor-modified/boost/asio/any_completion_handler.hpp +0 -824
- data/src/cxx_supportlib/vendor-modified/boost/asio/any_io_executor.hpp +0 -353
- data/src/cxx_supportlib/vendor-modified/boost/asio/append.hpp +0 -67
- data/src/cxx_supportlib/vendor-modified/boost/asio/as_tuple.hpp +0 -154
- data/src/cxx_supportlib/vendor-modified/boost/asio/associated_allocator.hpp +0 -216
- data/src/cxx_supportlib/vendor-modified/boost/asio/associated_cancellation_slot.hpp +0 -223
- data/src/cxx_supportlib/vendor-modified/boost/asio/associated_executor.hpp +0 -237
- data/src/cxx_supportlib/vendor-modified/boost/asio/associated_immediate_executor.hpp +0 -283
- data/src/cxx_supportlib/vendor-modified/boost/asio/associator.hpp +0 -37
- data/src/cxx_supportlib/vendor-modified/boost/asio/async_result.hpp +0 -950
- data/src/cxx_supportlib/vendor-modified/boost/asio/awaitable.hpp +0 -144
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_datagram_socket.hpp +0 -1364
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_deadline_timer.hpp +0 -712
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_file.hpp +0 -826
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_io_object.hpp +0 -288
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_random_access_file.hpp +0 -691
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_raw_socket.hpp +0 -1358
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_readable_pipe.hpp +0 -628
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_seq_packet_socket.hpp +0 -825
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_serial_port.hpp +0 -989
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_signal_set.hpp +0 -650
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket.hpp +0 -1938
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket_acceptor.hpp +0 -2710
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket_iostream.hpp +0 -333
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket_streambuf.hpp +0 -644
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_stream_file.hpp +0 -746
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_stream_socket.hpp +0 -1165
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_streambuf.hpp +0 -452
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_streambuf_fwd.hpp +0 -38
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_waitable_timer.hpp +0 -826
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_writable_pipe.hpp +0 -624
- data/src/cxx_supportlib/vendor-modified/boost/asio/bind_allocator.hpp +0 -598
- data/src/cxx_supportlib/vendor-modified/boost/asio/bind_cancellation_slot.hpp +0 -615
- data/src/cxx_supportlib/vendor-modified/boost/asio/bind_executor.hpp +0 -666
- data/src/cxx_supportlib/vendor-modified/boost/asio/bind_immediate_executor.hpp +0 -618
- data/src/cxx_supportlib/vendor-modified/boost/asio/buffer.hpp +0 -2755
- data/src/cxx_supportlib/vendor-modified/boost/asio/buffer_registration.hpp +0 -320
- data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_read_stream.hpp +0 -275
- data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_read_stream_fwd.hpp +0 -27
- data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_stream.hpp +0 -294
- data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_stream_fwd.hpp +0 -27
- data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_write_stream.hpp +0 -267
- data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_write_stream_fwd.hpp +0 -27
- data/src/cxx_supportlib/vendor-modified/boost/asio/buffers_iterator.hpp +0 -523
- data/src/cxx_supportlib/vendor-modified/boost/asio/cancel_after.hpp +0 -303
- data/src/cxx_supportlib/vendor-modified/boost/asio/cancel_at.hpp +0 -296
- data/src/cxx_supportlib/vendor-modified/boost/asio/cancellation_signal.hpp +0 -247
- data/src/cxx_supportlib/vendor-modified/boost/asio/cancellation_state.hpp +0 -237
- data/src/cxx_supportlib/vendor-modified/boost/asio/cancellation_type.hpp +0 -159
- data/src/cxx_supportlib/vendor-modified/boost/asio/co_composed.hpp +0 -1323
- data/src/cxx_supportlib/vendor-modified/boost/asio/co_spawn.hpp +0 -525
- data/src/cxx_supportlib/vendor-modified/boost/asio/completion_condition.hpp +0 -269
- data/src/cxx_supportlib/vendor-modified/boost/asio/compose.hpp +0 -130
- data/src/cxx_supportlib/vendor-modified/boost/asio/composed.hpp +0 -415
- data/src/cxx_supportlib/vendor-modified/boost/asio/connect.hpp +0 -1348
- data/src/cxx_supportlib/vendor-modified/boost/asio/connect_pipe.hpp +0 -85
- data/src/cxx_supportlib/vendor-modified/boost/asio/consign.hpp +0 -77
- data/src/cxx_supportlib/vendor-modified/boost/asio/coroutine.hpp +0 -330
- data/src/cxx_supportlib/vendor-modified/boost/asio/deadline_timer.hpp +0 -40
- data/src/cxx_supportlib/vendor-modified/boost/asio/default_completion_token.hpp +0 -91
- data/src/cxx_supportlib/vendor-modified/boost/asio/defer.hpp +0 -220
- data/src/cxx_supportlib/vendor-modified/boost/asio/deferred.hpp +0 -721
- data/src/cxx_supportlib/vendor-modified/boost/asio/detached.hpp +0 -107
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/array.hpp +0 -32
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/array_fwd.hpp +0 -32
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/assert.hpp +0 -32
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/atomic_count.hpp +0 -61
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/base_from_cancellation_state.hpp +0 -166
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/base_from_completion_cond.hpp +0 -71
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/bind_handler.hpp +0 -713
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/blocking_executor_op.hpp +0 -109
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/buffer_resize_guard.hpp +0 -68
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/buffer_sequence_adapter.hpp +0 -839
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/buffered_stream_storage.hpp +0 -128
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/call_stack.hpp +0 -127
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/chrono.hpp +0 -47
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/chrono_time_traits.hpp +0 -192
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/completion_handler.hpp +0 -90
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/completion_message.hpp +0 -129
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/completion_payload.hpp +0 -222
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/completion_payload_handler.hpp +0 -81
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/composed_work.hpp +0 -254
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/concurrency_hint.hpp +0 -94
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/conditionally_enabled_event.hpp +0 -122
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/conditionally_enabled_mutex.hpp +0 -151
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/config.hpp +0 -1413
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/consuming_buffers.hpp +0 -445
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/cstddef.hpp +0 -29
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/cstdint.hpp +0 -42
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/date_time_fwd.hpp +0 -34
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/deadline_timer_service.hpp +0 -341
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/dependent_type.hpp +0 -38
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/descriptor_ops.hpp +0 -181
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/descriptor_read_op.hpp +0 -190
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/descriptor_write_op.hpp +0 -189
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/dev_poll_reactor.hpp +0 -249
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/epoll_reactor.hpp +0 -297
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/event.hpp +0 -48
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/eventfd_select_interrupter.hpp +0 -85
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/exception.hpp +0 -31
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/executor_function.hpp +0 -154
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/executor_op.hpp +0 -86
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/fd_set_adapter.hpp +0 -41
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/fenced_block.hpp +0 -42
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/functional.hpp +0 -35
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/future.hpp +0 -32
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/global.hpp +0 -52
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_alloc_helpers.hpp +0 -123
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_cont_helpers.hpp +0 -45
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_tracking.hpp +0 -268
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_type_requirements.hpp +0 -555
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_work.hpp +0 -513
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/hash_map.hpp +0 -333
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/buffer_sequence_adapter.ipp +0 -120
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/descriptor_ops.ipp +0 -996
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/dev_poll_reactor.hpp +0 -113
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/dev_poll_reactor.ipp +0 -471
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/epoll_reactor.hpp +0 -111
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/epoll_reactor.ipp +0 -828
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/eventfd_select_interrupter.ipp +0 -173
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/handler_tracking.ipp +0 -400
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/io_uring_descriptor_service.ipp +0 -207
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/io_uring_file_service.ipp +0 -142
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/io_uring_service.hpp +0 -114
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/io_uring_service.ipp +0 -916
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/io_uring_socket_service_base.ipp +0 -251
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/kqueue_reactor.hpp +0 -115
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/kqueue_reactor.ipp +0 -610
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/null_event.ipp +0 -76
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/pipe_select_interrupter.ipp +0 -131
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_event.ipp +0 -65
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_mutex.ipp +0 -48
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_serial_port_service.ipp +0 -170
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_thread.ipp +0 -86
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_tss_ptr.ipp +0 -48
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/reactive_descriptor_service.ipp +0 -234
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/reactive_socket_service_base.ipp +0 -314
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/resolver_service_base.ipp +0 -160
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/scheduler.ipp +0 -677
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/select_reactor.hpp +0 -126
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/select_reactor.ipp +0 -402
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/service_registry.hpp +0 -95
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/service_registry.ipp +0 -199
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/signal_set_service.ipp +0 -828
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/socket_ops.ipp +0 -4046
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/socket_select_interrupter.ipp +0 -187
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_executor_service.hpp +0 -348
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_executor_service.ipp +0 -160
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_service.hpp +0 -88
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_service.ipp +0 -204
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/thread_context.ipp +0 -37
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/throw_error.ipp +0 -51
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/timer_queue_ptime.ipp +0 -99
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/timer_queue_set.ipp +0 -103
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/initiate_defer.hpp +0 -209
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/initiate_dispatch.hpp +0 -195
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/initiate_post.hpp +0 -209
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/initiation_base.hpp +0 -64
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_control.hpp +0 -86
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_object_impl.hpp +0 -179
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_descriptor_read_at_op.hpp +0 -197
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_descriptor_read_op.hpp +0 -192
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_descriptor_service.hpp +0 -689
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_descriptor_write_at_op.hpp +0 -191
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_descriptor_write_op.hpp +0 -187
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_file_service.hpp +0 -263
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_null_buffers_op.hpp +0 -116
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_operation.hpp +0 -86
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_service.hpp +0 -321
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_socket_accept_op.hpp +0 -282
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_socket_connect_op.hpp +0 -142
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_socket_recv_op.hpp +0 -207
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_socket_recvfrom_op.hpp +0 -208
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_socket_recvmsg_op.hpp +0 -194
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_socket_send_op.hpp +0 -193
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_socket_sendto_op.hpp +0 -196
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_socket_service.hpp +0 -631
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_socket_service_base.hpp +0 -665
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_wait_op.hpp +0 -114
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/is_buffer_sequence.hpp +0 -298
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/is_executor.hpp +0 -128
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/keyword_tss_ptr.hpp +0 -72
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/kqueue_reactor.hpp +0 -273
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/limits.hpp +0 -21
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/local_free_on_block_exit.hpp +0 -61
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/memory.hpp +0 -128
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/mutex.hpp +0 -48
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/non_const_lvalue.hpp +0 -45
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/noncopyable.hpp +0 -45
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_event.hpp +0 -108
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_fenced_block.hpp +0 -49
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_global.hpp +0 -61
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_mutex.hpp +0 -62
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_reactor.hpp +0 -85
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_signal_blocker.hpp +0 -71
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_socket_service.hpp +0 -521
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_static_mutex.hpp +0 -62
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_thread.hpp +0 -69
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_tss_ptr.hpp +0 -70
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/object_pool.hpp +0 -173
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/op_queue.hpp +0 -164
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/operation.hpp +0 -40
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/pipe_select_interrupter.hpp +0 -91
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/pop_options.hpp +0 -157
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_event.hpp +0 -177
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_fd_set_adapter.hpp +0 -120
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_global.hpp +0 -82
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_mutex.hpp +0 -78
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_serial_port_service.hpp +0 -251
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_signal_blocker.hpp +0 -87
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_static_mutex.hpp +0 -66
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_thread.hpp +0 -111
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_tss_ptr.hpp +0 -81
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/push_options.hpp +0 -228
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_descriptor_service.hpp +0 -572
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_null_buffers_op.hpp +0 -133
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_accept_op.hpp +0 -325
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_connect_op.hpp +0 -164
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_recv_op.hpp +0 -199
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_recvfrom_op.hpp +0 -205
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_recvmsg_op.hpp +0 -186
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_send_op.hpp +0 -202
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_sendto_op.hpp +0 -196
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_service.hpp +0 -635
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_service_base.hpp +0 -757
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_wait_op.hpp +0 -133
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor.hpp +0 -56
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor_op.hpp +0 -73
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor_op_queue.hpp +0 -214
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/recycling_allocator.hpp +0 -116
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/regex_fwd.hpp +0 -35
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolve_endpoint_op.hpp +0 -142
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolve_op.hpp +0 -47
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolve_query_op.hpp +0 -152
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolver_service.hpp +0 -149
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolver_service_base.hpp +0 -160
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scheduler.hpp +0 -243
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scheduler_operation.hpp +0 -80
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scheduler_task.hpp +0 -51
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scheduler_thread_info.hpp +0 -42
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scoped_lock.hpp +0 -103
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scoped_ptr.hpp +0 -89
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/select_interrupter.hpp +0 -48
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/select_reactor.hpp +0 -293
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/service_registry.hpp +0 -165
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_blocker.hpp +0 -46
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_handler.hpp +0 -92
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_init.hpp +0 -49
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_op.hpp +0 -55
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_set_service.hpp +0 -294
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_holder.hpp +0 -100
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_ops.hpp +0 -377
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_option.hpp +0 -318
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_select_interrupter.hpp +0 -93
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_types.hpp +0 -429
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/source_location.hpp +0 -47
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/static_mutex.hpp +0 -52
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_event.hpp +0 -185
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_fenced_block.hpp +0 -59
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_global.hpp +0 -67
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_mutex.hpp +0 -70
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_static_mutex.hpp +0 -78
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_thread.hpp +0 -68
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/strand_executor_service.hpp +0 -175
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/strand_service.hpp +0 -146
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/string_view.hpp +0 -49
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread.hpp +0 -60
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread_context.hpp +0 -53
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread_group.hpp +0 -101
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread_info_base.hpp +0 -262
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/throw_error.hpp +0 -64
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/throw_exception.hpp +0 -57
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timed_cancel_op.hpp +0 -363
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue.hpp +0 -391
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue_base.hpp +0 -70
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue_ptime.hpp +0 -105
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue_set.hpp +0 -68
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_scheduler.hpp +0 -37
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_scheduler_fwd.hpp +0 -44
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/tss_ptr.hpp +0 -71
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/type_traits.hpp +0 -180
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/utility.hpp +0 -85
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/wait_handler.hpp +0 -92
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/wait_op.hpp +0 -51
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/winsock_init.hpp +0 -130
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/work_dispatcher.hpp +0 -145
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/wrapped_handler.hpp +0 -197
- data/src/cxx_supportlib/vendor-modified/boost/asio/dispatch.hpp +0 -199
- data/src/cxx_supportlib/vendor-modified/boost/asio/error.hpp +0 -390
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/allocator.hpp +0 -280
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/any_executor.hpp +0 -1935
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/bad_executor.hpp +0 -48
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/blocking.hpp +0 -1362
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/blocking_adaptation.hpp +0 -1082
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/context.hpp +0 -193
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/context_as.hpp +0 -192
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/executor.hpp +0 -118
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/impl/bad_executor.ipp +0 -42
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/invocable_archetype.hpp +0 -45
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/mapping.hpp +0 -1004
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/occupancy.hpp +0 -186
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/outstanding_work.hpp +0 -755
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/prefer_only.hpp +0 -330
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/relationship.hpp +0 -753
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution.hpp +0 -33
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution_context.hpp +0 -390
- data/src/cxx_supportlib/vendor-modified/boost/asio/executor.hpp +0 -365
- data/src/cxx_supportlib/vendor-modified/boost/asio/executor_work_guard.hpp +0 -364
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/append.hpp +0 -38
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/as_single.hpp +0 -134
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/as_tuple.hpp +0 -38
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/awaitable_operators.hpp +0 -538
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/basic_channel.hpp +0 -516
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/basic_concurrent_channel.hpp +0 -516
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/cancellation_condition.hpp +0 -154
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/channel.hpp +0 -72
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/channel_error.hpp +0 -88
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/channel_traits.hpp +0 -303
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/co_composed.hpp +0 -35
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/co_spawn.hpp +0 -189
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/concurrent_channel.hpp +0 -72
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/coro.hpp +0 -295
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/coro_traits.hpp +0 -230
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/deferred.hpp +0 -38
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_operation.hpp +0 -363
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_receive_op.hpp +0 -128
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_send_functions.hpp +0 -202
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_send_op.hpp +0 -149
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_service.hpp +0 -681
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/coro_completion_handler.hpp +0 -171
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/coro_promise_allocator.hpp +0 -142
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/has_signature.hpp +0 -56
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/impl/channel_service.hpp +0 -625
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/partial_promise.hpp +0 -199
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/as_single.hpp +0 -183
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/channel_error.ipp +0 -63
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/coro.hpp +0 -1224
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/parallel_group.hpp +0 -790
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/promise.hpp +0 -257
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/use_coro.hpp +0 -216
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/use_promise.hpp +0 -68
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/parallel_group.hpp +0 -457
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/prepend.hpp +0 -38
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/promise.hpp +0 -226
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/use_coro.hpp +0 -191
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/use_promise.hpp +0 -113
- data/src/cxx_supportlib/vendor-modified/boost/asio/file_base.hpp +0 -168
- data/src/cxx_supportlib/vendor-modified/boost/asio/generic/basic_endpoint.hpp +0 -191
- data/src/cxx_supportlib/vendor-modified/boost/asio/generic/datagram_protocol.hpp +0 -125
- data/src/cxx_supportlib/vendor-modified/boost/asio/generic/detail/endpoint.hpp +0 -135
- data/src/cxx_supportlib/vendor-modified/boost/asio/generic/detail/impl/endpoint.ipp +0 -112
- data/src/cxx_supportlib/vendor-modified/boost/asio/generic/raw_protocol.hpp +0 -123
- data/src/cxx_supportlib/vendor-modified/boost/asio/generic/seq_packet_protocol.hpp +0 -124
- data/src/cxx_supportlib/vendor-modified/boost/asio/generic/stream_protocol.hpp +0 -129
- data/src/cxx_supportlib/vendor-modified/boost/asio/handler_continuation_hook.hpp +0 -56
- data/src/cxx_supportlib/vendor-modified/boost/asio/high_resolution_timer.hpp +0 -41
- data/src/cxx_supportlib/vendor-modified/boost/asio/immediate.hpp +0 -144
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/any_completion_executor.ipp +0 -128
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/any_io_executor.ipp +0 -136
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/append.hpp +0 -171
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/as_tuple.hpp +0 -278
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/awaitable.hpp +0 -1198
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/buffered_read_stream.hpp +0 -406
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/buffered_write_stream.hpp +0 -386
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/cancel_after.hpp +0 -270
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/cancel_at.hpp +0 -270
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/cancellation_signal.ipp +0 -98
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/co_spawn.hpp +0 -459
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/connect.hpp +0 -705
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/connect_pipe.hpp +0 -75
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/connect_pipe.ipp +0 -151
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/consign.hpp +0 -146
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/deferred.hpp +0 -149
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/detached.hpp +0 -79
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/error.ipp +0 -130
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/execution_context.hpp +0 -79
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/execution_context.ipp +0 -84
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/executor.hpp +0 -319
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/executor.ipp +0 -45
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/io_context.hpp +0 -435
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/io_context.ipp +0 -178
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/multiple_exceptions.ipp +0 -47
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/prepend.hpp +0 -172
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read.hpp +0 -904
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_at.hpp +0 -564
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_until.hpp +0 -2670
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/redirect_error.hpp +0 -289
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/serial_port_base.hpp +0 -61
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/serial_port_base.ipp +0 -556
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/spawn.hpp +0 -1402
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/src.hpp +0 -93
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/system_context.hpp +0 -36
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/system_context.ipp +0 -94
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/system_executor.hpp +0 -181
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/thread_pool.hpp +0 -279
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/thread_pool.ipp +0 -144
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/use_awaitable.hpp +0 -303
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/use_future.hpp +0 -709
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/write.hpp +0 -782
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/write_at.hpp +0 -482
- data/src/cxx_supportlib/vendor-modified/boost/asio/io_context.hpp +0 -1507
- data/src/cxx_supportlib/vendor-modified/boost/asio/io_context_strand.hpp +0 -398
- data/src/cxx_supportlib/vendor-modified/boost/asio/io_service.hpp +0 -35
- data/src/cxx_supportlib/vendor-modified/boost/asio/io_service_strand.hpp +0 -20
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address.hpp +0 -283
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v4.hpp +0 -423
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v4_iterator.hpp +0 -158
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v4_range.hpp +0 -130
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v6.hpp +0 -409
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v6_iterator.hpp +0 -180
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v6_range.hpp +0 -126
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/bad_address_cast.hpp +0 -65
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_endpoint.hpp +0 -284
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver.hpp +0 -1114
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_entry.hpp +0 -115
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_iterator.hpp +0 -190
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_query.hpp +0 -262
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_results.hpp +0 -309
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/detail/endpoint.hpp +0 -143
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/detail/impl/endpoint.ipp +0 -197
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/detail/socket_option.hpp +0 -568
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/host_name.hpp +0 -44
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/icmp.hpp +0 -117
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address.hpp +0 -69
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address.ipp +0 -237
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v4.hpp +0 -69
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v4.ipp +0 -208
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v6.hpp +0 -69
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v6.ipp +0 -344
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/basic_endpoint.hpp +0 -45
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/host_name.ipp +0 -56
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/network_v4.hpp +0 -56
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/network_v4.ipp +0 -220
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/network_v6.hpp +0 -55
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/network_v6.ipp +0 -189
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/multicast.hpp +0 -193
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/network_v4.hpp +0 -259
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/network_v6.hpp +0 -233
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/resolver_base.hpp +0 -131
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/resolver_query_base.hpp +0 -45
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/tcp.hpp +0 -157
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/udp.hpp +0 -113
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/unicast.hpp +0 -72
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/v6_only.hpp +0 -71
- data/src/cxx_supportlib/vendor-modified/boost/asio/is_applicable_property.hpp +0 -63
- data/src/cxx_supportlib/vendor-modified/boost/asio/is_contiguous_iterator.hpp +0 -47
- data/src/cxx_supportlib/vendor-modified/boost/asio/is_executor.hpp +0 -48
- data/src/cxx_supportlib/vendor-modified/boost/asio/is_read_buffered.hpp +0 -61
- data/src/cxx_supportlib/vendor-modified/boost/asio/is_write_buffered.hpp +0 -61
- data/src/cxx_supportlib/vendor-modified/boost/asio/local/basic_endpoint.hpp +0 -245
- data/src/cxx_supportlib/vendor-modified/boost/asio/local/connect_pair.hpp +0 -103
- data/src/cxx_supportlib/vendor-modified/boost/asio/local/datagram_protocol.hpp +0 -82
- data/src/cxx_supportlib/vendor-modified/boost/asio/local/detail/endpoint.hpp +0 -141
- data/src/cxx_supportlib/vendor-modified/boost/asio/local/detail/impl/endpoint.ipp +0 -133
- data/src/cxx_supportlib/vendor-modified/boost/asio/local/seq_packet_protocol.hpp +0 -86
- data/src/cxx_supportlib/vendor-modified/boost/asio/local/stream_protocol.hpp +0 -92
- data/src/cxx_supportlib/vendor-modified/boost/asio/multiple_exceptions.hpp +0 -54
- data/src/cxx_supportlib/vendor-modified/boost/asio/packaged_task.hpp +0 -68
- data/src/cxx_supportlib/vendor-modified/boost/asio/placeholders.hpp +0 -83
- data/src/cxx_supportlib/vendor-modified/boost/asio/posix/basic_descriptor.hpp +0 -775
- data/src/cxx_supportlib/vendor-modified/boost/asio/posix/basic_stream_descriptor.hpp +0 -561
- data/src/cxx_supportlib/vendor-modified/boost/asio/posix/descriptor.hpp +0 -39
- data/src/cxx_supportlib/vendor-modified/boost/asio/posix/descriptor_base.hpp +0 -92
- data/src/cxx_supportlib/vendor-modified/boost/asio/posix/stream_descriptor.hpp +0 -39
- data/src/cxx_supportlib/vendor-modified/boost/asio/post.hpp +0 -215
- data/src/cxx_supportlib/vendor-modified/boost/asio/prefer.hpp +0 -581
- data/src/cxx_supportlib/vendor-modified/boost/asio/prepend.hpp +0 -68
- data/src/cxx_supportlib/vendor-modified/boost/asio/query.hpp +0 -315
- data/src/cxx_supportlib/vendor-modified/boost/asio/random_access_file.hpp +0 -37
- data/src/cxx_supportlib/vendor-modified/boost/asio/read.hpp +0 -1549
- data/src/cxx_supportlib/vendor-modified/boost/asio/read_at.hpp +0 -830
- data/src/cxx_supportlib/vendor-modified/boost/asio/read_until.hpp +0 -3204
- data/src/cxx_supportlib/vendor-modified/boost/asio/readable_pipe.hpp +0 -37
- data/src/cxx_supportlib/vendor-modified/boost/asio/recycling_allocator.hpp +0 -140
- data/src/cxx_supportlib/vendor-modified/boost/asio/redirect_error.hpp +0 -106
- data/src/cxx_supportlib/vendor-modified/boost/asio/registered_buffer.hpp +0 -346
- data/src/cxx_supportlib/vendor-modified/boost/asio/require.hpp +0 -437
- data/src/cxx_supportlib/vendor-modified/boost/asio/require_concept.hpp +0 -347
- data/src/cxx_supportlib/vendor-modified/boost/asio/serial_port.hpp +0 -38
- data/src/cxx_supportlib/vendor-modified/boost/asio/serial_port_base.hpp +0 -169
- data/src/cxx_supportlib/vendor-modified/boost/asio/signal_set.hpp +0 -30
- data/src/cxx_supportlib/vendor-modified/boost/asio/signal_set_base.hpp +0 -173
- data/src/cxx_supportlib/vendor-modified/boost/asio/socket_base.hpp +0 -561
- data/src/cxx_supportlib/vendor-modified/boost/asio/spawn.hpp +0 -873
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/context.hpp +0 -764
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/context_base.hpp +0 -211
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/buffered_handshake_op.hpp +0 -121
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/engine.hpp +0 -171
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/handshake_op.hpp +0 -69
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/impl/engine.ipp +0 -379
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/impl/openssl_init.ipp +0 -171
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/io.hpp +0 -378
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/openssl_init.hpp +0 -103
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/openssl_types.hpp +0 -34
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/password_callback.hpp +0 -68
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/read_op.hpp +0 -74
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/shutdown_op.hpp +0 -71
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/stream_core.hpp +0 -219
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/verify_callback.hpp +0 -64
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/write_op.hpp +0 -78
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/error.hpp +0 -129
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/host_name_verification.hpp +0 -92
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/context.hpp +0 -69
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/context.ipp +0 -1324
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/error.ipp +0 -126
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/host_name_verification.ipp +0 -75
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/rfc2818_verification.ipp +0 -166
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/src.hpp +0 -29
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/rfc2818_verification.hpp +0 -100
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/stream.hpp +0 -1044
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/stream_base.hpp +0 -54
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/verify_context.hpp +0 -69
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/verify_mode.hpp +0 -65
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl.hpp +0 -28
- data/src/cxx_supportlib/vendor-modified/boost/asio/static_thread_pool.hpp +0 -33
- data/src/cxx_supportlib/vendor-modified/boost/asio/steady_timer.hpp +0 -39
- data/src/cxx_supportlib/vendor-modified/boost/asio/strand.hpp +0 -559
- data/src/cxx_supportlib/vendor-modified/boost/asio/stream_file.hpp +0 -37
- data/src/cxx_supportlib/vendor-modified/boost/asio/streambuf.hpp +0 -35
- data/src/cxx_supportlib/vendor-modified/boost/asio/system_context.hpp +0 -92
- data/src/cxx_supportlib/vendor-modified/boost/asio/system_executor.hpp +0 -673
- data/src/cxx_supportlib/vendor-modified/boost/asio/system_timer.hpp +0 -39
- data/src/cxx_supportlib/vendor-modified/boost/asio/this_coro.hpp +0 -269
- data/src/cxx_supportlib/vendor-modified/boost/asio/thread_pool.hpp +0 -965
- data/src/cxx_supportlib/vendor-modified/boost/asio/time_traits.hpp +0 -88
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/equality_comparable.hpp +0 -102
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/execute_member.hpp +0 -106
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/prefer_free.hpp +0 -106
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/prefer_member.hpp +0 -106
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/query_free.hpp +0 -106
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/query_member.hpp +0 -106
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/query_static_constexpr_member.hpp +0 -103
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/require_concept_free.hpp +0 -106
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/require_concept_member.hpp +0 -106
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/require_free.hpp +0 -106
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/require_member.hpp +0 -106
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/static_query.hpp +0 -104
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/static_require.hpp +0 -117
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/static_require_concept.hpp +0 -118
- data/src/cxx_supportlib/vendor-modified/boost/asio/ts/buffer.hpp +0 -24
- data/src/cxx_supportlib/vendor-modified/boost/asio/ts/executor.hpp +0 -35
- data/src/cxx_supportlib/vendor-modified/boost/asio/ts/internet.hpp +0 -40
- data/src/cxx_supportlib/vendor-modified/boost/asio/ts/io_context.hpp +0 -20
- data/src/cxx_supportlib/vendor-modified/boost/asio/ts/net.hpp +0 -26
- data/src/cxx_supportlib/vendor-modified/boost/asio/ts/netfwd.hpp +0 -238
- data/src/cxx_supportlib/vendor-modified/boost/asio/ts/socket.hpp +0 -27
- data/src/cxx_supportlib/vendor-modified/boost/asio/ts/timer.hpp +0 -26
- data/src/cxx_supportlib/vendor-modified/boost/asio/unyield.hpp +0 -21
- data/src/cxx_supportlib/vendor-modified/boost/asio/use_awaitable.hpp +0 -163
- data/src/cxx_supportlib/vendor-modified/boost/asio/use_future.hpp +0 -161
- data/src/cxx_supportlib/vendor-modified/boost/asio/uses_executor.hpp +0 -69
- data/src/cxx_supportlib/vendor-modified/boost/asio/version.hpp +0 -23
- data/src/cxx_supportlib/vendor-modified/boost/asio/wait_traits.hpp +0 -58
- data/src/cxx_supportlib/vendor-modified/boost/asio/writable_pipe.hpp +0 -37
- data/src/cxx_supportlib/vendor-modified/boost/asio/write.hpp +0 -1528
- data/src/cxx_supportlib/vendor-modified/boost/asio/write_at.hpp +0 -843
- data/src/cxx_supportlib/vendor-modified/boost/asio/yield.hpp +0 -23
- data/src/cxx_supportlib/vendor-modified/boost/asio.hpp +0 -195
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/old_optional_implementation.hpp +0 -1059
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/operator_bool.hpp +0 -64
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/requires_cxx11.hpp +0 -23
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_forward.hpp +0 -52
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_nullptr_t.hpp +0 -45
- data/src/cxx_supportlib/vendor-modified/websocketpp/COPYING +0 -145
- data/src/cxx_supportlib/vendor-modified/websocketpp/changelog.md +0 -444
- data/src/cxx_supportlib/vendor-modified/websocketpp/readme.md +0 -49
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/base64/base64.hpp +0 -178
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/client.hpp +0 -33
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/close.hpp +0 -353
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/asio.hpp +0 -141
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/asio_ssl.hpp +0 -39
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/chrono.hpp +0 -68
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/connection_hdl.hpp +0 -52
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/cpp11.hpp +0 -162
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/functional.hpp +0 -100
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/md5.hpp +0 -448
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/memory.hpp +0 -88
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/network.hpp +0 -106
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/platforms.hpp +0 -46
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/random.hpp +0 -82
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/regex.hpp +0 -59
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/stdint.hpp +0 -73
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/system_error.hpp +0 -84
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/thread.hpp +0 -88
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/time.hpp +0 -56
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/type_traits.hpp +0 -65
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/concurrency/basic.hpp +0 -46
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/concurrency/none.hpp +0 -80
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/config/asio.hpp +0 -77
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/config/asio_client.hpp +0 -77
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/config/asio_no_tls.hpp +0 -73
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/config/asio_no_tls_client.hpp +0 -73
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/config/boost_config.hpp +0 -72
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/config/core.hpp +0 -297
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/config/core_client.hpp +0 -294
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/config/debug.hpp +0 -286
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/config/debug_asio.hpp +0 -77
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/config/debug_asio_no_tls.hpp +0 -73
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/config/minimal_client.hpp +0 -72
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/config/minimal_server.hpp +0 -312
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/connection.hpp +0 -1642
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/connection_base.hpp +0 -38
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/endpoint.hpp +0 -700
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/endpoint_base.hpp +0 -38
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/error.hpp +0 -277
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/extensions/extension.hpp +0 -102
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/extensions/permessage_deflate/disabled.hpp +0 -129
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/extensions/permessage_deflate/enabled.hpp +0 -817
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/frame.hpp +0 -853
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/http/constants.hpp +0 -308
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/http/impl/parser.hpp +0 -200
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/http/impl/request.hpp +0 -191
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/http/impl/response.hpp +0 -266
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/http/parser.hpp +0 -629
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/http/request.hpp +0 -124
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/http/response.hpp +0 -188
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/impl/connection_impl.hpp +0 -2375
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/impl/endpoint_impl.hpp +0 -269
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/impl/utilities_impl.hpp +0 -87
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/logger/basic.hpp +0 -199
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/logger/levels.hpp +0 -203
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/logger/stub.hpp +0 -119
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/logger/syslog.hpp +0 -146
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/message_buffer/alloc.hpp +0 -105
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/message_buffer/message.hpp +0 -340
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/message_buffer/pool.hpp +0 -229
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/processors/base.hpp +0 -299
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/processors/hybi00.hpp +0 -462
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/processors/hybi07.hpp +0 -78
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/processors/hybi08.hpp +0 -83
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/processors/hybi13.hpp +0 -1072
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/processors/processor.hpp +0 -407
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/random/none.hpp +0 -60
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/random/random_device.hpp +0 -80
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/roles/client_endpoint.hpp +0 -173
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/roles/server_endpoint.hpp +0 -195
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/server.hpp +0 -33
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/sha1/sha1.hpp +0 -189
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/asio/base.hpp +0 -232
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/asio/connection.hpp +0 -1197
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/asio/endpoint.hpp +0 -1182
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/asio/security/base.hpp +0 -159
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/asio/security/none.hpp +0 -372
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/asio/security/tls.hpp +0 -474
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/base/connection.hpp +0 -238
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/base/endpoint.hpp +0 -77
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/debug/base.hpp +0 -104
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/debug/connection.hpp +0 -412
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/debug/endpoint.hpp +0 -140
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/iostream/base.hpp +0 -133
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/iostream/connection.hpp +0 -714
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/iostream/endpoint.hpp +0 -222
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/stub/base.hpp +0 -95
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/stub/connection.hpp +0 -286
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/stub/endpoint.hpp +0 -140
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/uri.hpp +0 -356
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/utf8_validator.hpp +0 -154
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/utilities.hpp +0 -180
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/version.hpp +0 -61
@@ -1,965 +0,0 @@
|
|
1
|
-
//
|
2
|
-
// thread_pool.hpp
|
3
|
-
// ~~~~~~~~~~~~~~~
|
4
|
-
//
|
5
|
-
// Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
|
6
|
-
//
|
7
|
-
// Distributed under the Boost Software License, Version 1.0. (See accompanying
|
8
|
-
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
9
|
-
//
|
10
|
-
|
11
|
-
#ifndef BOOST_ASIO_THREAD_POOL_HPP
|
12
|
-
#define BOOST_ASIO_THREAD_POOL_HPP
|
13
|
-
|
14
|
-
#if defined(_MSC_VER) && (_MSC_VER >= 1200)
|
15
|
-
# pragma once
|
16
|
-
#endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
|
17
|
-
|
18
|
-
#include <boost/asio/detail/config.hpp>
|
19
|
-
#include <boost/asio/detail/atomic_count.hpp>
|
20
|
-
#include <boost/asio/detail/scheduler.hpp>
|
21
|
-
#include <boost/asio/detail/thread_group.hpp>
|
22
|
-
#include <boost/asio/execution.hpp>
|
23
|
-
#include <boost/asio/execution_context.hpp>
|
24
|
-
|
25
|
-
#include <boost/asio/detail/push_options.hpp>
|
26
|
-
|
27
|
-
namespace boost {
|
28
|
-
namespace asio {
|
29
|
-
namespace detail {
|
30
|
-
struct thread_pool_bits
|
31
|
-
{
|
32
|
-
static constexpr unsigned int blocking_never = 1;
|
33
|
-
static constexpr unsigned int blocking_always = 2;
|
34
|
-
static constexpr unsigned int blocking_mask = 3;
|
35
|
-
static constexpr unsigned int relationship_continuation = 4;
|
36
|
-
static constexpr unsigned int outstanding_work_tracked = 8;
|
37
|
-
};
|
38
|
-
} // namespace detail
|
39
|
-
|
40
|
-
/// A simple fixed-size thread pool.
|
41
|
-
/**
|
42
|
-
* The thread pool class is an execution context where functions are permitted
|
43
|
-
* to run on one of a fixed number of threads.
|
44
|
-
*
|
45
|
-
* @par Submitting tasks to the pool
|
46
|
-
*
|
47
|
-
* To submit functions to the thread pool, use the @ref boost::asio::dispatch,
|
48
|
-
* @ref boost::asio::post or @ref boost::asio::defer free functions.
|
49
|
-
*
|
50
|
-
* For example:
|
51
|
-
*
|
52
|
-
* @code void my_task()
|
53
|
-
* {
|
54
|
-
* ...
|
55
|
-
* }
|
56
|
-
*
|
57
|
-
* ...
|
58
|
-
*
|
59
|
-
* // Launch the pool with four threads.
|
60
|
-
* boost::asio::thread_pool pool(4);
|
61
|
-
*
|
62
|
-
* // Submit a function to the pool.
|
63
|
-
* boost::asio::post(pool, my_task);
|
64
|
-
*
|
65
|
-
* // Submit a lambda object to the pool.
|
66
|
-
* boost::asio::post(pool,
|
67
|
-
* []()
|
68
|
-
* {
|
69
|
-
* ...
|
70
|
-
* });
|
71
|
-
*
|
72
|
-
* // Wait for all tasks in the pool to complete.
|
73
|
-
* pool.join(); @endcode
|
74
|
-
*/
|
75
|
-
class thread_pool
|
76
|
-
: public execution_context
|
77
|
-
{
|
78
|
-
public:
|
79
|
-
template <typename Allocator, unsigned int Bits>
|
80
|
-
class basic_executor_type;
|
81
|
-
|
82
|
-
template <typename Allocator, unsigned int Bits>
|
83
|
-
friend class basic_executor_type;
|
84
|
-
|
85
|
-
/// Executor used to submit functions to a thread pool.
|
86
|
-
typedef basic_executor_type<std::allocator<void>, 0> executor_type;
|
87
|
-
|
88
|
-
#if !defined(BOOST_ASIO_NO_TS_EXECUTORS)
|
89
|
-
/// Constructs a pool with an automatically determined number of threads.
|
90
|
-
BOOST_ASIO_DECL thread_pool();
|
91
|
-
#endif // !defined(BOOST_ASIO_NO_TS_EXECUTORS)
|
92
|
-
|
93
|
-
/// Constructs a pool with a specified number of threads.
|
94
|
-
BOOST_ASIO_DECL thread_pool(std::size_t num_threads);
|
95
|
-
|
96
|
-
/// Destructor.
|
97
|
-
/**
|
98
|
-
* Automatically stops and joins the pool, if not explicitly done beforehand.
|
99
|
-
*/
|
100
|
-
BOOST_ASIO_DECL ~thread_pool();
|
101
|
-
|
102
|
-
/// Obtains the executor associated with the pool.
|
103
|
-
executor_type get_executor() noexcept;
|
104
|
-
|
105
|
-
/// Obtains the executor associated with the pool.
|
106
|
-
executor_type executor() noexcept;
|
107
|
-
|
108
|
-
/// Stops the threads.
|
109
|
-
/**
|
110
|
-
* This function stops the threads as soon as possible. As a result of calling
|
111
|
-
* @c stop(), pending function objects may be never be invoked.
|
112
|
-
*/
|
113
|
-
BOOST_ASIO_DECL void stop();
|
114
|
-
|
115
|
-
/// Attaches the current thread to the pool.
|
116
|
-
/**
|
117
|
-
* This function attaches the current thread to the pool so that it may be
|
118
|
-
* used for executing submitted function objects. Blocks the calling thread
|
119
|
-
* until the pool is stopped or joined and has no outstanding work.
|
120
|
-
*/
|
121
|
-
BOOST_ASIO_DECL void attach();
|
122
|
-
|
123
|
-
/// Joins the threads.
|
124
|
-
/**
|
125
|
-
* This function blocks until the threads in the pool have completed. If @c
|
126
|
-
* stop() is not called prior to @c join(), the @c join() call will wait
|
127
|
-
* until the pool has no more outstanding work.
|
128
|
-
*/
|
129
|
-
BOOST_ASIO_DECL void join();
|
130
|
-
|
131
|
-
/// Waits for threads to complete.
|
132
|
-
/**
|
133
|
-
* This function blocks until the threads in the pool have completed. If @c
|
134
|
-
* stop() is not called prior to @c wait(), the @c wait() call will wait
|
135
|
-
* until the pool has no more outstanding work.
|
136
|
-
*/
|
137
|
-
BOOST_ASIO_DECL void wait();
|
138
|
-
|
139
|
-
private:
|
140
|
-
thread_pool(const thread_pool&) = delete;
|
141
|
-
thread_pool& operator=(const thread_pool&) = delete;
|
142
|
-
|
143
|
-
struct thread_function;
|
144
|
-
|
145
|
-
// Helper function to create the underlying scheduler.
|
146
|
-
BOOST_ASIO_DECL detail::scheduler& add_scheduler(detail::scheduler* s);
|
147
|
-
|
148
|
-
// The underlying scheduler.
|
149
|
-
detail::scheduler& scheduler_;
|
150
|
-
|
151
|
-
// The threads in the pool.
|
152
|
-
detail::thread_group threads_;
|
153
|
-
|
154
|
-
// The current number of threads in the pool.
|
155
|
-
detail::atomic_count num_threads_;
|
156
|
-
};
|
157
|
-
|
158
|
-
/// Executor implementation type used to submit functions to a thread pool.
|
159
|
-
template <typename Allocator, unsigned int Bits>
|
160
|
-
class thread_pool::basic_executor_type : detail::thread_pool_bits
|
161
|
-
{
|
162
|
-
public:
|
163
|
-
/// Copy constructor.
|
164
|
-
basic_executor_type(const basic_executor_type& other) noexcept
|
165
|
-
: pool_(other.pool_),
|
166
|
-
allocator_(other.allocator_),
|
167
|
-
bits_(other.bits_)
|
168
|
-
{
|
169
|
-
if (Bits & outstanding_work_tracked)
|
170
|
-
if (pool_)
|
171
|
-
pool_->scheduler_.work_started();
|
172
|
-
}
|
173
|
-
|
174
|
-
/// Move constructor.
|
175
|
-
basic_executor_type(basic_executor_type&& other) noexcept
|
176
|
-
: pool_(other.pool_),
|
177
|
-
allocator_(static_cast<Allocator&&>(other.allocator_)),
|
178
|
-
bits_(other.bits_)
|
179
|
-
{
|
180
|
-
if (Bits & outstanding_work_tracked)
|
181
|
-
other.pool_ = 0;
|
182
|
-
}
|
183
|
-
|
184
|
-
/// Destructor.
|
185
|
-
~basic_executor_type() noexcept
|
186
|
-
{
|
187
|
-
if (Bits & outstanding_work_tracked)
|
188
|
-
if (pool_)
|
189
|
-
pool_->scheduler_.work_finished();
|
190
|
-
}
|
191
|
-
|
192
|
-
/// Assignment operator.
|
193
|
-
basic_executor_type& operator=(const basic_executor_type& other) noexcept;
|
194
|
-
|
195
|
-
/// Move assignment operator.
|
196
|
-
basic_executor_type& operator=(basic_executor_type&& other) noexcept;
|
197
|
-
|
198
|
-
#if !defined(GENERATING_DOCUMENTATION)
|
199
|
-
private:
|
200
|
-
friend struct boost_asio_require_fn::impl;
|
201
|
-
friend struct boost_asio_prefer_fn::impl;
|
202
|
-
#endif // !defined(GENERATING_DOCUMENTATION)
|
203
|
-
|
204
|
-
/// Obtain an executor with the @c blocking.possibly property.
|
205
|
-
/**
|
206
|
-
* Do not call this function directly. It is intended for use with the
|
207
|
-
* boost::asio::require customisation point.
|
208
|
-
*
|
209
|
-
* For example:
|
210
|
-
* @code auto ex1 = my_thread_pool.executor();
|
211
|
-
* auto ex2 = boost::asio::require(ex1,
|
212
|
-
* boost::asio::execution::blocking.possibly); @endcode
|
213
|
-
*/
|
214
|
-
constexpr basic_executor_type<Allocator,
|
215
|
-
BOOST_ASIO_UNSPECIFIED(Bits & ~blocking_mask)>
|
216
|
-
require(execution::blocking_t::possibly_t) const
|
217
|
-
{
|
218
|
-
return basic_executor_type<Allocator, Bits & ~blocking_mask>(
|
219
|
-
pool_, allocator_, bits_ & ~blocking_mask);
|
220
|
-
}
|
221
|
-
|
222
|
-
/// Obtain an executor with the @c blocking.always property.
|
223
|
-
/**
|
224
|
-
* Do not call this function directly. It is intended for use with the
|
225
|
-
* boost::asio::require customisation point.
|
226
|
-
*
|
227
|
-
* For example:
|
228
|
-
* @code auto ex1 = my_thread_pool.executor();
|
229
|
-
* auto ex2 = boost::asio::require(ex1,
|
230
|
-
* boost::asio::execution::blocking.always); @endcode
|
231
|
-
*/
|
232
|
-
constexpr basic_executor_type<Allocator,
|
233
|
-
BOOST_ASIO_UNSPECIFIED((Bits & ~blocking_mask) | blocking_always)>
|
234
|
-
require(execution::blocking_t::always_t) const
|
235
|
-
{
|
236
|
-
return basic_executor_type<Allocator,
|
237
|
-
BOOST_ASIO_UNSPECIFIED((Bits & ~blocking_mask) | blocking_always)>(
|
238
|
-
pool_, allocator_, bits_ & ~blocking_mask);
|
239
|
-
}
|
240
|
-
|
241
|
-
/// Obtain an executor with the @c blocking.never property.
|
242
|
-
/**
|
243
|
-
* Do not call this function directly. It is intended for use with the
|
244
|
-
* boost::asio::require customisation point.
|
245
|
-
*
|
246
|
-
* For example:
|
247
|
-
* @code auto ex1 = my_thread_pool.executor();
|
248
|
-
* auto ex2 = boost::asio::require(ex1,
|
249
|
-
* boost::asio::execution::blocking.never); @endcode
|
250
|
-
*/
|
251
|
-
constexpr basic_executor_type<Allocator,
|
252
|
-
BOOST_ASIO_UNSPECIFIED(Bits & ~blocking_mask)>
|
253
|
-
require(execution::blocking_t::never_t) const
|
254
|
-
{
|
255
|
-
return basic_executor_type<Allocator, Bits & ~blocking_mask>(
|
256
|
-
pool_, allocator_, (bits_ & ~blocking_mask) | blocking_never);
|
257
|
-
}
|
258
|
-
|
259
|
-
/// Obtain an executor with the @c relationship.fork property.
|
260
|
-
/**
|
261
|
-
* Do not call this function directly. It is intended for use with the
|
262
|
-
* boost::asio::require customisation point.
|
263
|
-
*
|
264
|
-
* For example:
|
265
|
-
* @code auto ex1 = my_thread_pool.executor();
|
266
|
-
* auto ex2 = boost::asio::require(ex1,
|
267
|
-
* boost::asio::execution::relationship.fork); @endcode
|
268
|
-
*/
|
269
|
-
constexpr basic_executor_type require(execution::relationship_t::fork_t) const
|
270
|
-
{
|
271
|
-
return basic_executor_type(pool_,
|
272
|
-
allocator_, bits_ & ~relationship_continuation);
|
273
|
-
}
|
274
|
-
|
275
|
-
/// Obtain an executor with the @c relationship.continuation property.
|
276
|
-
/**
|
277
|
-
* Do not call this function directly. It is intended for use with the
|
278
|
-
* boost::asio::require customisation point.
|
279
|
-
*
|
280
|
-
* For example:
|
281
|
-
* @code auto ex1 = my_thread_pool.executor();
|
282
|
-
* auto ex2 = boost::asio::require(ex1,
|
283
|
-
* boost::asio::execution::relationship.continuation); @endcode
|
284
|
-
*/
|
285
|
-
constexpr basic_executor_type require(
|
286
|
-
execution::relationship_t::continuation_t) const
|
287
|
-
{
|
288
|
-
return basic_executor_type(pool_,
|
289
|
-
allocator_, bits_ | relationship_continuation);
|
290
|
-
}
|
291
|
-
|
292
|
-
/// Obtain an executor with the @c outstanding_work.tracked property.
|
293
|
-
/**
|
294
|
-
* Do not call this function directly. It is intended for use with the
|
295
|
-
* boost::asio::require customisation point.
|
296
|
-
*
|
297
|
-
* For example:
|
298
|
-
* @code auto ex1 = my_thread_pool.executor();
|
299
|
-
* auto ex2 = boost::asio::require(ex1,
|
300
|
-
* boost::asio::execution::outstanding_work.tracked); @endcode
|
301
|
-
*/
|
302
|
-
constexpr basic_executor_type<Allocator,
|
303
|
-
BOOST_ASIO_UNSPECIFIED(Bits | outstanding_work_tracked)>
|
304
|
-
require(execution::outstanding_work_t::tracked_t) const
|
305
|
-
{
|
306
|
-
return basic_executor_type<Allocator, Bits | outstanding_work_tracked>(
|
307
|
-
pool_, allocator_, bits_);
|
308
|
-
}
|
309
|
-
|
310
|
-
/// Obtain an executor with the @c outstanding_work.untracked property.
|
311
|
-
/**
|
312
|
-
* Do not call this function directly. It is intended for use with the
|
313
|
-
* boost::asio::require customisation point.
|
314
|
-
*
|
315
|
-
* For example:
|
316
|
-
* @code auto ex1 = my_thread_pool.executor();
|
317
|
-
* auto ex2 = boost::asio::require(ex1,
|
318
|
-
* boost::asio::execution::outstanding_work.untracked); @endcode
|
319
|
-
*/
|
320
|
-
constexpr basic_executor_type<Allocator,
|
321
|
-
BOOST_ASIO_UNSPECIFIED(Bits & ~outstanding_work_tracked)>
|
322
|
-
require(execution::outstanding_work_t::untracked_t) const
|
323
|
-
{
|
324
|
-
return basic_executor_type<Allocator, Bits & ~outstanding_work_tracked>(
|
325
|
-
pool_, allocator_, bits_);
|
326
|
-
}
|
327
|
-
|
328
|
-
/// Obtain an executor with the specified @c allocator property.
|
329
|
-
/**
|
330
|
-
* Do not call this function directly. It is intended for use with the
|
331
|
-
* boost::asio::require customisation point.
|
332
|
-
*
|
333
|
-
* For example:
|
334
|
-
* @code auto ex1 = my_thread_pool.executor();
|
335
|
-
* auto ex2 = boost::asio::require(ex1,
|
336
|
-
* boost::asio::execution::allocator(my_allocator)); @endcode
|
337
|
-
*/
|
338
|
-
template <typename OtherAllocator>
|
339
|
-
constexpr basic_executor_type<OtherAllocator, Bits>
|
340
|
-
require(execution::allocator_t<OtherAllocator> a) const
|
341
|
-
{
|
342
|
-
return basic_executor_type<OtherAllocator, Bits>(
|
343
|
-
pool_, a.value(), bits_);
|
344
|
-
}
|
345
|
-
|
346
|
-
/// Obtain an executor with the default @c allocator property.
|
347
|
-
/**
|
348
|
-
* Do not call this function directly. It is intended for use with the
|
349
|
-
* boost::asio::require customisation point.
|
350
|
-
*
|
351
|
-
* For example:
|
352
|
-
* @code auto ex1 = my_thread_pool.executor();
|
353
|
-
* auto ex2 = boost::asio::require(ex1,
|
354
|
-
* boost::asio::execution::allocator); @endcode
|
355
|
-
*/
|
356
|
-
constexpr basic_executor_type<std::allocator<void>, Bits>
|
357
|
-
require(execution::allocator_t<void>) const
|
358
|
-
{
|
359
|
-
return basic_executor_type<std::allocator<void>, Bits>(
|
360
|
-
pool_, std::allocator<void>(), bits_);
|
361
|
-
}
|
362
|
-
|
363
|
-
#if !defined(GENERATING_DOCUMENTATION)
|
364
|
-
private:
|
365
|
-
friend struct boost_asio_query_fn::impl;
|
366
|
-
friend struct boost::asio::execution::detail::mapping_t<0>;
|
367
|
-
friend struct boost::asio::execution::detail::outstanding_work_t<0>;
|
368
|
-
#endif // !defined(GENERATING_DOCUMENTATION)
|
369
|
-
|
370
|
-
/// Query the current value of the @c mapping property.
|
371
|
-
/**
|
372
|
-
* Do not call this function directly. It is intended for use with the
|
373
|
-
* boost::asio::query customisation point.
|
374
|
-
*
|
375
|
-
* For example:
|
376
|
-
* @code auto ex = my_thread_pool.executor();
|
377
|
-
* if (boost::asio::query(ex, boost::asio::execution::mapping)
|
378
|
-
* == boost::asio::execution::mapping.thread)
|
379
|
-
* ... @endcode
|
380
|
-
*/
|
381
|
-
static constexpr execution::mapping_t query(execution::mapping_t) noexcept
|
382
|
-
{
|
383
|
-
return execution::mapping.thread;
|
384
|
-
}
|
385
|
-
|
386
|
-
/// Query the current value of the @c context property.
|
387
|
-
/**
|
388
|
-
* Do not call this function directly. It is intended for use with the
|
389
|
-
* boost::asio::query customisation point.
|
390
|
-
*
|
391
|
-
* For example:
|
392
|
-
* @code auto ex = my_thread_pool.executor();
|
393
|
-
* boost::asio::thread_pool& pool = boost::asio::query(
|
394
|
-
* ex, boost::asio::execution::context); @endcode
|
395
|
-
*/
|
396
|
-
thread_pool& query(execution::context_t) const noexcept
|
397
|
-
{
|
398
|
-
return *pool_;
|
399
|
-
}
|
400
|
-
|
401
|
-
/// Query the current value of the @c blocking property.
|
402
|
-
/**
|
403
|
-
* Do not call this function directly. It is intended for use with the
|
404
|
-
* boost::asio::query customisation point.
|
405
|
-
*
|
406
|
-
* For example:
|
407
|
-
* @code auto ex = my_thread_pool.executor();
|
408
|
-
* if (boost::asio::query(ex, boost::asio::execution::blocking)
|
409
|
-
* == boost::asio::execution::blocking.always)
|
410
|
-
* ... @endcode
|
411
|
-
*/
|
412
|
-
constexpr execution::blocking_t query(execution::blocking_t) const noexcept
|
413
|
-
{
|
414
|
-
return (bits_ & blocking_never)
|
415
|
-
? execution::blocking_t(execution::blocking.never)
|
416
|
-
: ((Bits & blocking_always)
|
417
|
-
? execution::blocking_t(execution::blocking.always)
|
418
|
-
: execution::blocking_t(execution::blocking.possibly));
|
419
|
-
}
|
420
|
-
|
421
|
-
/// Query the current value of the @c relationship property.
|
422
|
-
/**
|
423
|
-
* Do not call this function directly. It is intended for use with the
|
424
|
-
* boost::asio::query customisation point.
|
425
|
-
*
|
426
|
-
* For example:
|
427
|
-
* @code auto ex = my_thread_pool.executor();
|
428
|
-
* if (boost::asio::query(ex, boost::asio::execution::relationship)
|
429
|
-
* == boost::asio::execution::relationship.continuation)
|
430
|
-
* ... @endcode
|
431
|
-
*/
|
432
|
-
constexpr execution::relationship_t query(
|
433
|
-
execution::relationship_t) const noexcept
|
434
|
-
{
|
435
|
-
return (bits_ & relationship_continuation)
|
436
|
-
? execution::relationship_t(execution::relationship.continuation)
|
437
|
-
: execution::relationship_t(execution::relationship.fork);
|
438
|
-
}
|
439
|
-
|
440
|
-
/// Query the current value of the @c outstanding_work property.
|
441
|
-
/**
|
442
|
-
* Do not call this function directly. It is intended for use with the
|
443
|
-
* boost::asio::query customisation point.
|
444
|
-
*
|
445
|
-
* For example:
|
446
|
-
* @code auto ex = my_thread_pool.executor();
|
447
|
-
* if (boost::asio::query(ex, boost::asio::execution::outstanding_work)
|
448
|
-
* == boost::asio::execution::outstanding_work.tracked)
|
449
|
-
* ... @endcode
|
450
|
-
*/
|
451
|
-
static constexpr execution::outstanding_work_t query(
|
452
|
-
execution::outstanding_work_t) noexcept
|
453
|
-
{
|
454
|
-
return (Bits & outstanding_work_tracked)
|
455
|
-
? execution::outstanding_work_t(execution::outstanding_work.tracked)
|
456
|
-
: execution::outstanding_work_t(execution::outstanding_work.untracked);
|
457
|
-
}
|
458
|
-
|
459
|
-
/// Query the current value of the @c allocator property.
|
460
|
-
/**
|
461
|
-
* Do not call this function directly. It is intended for use with the
|
462
|
-
* boost::asio::query customisation point.
|
463
|
-
*
|
464
|
-
* For example:
|
465
|
-
* @code auto ex = my_thread_pool.executor();
|
466
|
-
* auto alloc = boost::asio::query(ex,
|
467
|
-
* boost::asio::execution::allocator); @endcode
|
468
|
-
*/
|
469
|
-
template <typename OtherAllocator>
|
470
|
-
constexpr Allocator query(
|
471
|
-
execution::allocator_t<OtherAllocator>) const noexcept
|
472
|
-
{
|
473
|
-
return allocator_;
|
474
|
-
}
|
475
|
-
|
476
|
-
/// Query the current value of the @c allocator property.
|
477
|
-
/**
|
478
|
-
* Do not call this function directly. It is intended for use with the
|
479
|
-
* boost::asio::query customisation point.
|
480
|
-
*
|
481
|
-
* For example:
|
482
|
-
* @code auto ex = my_thread_pool.executor();
|
483
|
-
* auto alloc = boost::asio::query(ex,
|
484
|
-
* boost::asio::execution::allocator); @endcode
|
485
|
-
*/
|
486
|
-
constexpr Allocator query(execution::allocator_t<void>) const noexcept
|
487
|
-
{
|
488
|
-
return allocator_;
|
489
|
-
}
|
490
|
-
|
491
|
-
/// Query the occupancy (recommended number of work items) for the pool.
|
492
|
-
/**
|
493
|
-
* Do not call this function directly. It is intended for use with the
|
494
|
-
* boost::asio::query customisation point.
|
495
|
-
*
|
496
|
-
* For example:
|
497
|
-
* @code auto ex = my_thread_pool.executor();
|
498
|
-
* std::size_t occupancy = boost::asio::query(
|
499
|
-
* ex, boost::asio::execution::occupancy); @endcode
|
500
|
-
*/
|
501
|
-
std::size_t query(execution::occupancy_t) const noexcept
|
502
|
-
{
|
503
|
-
return static_cast<std::size_t>(pool_->num_threads_);
|
504
|
-
}
|
505
|
-
|
506
|
-
public:
|
507
|
-
/// Determine whether the thread pool is running in the current thread.
|
508
|
-
/**
|
509
|
-
* @return @c true if the current thread is running the thread pool. Otherwise
|
510
|
-
* returns @c false.
|
511
|
-
*/
|
512
|
-
bool running_in_this_thread() const noexcept;
|
513
|
-
|
514
|
-
/// Compare two executors for equality.
|
515
|
-
/**
|
516
|
-
* Two executors are equal if they refer to the same underlying thread pool.
|
517
|
-
*/
|
518
|
-
friend bool operator==(const basic_executor_type& a,
|
519
|
-
const basic_executor_type& b) noexcept
|
520
|
-
{
|
521
|
-
return a.pool_ == b.pool_
|
522
|
-
&& a.allocator_ == b.allocator_
|
523
|
-
&& a.bits_ == b.bits_;
|
524
|
-
}
|
525
|
-
|
526
|
-
/// Compare two executors for inequality.
|
527
|
-
/**
|
528
|
-
* Two executors are equal if they refer to the same underlying thread pool.
|
529
|
-
*/
|
530
|
-
friend bool operator!=(const basic_executor_type& a,
|
531
|
-
const basic_executor_type& b) noexcept
|
532
|
-
{
|
533
|
-
return a.pool_ != b.pool_
|
534
|
-
|| a.allocator_ != b.allocator_
|
535
|
-
|| a.bits_ != b.bits_;
|
536
|
-
}
|
537
|
-
|
538
|
-
/// Execution function.
|
539
|
-
template <typename Function>
|
540
|
-
void execute(Function&& f) const
|
541
|
-
{
|
542
|
-
this->do_execute(static_cast<Function&&>(f),
|
543
|
-
integral_constant<bool, (Bits & blocking_always) != 0>());
|
544
|
-
}
|
545
|
-
|
546
|
-
public:
|
547
|
-
#if !defined(BOOST_ASIO_NO_TS_EXECUTORS)
|
548
|
-
/// Obtain the underlying execution context.
|
549
|
-
thread_pool& context() const noexcept;
|
550
|
-
|
551
|
-
/// Inform the thread pool that it has some outstanding work to do.
|
552
|
-
/**
|
553
|
-
* This function is used to inform the thread pool that some work has begun.
|
554
|
-
* This ensures that the thread pool's join() function will not return while
|
555
|
-
* the work is underway.
|
556
|
-
*/
|
557
|
-
void on_work_started() const noexcept;
|
558
|
-
|
559
|
-
/// Inform the thread pool that some work is no longer outstanding.
|
560
|
-
/**
|
561
|
-
* This function is used to inform the thread pool that some work has
|
562
|
-
* finished. Once the count of unfinished work reaches zero, the thread
|
563
|
-
* pool's join() function is permitted to exit.
|
564
|
-
*/
|
565
|
-
void on_work_finished() const noexcept;
|
566
|
-
|
567
|
-
/// Request the thread pool to invoke the given function object.
|
568
|
-
/**
|
569
|
-
* This function is used to ask the thread pool to execute the given function
|
570
|
-
* object. If the current thread belongs to the pool, @c dispatch() executes
|
571
|
-
* the function before returning. Otherwise, the function will be scheduled
|
572
|
-
* to run on the thread pool.
|
573
|
-
*
|
574
|
-
* @param f The function object to be called. The executor will make
|
575
|
-
* a copy of the handler object as required. The function signature of the
|
576
|
-
* function object must be: @code void function(); @endcode
|
577
|
-
*
|
578
|
-
* @param a An allocator that may be used by the executor to allocate the
|
579
|
-
* internal storage needed for function invocation.
|
580
|
-
*/
|
581
|
-
template <typename Function, typename OtherAllocator>
|
582
|
-
void dispatch(Function&& f, const OtherAllocator& a) const;
|
583
|
-
|
584
|
-
/// Request the thread pool to invoke the given function object.
|
585
|
-
/**
|
586
|
-
* This function is used to ask the thread pool to execute the given function
|
587
|
-
* object. The function object will never be executed inside @c post().
|
588
|
-
* Instead, it will be scheduled to run on the thread pool.
|
589
|
-
*
|
590
|
-
* @param f The function object to be called. The executor will make
|
591
|
-
* a copy of the handler object as required. The function signature of the
|
592
|
-
* function object must be: @code void function(); @endcode
|
593
|
-
*
|
594
|
-
* @param a An allocator that may be used by the executor to allocate the
|
595
|
-
* internal storage needed for function invocation.
|
596
|
-
*/
|
597
|
-
template <typename Function, typename OtherAllocator>
|
598
|
-
void post(Function&& f, const OtherAllocator& a) const;
|
599
|
-
|
600
|
-
/// Request the thread pool to invoke the given function object.
|
601
|
-
/**
|
602
|
-
* This function is used to ask the thread pool to execute the given function
|
603
|
-
* object. The function object will never be executed inside @c defer().
|
604
|
-
* Instead, it will be scheduled to run on the thread pool.
|
605
|
-
*
|
606
|
-
* If the current thread belongs to the thread pool, @c defer() will delay
|
607
|
-
* scheduling the function object until the current thread returns control to
|
608
|
-
* the pool.
|
609
|
-
*
|
610
|
-
* @param f The function object to be called. The executor will make
|
611
|
-
* a copy of the handler object as required. The function signature of the
|
612
|
-
* function object must be: @code void function(); @endcode
|
613
|
-
*
|
614
|
-
* @param a An allocator that may be used by the executor to allocate the
|
615
|
-
* internal storage needed for function invocation.
|
616
|
-
*/
|
617
|
-
template <typename Function, typename OtherAllocator>
|
618
|
-
void defer(Function&& f, const OtherAllocator& a) const;
|
619
|
-
#endif // !defined(BOOST_ASIO_NO_TS_EXECUTORS)
|
620
|
-
|
621
|
-
private:
|
622
|
-
friend class thread_pool;
|
623
|
-
template <typename, unsigned int> friend class basic_executor_type;
|
624
|
-
|
625
|
-
// Constructor used by thread_pool::get_executor().
|
626
|
-
explicit basic_executor_type(thread_pool& p) noexcept
|
627
|
-
: pool_(&p),
|
628
|
-
allocator_(),
|
629
|
-
bits_(0)
|
630
|
-
{
|
631
|
-
if (Bits & outstanding_work_tracked)
|
632
|
-
pool_->scheduler_.work_started();
|
633
|
-
}
|
634
|
-
|
635
|
-
// Constructor used by require().
|
636
|
-
basic_executor_type(thread_pool* p,
|
637
|
-
const Allocator& a, unsigned int bits) noexcept
|
638
|
-
: pool_(p),
|
639
|
-
allocator_(a),
|
640
|
-
bits_(bits)
|
641
|
-
{
|
642
|
-
if (Bits & outstanding_work_tracked)
|
643
|
-
if (pool_)
|
644
|
-
pool_->scheduler_.work_started();
|
645
|
-
}
|
646
|
-
|
647
|
-
/// Execution helper implementation for possibly and never blocking.
|
648
|
-
template <typename Function>
|
649
|
-
void do_execute(Function&& f, false_type) const;
|
650
|
-
|
651
|
-
/// Execution helper implementation for always blocking.
|
652
|
-
template <typename Function>
|
653
|
-
void do_execute(Function&& f, true_type) const;
|
654
|
-
|
655
|
-
// The underlying thread pool.
|
656
|
-
thread_pool* pool_;
|
657
|
-
|
658
|
-
// The allocator used for execution functions.
|
659
|
-
Allocator allocator_;
|
660
|
-
|
661
|
-
// The runtime-switched properties of the thread pool executor.
|
662
|
-
unsigned int bits_;
|
663
|
-
};
|
664
|
-
|
665
|
-
#if !defined(GENERATING_DOCUMENTATION)
|
666
|
-
|
667
|
-
namespace traits {
|
668
|
-
|
669
|
-
#if !defined(BOOST_ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT)
|
670
|
-
|
671
|
-
template <typename Allocator, unsigned int Bits>
|
672
|
-
struct equality_comparable<
|
673
|
-
boost::asio::thread_pool::basic_executor_type<Allocator, Bits>
|
674
|
-
>
|
675
|
-
{
|
676
|
-
static constexpr bool is_valid = true;
|
677
|
-
static constexpr bool is_noexcept = true;
|
678
|
-
};
|
679
|
-
|
680
|
-
#endif // !defined(BOOST_ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT)
|
681
|
-
|
682
|
-
#if !defined(BOOST_ASIO_HAS_DEDUCED_EXECUTE_MEMBER_TRAIT)
|
683
|
-
|
684
|
-
template <typename Allocator, unsigned int Bits, typename Function>
|
685
|
-
struct execute_member<
|
686
|
-
boost::asio::thread_pool::basic_executor_type<Allocator, Bits>,
|
687
|
-
Function
|
688
|
-
>
|
689
|
-
{
|
690
|
-
static constexpr bool is_valid = true;
|
691
|
-
static constexpr bool is_noexcept = false;
|
692
|
-
typedef void result_type;
|
693
|
-
};
|
694
|
-
|
695
|
-
#endif // !defined(BOOST_ASIO_HAS_DEDUCED_EXECUTE_MEMBER_TRAIT)
|
696
|
-
|
697
|
-
#if !defined(BOOST_ASIO_HAS_DEDUCED_REQUIRE_MEMBER_TRAIT)
|
698
|
-
|
699
|
-
template <typename Allocator, unsigned int Bits>
|
700
|
-
struct require_member<
|
701
|
-
boost::asio::thread_pool::basic_executor_type<Allocator, Bits>,
|
702
|
-
boost::asio::execution::blocking_t::possibly_t
|
703
|
-
> : boost::asio::detail::thread_pool_bits
|
704
|
-
{
|
705
|
-
static constexpr bool is_valid = true;
|
706
|
-
static constexpr bool is_noexcept = true;
|
707
|
-
typedef boost::asio::thread_pool::basic_executor_type<
|
708
|
-
Allocator, Bits & ~blocking_mask> result_type;
|
709
|
-
};
|
710
|
-
|
711
|
-
template <typename Allocator, unsigned int Bits>
|
712
|
-
struct require_member<
|
713
|
-
boost::asio::thread_pool::basic_executor_type<Allocator, Bits>,
|
714
|
-
boost::asio::execution::blocking_t::always_t
|
715
|
-
> : boost::asio::detail::thread_pool_bits
|
716
|
-
{
|
717
|
-
static constexpr bool is_valid = true;
|
718
|
-
static constexpr bool is_noexcept = false;
|
719
|
-
typedef boost::asio::thread_pool::basic_executor_type<Allocator,
|
720
|
-
(Bits & ~blocking_mask) | blocking_always> result_type;
|
721
|
-
};
|
722
|
-
|
723
|
-
template <typename Allocator, unsigned int Bits>
|
724
|
-
struct require_member<
|
725
|
-
boost::asio::thread_pool::basic_executor_type<Allocator, Bits>,
|
726
|
-
boost::asio::execution::blocking_t::never_t
|
727
|
-
> : boost::asio::detail::thread_pool_bits
|
728
|
-
{
|
729
|
-
static constexpr bool is_valid = true;
|
730
|
-
static constexpr bool is_noexcept = false;
|
731
|
-
typedef boost::asio::thread_pool::basic_executor_type<
|
732
|
-
Allocator, Bits & ~blocking_mask> result_type;
|
733
|
-
};
|
734
|
-
|
735
|
-
template <typename Allocator, unsigned int Bits>
|
736
|
-
struct require_member<
|
737
|
-
boost::asio::thread_pool::basic_executor_type<Allocator, Bits>,
|
738
|
-
boost::asio::execution::relationship_t::fork_t
|
739
|
-
>
|
740
|
-
{
|
741
|
-
static constexpr bool is_valid = true;
|
742
|
-
static constexpr bool is_noexcept = false;
|
743
|
-
typedef boost::asio::thread_pool::basic_executor_type<
|
744
|
-
Allocator, Bits> result_type;
|
745
|
-
};
|
746
|
-
|
747
|
-
template <typename Allocator, unsigned int Bits>
|
748
|
-
struct require_member<
|
749
|
-
boost::asio::thread_pool::basic_executor_type<Allocator, Bits>,
|
750
|
-
boost::asio::execution::relationship_t::continuation_t
|
751
|
-
>
|
752
|
-
{
|
753
|
-
static constexpr bool is_valid = true;
|
754
|
-
static constexpr bool is_noexcept = false;
|
755
|
-
typedef boost::asio::thread_pool::basic_executor_type<
|
756
|
-
Allocator, Bits> result_type;
|
757
|
-
};
|
758
|
-
|
759
|
-
template <typename Allocator, unsigned int Bits>
|
760
|
-
struct require_member<
|
761
|
-
boost::asio::thread_pool::basic_executor_type<Allocator, Bits>,
|
762
|
-
boost::asio::execution::outstanding_work_t::tracked_t
|
763
|
-
> : boost::asio::detail::thread_pool_bits
|
764
|
-
{
|
765
|
-
static constexpr bool is_valid = true;
|
766
|
-
static constexpr bool is_noexcept = false;
|
767
|
-
typedef boost::asio::thread_pool::basic_executor_type<
|
768
|
-
Allocator, Bits | outstanding_work_tracked> result_type;
|
769
|
-
};
|
770
|
-
|
771
|
-
template <typename Allocator, unsigned int Bits>
|
772
|
-
struct require_member<
|
773
|
-
boost::asio::thread_pool::basic_executor_type<Allocator, Bits>,
|
774
|
-
boost::asio::execution::outstanding_work_t::untracked_t
|
775
|
-
> : boost::asio::detail::thread_pool_bits
|
776
|
-
{
|
777
|
-
static constexpr bool is_valid = true;
|
778
|
-
static constexpr bool is_noexcept = false;
|
779
|
-
typedef boost::asio::thread_pool::basic_executor_type<
|
780
|
-
Allocator, Bits & ~outstanding_work_tracked> result_type;
|
781
|
-
};
|
782
|
-
|
783
|
-
template <typename Allocator, unsigned int Bits>
|
784
|
-
struct require_member<
|
785
|
-
boost::asio::thread_pool::basic_executor_type<Allocator, Bits>,
|
786
|
-
boost::asio::execution::allocator_t<void>
|
787
|
-
>
|
788
|
-
{
|
789
|
-
static constexpr bool is_valid = true;
|
790
|
-
static constexpr bool is_noexcept = false;
|
791
|
-
typedef boost::asio::thread_pool::basic_executor_type<
|
792
|
-
std::allocator<void>, Bits> result_type;
|
793
|
-
};
|
794
|
-
|
795
|
-
template <unsigned int Bits,
|
796
|
-
typename Allocator, typename OtherAllocator>
|
797
|
-
struct require_member<
|
798
|
-
boost::asio::thread_pool::basic_executor_type<Allocator, Bits>,
|
799
|
-
boost::asio::execution::allocator_t<OtherAllocator>
|
800
|
-
>
|
801
|
-
{
|
802
|
-
static constexpr bool is_valid = true;
|
803
|
-
static constexpr bool is_noexcept = false;
|
804
|
-
typedef boost::asio::thread_pool::basic_executor_type<
|
805
|
-
OtherAllocator, Bits> result_type;
|
806
|
-
};
|
807
|
-
|
808
|
-
#endif // !defined(BOOST_ASIO_HAS_DEDUCED_REQUIRE_MEMBER_TRAIT)
|
809
|
-
|
810
|
-
#if !defined(BOOST_ASIO_HAS_DEDUCED_QUERY_STATIC_CONSTEXPR_MEMBER_TRAIT)
|
811
|
-
|
812
|
-
template <typename Allocator, unsigned int Bits, typename Property>
|
813
|
-
struct query_static_constexpr_member<
|
814
|
-
boost::asio::thread_pool::basic_executor_type<Allocator, Bits>,
|
815
|
-
Property,
|
816
|
-
typename boost::asio::enable_if<
|
817
|
-
boost::asio::is_convertible<
|
818
|
-
Property,
|
819
|
-
boost::asio::execution::outstanding_work_t
|
820
|
-
>::value
|
821
|
-
>::type
|
822
|
-
> : boost::asio::detail::thread_pool_bits
|
823
|
-
{
|
824
|
-
static constexpr bool is_valid = true;
|
825
|
-
static constexpr bool is_noexcept = true;
|
826
|
-
typedef boost::asio::execution::outstanding_work_t result_type;
|
827
|
-
|
828
|
-
static constexpr result_type value() noexcept
|
829
|
-
{
|
830
|
-
return (Bits & outstanding_work_tracked)
|
831
|
-
? execution::outstanding_work_t(execution::outstanding_work.tracked)
|
832
|
-
: execution::outstanding_work_t(execution::outstanding_work.untracked);
|
833
|
-
}
|
834
|
-
};
|
835
|
-
|
836
|
-
template <typename Allocator, unsigned int Bits, typename Property>
|
837
|
-
struct query_static_constexpr_member<
|
838
|
-
boost::asio::thread_pool::basic_executor_type<Allocator, Bits>,
|
839
|
-
Property,
|
840
|
-
typename boost::asio::enable_if<
|
841
|
-
boost::asio::is_convertible<
|
842
|
-
Property,
|
843
|
-
boost::asio::execution::mapping_t
|
844
|
-
>::value
|
845
|
-
>::type
|
846
|
-
>
|
847
|
-
{
|
848
|
-
static constexpr bool is_valid = true;
|
849
|
-
static constexpr bool is_noexcept = true;
|
850
|
-
typedef boost::asio::execution::mapping_t::thread_t result_type;
|
851
|
-
|
852
|
-
static constexpr result_type value() noexcept
|
853
|
-
{
|
854
|
-
return result_type();
|
855
|
-
}
|
856
|
-
};
|
857
|
-
|
858
|
-
#endif // !defined(BOOST_ASIO_HAS_DEDUCED_QUERY_STATIC_CONSTEXPR_MEMBER_TRAIT)
|
859
|
-
|
860
|
-
#if !defined(BOOST_ASIO_HAS_DEDUCED_QUERY_MEMBER_TRAIT)
|
861
|
-
|
862
|
-
template <typename Allocator, unsigned int Bits, typename Property>
|
863
|
-
struct query_member<
|
864
|
-
boost::asio::thread_pool::basic_executor_type<Allocator, Bits>,
|
865
|
-
Property,
|
866
|
-
typename boost::asio::enable_if<
|
867
|
-
boost::asio::is_convertible<
|
868
|
-
Property,
|
869
|
-
boost::asio::execution::blocking_t
|
870
|
-
>::value
|
871
|
-
>::type
|
872
|
-
>
|
873
|
-
{
|
874
|
-
static constexpr bool is_valid = true;
|
875
|
-
static constexpr bool is_noexcept = true;
|
876
|
-
typedef boost::asio::execution::blocking_t result_type;
|
877
|
-
};
|
878
|
-
|
879
|
-
template <typename Allocator, unsigned int Bits, typename Property>
|
880
|
-
struct query_member<
|
881
|
-
boost::asio::thread_pool::basic_executor_type<Allocator, Bits>,
|
882
|
-
Property,
|
883
|
-
typename boost::asio::enable_if<
|
884
|
-
boost::asio::is_convertible<
|
885
|
-
Property,
|
886
|
-
boost::asio::execution::relationship_t
|
887
|
-
>::value
|
888
|
-
>::type
|
889
|
-
>
|
890
|
-
{
|
891
|
-
static constexpr bool is_valid = true;
|
892
|
-
static constexpr bool is_noexcept = true;
|
893
|
-
typedef boost::asio::execution::relationship_t result_type;
|
894
|
-
};
|
895
|
-
|
896
|
-
template <typename Allocator, unsigned int Bits>
|
897
|
-
struct query_member<
|
898
|
-
boost::asio::thread_pool::basic_executor_type<Allocator, Bits>,
|
899
|
-
boost::asio::execution::occupancy_t
|
900
|
-
>
|
901
|
-
{
|
902
|
-
static constexpr bool is_valid = true;
|
903
|
-
static constexpr bool is_noexcept = true;
|
904
|
-
typedef std::size_t result_type;
|
905
|
-
};
|
906
|
-
|
907
|
-
template <typename Allocator, unsigned int Bits>
|
908
|
-
struct query_member<
|
909
|
-
boost::asio::thread_pool::basic_executor_type<Allocator, Bits>,
|
910
|
-
boost::asio::execution::context_t
|
911
|
-
>
|
912
|
-
{
|
913
|
-
static constexpr bool is_valid = true;
|
914
|
-
static constexpr bool is_noexcept = true;
|
915
|
-
typedef boost::asio::thread_pool& result_type;
|
916
|
-
};
|
917
|
-
|
918
|
-
template <typename Allocator, unsigned int Bits>
|
919
|
-
struct query_member<
|
920
|
-
boost::asio::thread_pool::basic_executor_type<Allocator, Bits>,
|
921
|
-
boost::asio::execution::allocator_t<void>
|
922
|
-
>
|
923
|
-
{
|
924
|
-
static constexpr bool is_valid = true;
|
925
|
-
static constexpr bool is_noexcept = true;
|
926
|
-
typedef Allocator result_type;
|
927
|
-
};
|
928
|
-
|
929
|
-
template <typename Allocator, unsigned int Bits, typename OtherAllocator>
|
930
|
-
struct query_member<
|
931
|
-
boost::asio::thread_pool::basic_executor_type<Allocator, Bits>,
|
932
|
-
boost::asio::execution::allocator_t<OtherAllocator>
|
933
|
-
>
|
934
|
-
{
|
935
|
-
static constexpr bool is_valid = true;
|
936
|
-
static constexpr bool is_noexcept = true;
|
937
|
-
typedef Allocator result_type;
|
938
|
-
};
|
939
|
-
|
940
|
-
#endif // !defined(BOOST_ASIO_HAS_DEDUCED_QUERY_MEMBER_TRAIT)
|
941
|
-
|
942
|
-
} // namespace traits
|
943
|
-
|
944
|
-
namespace execution {
|
945
|
-
|
946
|
-
template <>
|
947
|
-
struct is_executor<thread_pool> : false_type
|
948
|
-
{
|
949
|
-
};
|
950
|
-
|
951
|
-
} // namespace execution
|
952
|
-
|
953
|
-
#endif // !defined(GENERATING_DOCUMENTATION)
|
954
|
-
|
955
|
-
} // namespace asio
|
956
|
-
} // namespace boost
|
957
|
-
|
958
|
-
#include <boost/asio/detail/pop_options.hpp>
|
959
|
-
|
960
|
-
#include <boost/asio/impl/thread_pool.hpp>
|
961
|
-
#if defined(BOOST_ASIO_HEADER_ONLY)
|
962
|
-
# include <boost/asio/impl/thread_pool.ipp>
|
963
|
-
#endif // defined(BOOST_ASIO_HEADER_ONLY)
|
964
|
-
|
965
|
-
#endif // BOOST_ASIO_THREAD_POOL_HPP
|