passenger 5.3.3 → 5.3.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1070) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG +8 -0
  3. data/build/support/cxx_dependency_map.rb +151 -83
  4. data/dev/configkit-schemas/index.json +3 -3
  5. data/src/agent/Core/AdminPanelConnector.h +5 -3
  6. data/src/agent/Core/ApplicationPool/Common.h +1 -2
  7. data/src/agent/Core/ApplicationPool/Context.h +1 -2
  8. data/src/agent/Core/ApplicationPool/Group/InternalUtils.cpp +2 -2
  9. data/src/agent/Core/ApplicationPool/Pool/InitializationAndShutdown.cpp +2 -2
  10. data/src/agent/Core/Config.h +1 -1
  11. data/src/agent/Core/Controller.h +2 -1
  12. data/src/agent/Core/Controller/Config.h +6 -5
  13. data/src/agent/Core/Controller/Hooks.cpp +11 -0
  14. data/src/agent/Core/Controller/SendRequest.cpp +7 -7
  15. data/src/agent/Core/CoreMain.cpp +0 -2
  16. data/src/agent/Core/SpawningKit/Context.h +1 -3
  17. data/src/agent/Core/SpawningKit/Handshake/BackgroundIOCapturer.h +2 -2
  18. data/src/agent/Core/SpawningKit/Handshake/Perform.h +2 -2
  19. data/src/agent/Core/SpawningKit/Handshake/Prepare.h +17 -38
  20. data/src/agent/Core/SpawningKit/PipeWatcher.h +5 -3
  21. data/src/agent/Core/SpawningKit/UserSwitchingRules.h +13 -5
  22. data/src/agent/Shared/ApiServerUtils.h +2 -2
  23. data/src/agent/SpawnEnvSetupper/SpawnEnvSetupperMain.cpp +33 -18
  24. data/src/agent/Watchdog/Config.h +1 -1
  25. data/src/agent/Watchdog/WatchdogMain.cpp +20 -20
  26. data/src/apache2_module/Config.cpp +7 -6
  27. data/src/cxx_supportlib/ConfigKit/Store.h +2 -2
  28. data/src/cxx_supportlib/Constants.h +1 -1
  29. data/src/cxx_supportlib/Exceptions.h +0 -1
  30. data/src/cxx_supportlib/FileTools/PathSecurityCheck.cpp +3 -2
  31. data/src/cxx_supportlib/ResourceLocator.h +3 -21
  32. data/src/cxx_supportlib/SafeLibev.h +6 -6
  33. data/src/cxx_supportlib/ServerKit/Channel.h +2 -2
  34. data/src/cxx_supportlib/ServerKit/FileBufferedChannel.h +3 -3
  35. data/src/cxx_supportlib/ServerKit/FileBufferedFdSinkChannel.h +2 -2
  36. data/src/cxx_supportlib/ServerKit/HttpServer.h +27 -15
  37. data/src/cxx_supportlib/ServerKit/Server.h +2 -2
  38. data/src/cxx_supportlib/SystemTools/README.md +1 -0
  39. data/src/cxx_supportlib/SystemTools/UserDatabase.cpp +222 -0
  40. data/src/cxx_supportlib/SystemTools/UserDatabase.h +151 -0
  41. data/src/cxx_supportlib/Utils.cpp +1 -113
  42. data/src/cxx_supportlib/Utils.h +1 -29
  43. data/src/cxx_supportlib/Utils/MessagePassing.h +3 -3
  44. data/src/cxx_supportlib/WatchdogLauncher.h +1 -2
  45. data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/detail/case_conv.hpp +6 -2
  46. data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/detail/find_iterator.hpp +1 -1
  47. data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/detail/util.hpp +3 -2
  48. data/src/cxx_supportlib/vendor-modified/boost/asio.hpp +31 -1
  49. data/src/cxx_supportlib/vendor-modified/boost/asio/associated_allocator.hpp +133 -0
  50. data/src/cxx_supportlib/vendor-modified/boost/asio/associated_executor.hpp +151 -0
  51. data/src/cxx_supportlib/vendor-modified/boost/asio/async_result.hpp +149 -22
  52. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_datagram_socket.hpp +140 -49
  53. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_deadline_timer.hpp +145 -35
  54. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_io_object.hpp +75 -41
  55. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_raw_socket.hpp +139 -49
  56. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_seq_packet_socket.hpp +98 -45
  57. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_serial_port.hpp +42 -49
  58. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_signal_set.hpp +45 -38
  59. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket.hpp +349 -109
  60. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket_acceptor.hpp +959 -108
  61. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket_iostream.hpp +198 -54
  62. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket_streambuf.hpp +424 -284
  63. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_stream_socket.hpp +116 -47
  64. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_streambuf.hpp +99 -16
  65. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_streambuf_fwd.hpp +4 -1
  66. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_waitable_timer.hpp +235 -49
  67. data/src/cxx_supportlib/vendor-modified/boost/asio/bind_executor.hpp +613 -0
  68. data/src/cxx_supportlib/vendor-modified/boost/asio/buffer.hpp +1139 -1216
  69. data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_read_stream.hpp +27 -14
  70. data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_read_stream_fwd.hpp +1 -1
  71. data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_stream.hpp +26 -6
  72. data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_stream_fwd.hpp +1 -1
  73. data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_write_stream.hpp +27 -14
  74. data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_write_stream_fwd.hpp +1 -1
  75. data/src/cxx_supportlib/vendor-modified/boost/asio/buffers_iterator.hpp +61 -21
  76. data/src/cxx_supportlib/vendor-modified/boost/asio/completion_condition.hpp +1 -1
  77. data/src/cxx_supportlib/vendor-modified/boost/asio/connect.hpp +462 -226
  78. data/src/cxx_supportlib/vendor-modified/boost/asio/coroutine.hpp +7 -7
  79. data/src/cxx_supportlib/vendor-modified/boost/asio/datagram_socket_service.hpp +94 -64
  80. data/src/cxx_supportlib/vendor-modified/boost/asio/deadline_timer.hpp +1 -1
  81. data/src/cxx_supportlib/vendor-modified/boost/asio/deadline_timer_service.hpp +20 -18
  82. data/src/cxx_supportlib/vendor-modified/boost/asio/defer.hpp +109 -0
  83. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/array.hpp +1 -1
  84. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/array_fwd.hpp +1 -1
  85. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/assert.hpp +1 -1
  86. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/atomic_count.hpp +1 -1
  87. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/base_from_completion_cond.hpp +1 -1
  88. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/bind_handler.hpp +404 -77
  89. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/buffer_resize_guard.hpp +1 -1
  90. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/buffer_sequence_adapter.hpp +212 -51
  91. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/buffered_stream_storage.hpp +1 -1
  92. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/call_stack.hpp +2 -2
  93. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/chrono.hpp +68 -0
  94. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/chrono_time_traits.hpp +1 -1
  95. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/completion_handler.hpp +8 -6
  96. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/concurrency_hint.hpp +94 -0
  97. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/conditionally_enabled_event.hpp +114 -0
  98. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/conditionally_enabled_mutex.hpp +151 -0
  99. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/config.hpp +398 -13
  100. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/consuming_buffers.hpp +287 -165
  101. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/cstddef.hpp +33 -0
  102. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/cstdint.hpp +15 -1
  103. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/date_time_fwd.hpp +1 -1
  104. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/deadline_timer_service.hpp +65 -14
  105. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/dependent_type.hpp +1 -1
  106. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/descriptor_ops.hpp +5 -1
  107. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/descriptor_read_op.hpp +17 -8
  108. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/descriptor_write_op.hpp +17 -8
  109. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/dev_poll_reactor.hpp +27 -15
  110. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/epoll_reactor.hpp +41 -17
  111. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/event.hpp +1 -1
  112. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/eventfd_select_interrupter.hpp +1 -1
  113. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/executor_op.hpp +86 -0
  114. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/fd_set_adapter.hpp +1 -1
  115. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/fenced_block.hpp +1 -1
  116. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/{function.hpp → functional.hpp} +10 -10
  117. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/gcc_arm_fenced_block.hpp +3 -1
  118. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/gcc_hppa_fenced_block.hpp +3 -1
  119. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/gcc_sync_fenced_block.hpp +3 -1
  120. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/gcc_x86_fenced_block.hpp +3 -1
  121. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/global.hpp +54 -0
  122. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_alloc_helpers.hpp +158 -3
  123. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_cont_helpers.hpp +2 -2
  124. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_invoke_helpers.hpp +2 -2
  125. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_tracking.hpp +90 -9
  126. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_type_requirements.hpp +117 -39
  127. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_work.hpp +97 -0
  128. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/hash_map.hpp +1 -1
  129. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/buffer_sequence_adapter.ipp +6 -6
  130. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/descriptor_ops.ipp +24 -1
  131. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/dev_poll_reactor.hpp +17 -4
  132. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/dev_poll_reactor.ipp +34 -18
  133. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/epoll_reactor.hpp +17 -4
  134. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/epoll_reactor.ipp +152 -51
  135. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/eventfd_select_interrupter.ipp +1 -1
  136. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/handler_tracking.ipp +80 -27
  137. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/kqueue_reactor.hpp +19 -6
  138. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/kqueue_reactor.ipp +93 -23
  139. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/null_event.ipp +76 -0
  140. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/pipe_select_interrupter.ipp +1 -1
  141. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_event.ipp +13 -1
  142. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_mutex.ipp +1 -1
  143. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_thread.ipp +11 -1
  144. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_tss_ptr.ipp +1 -1
  145. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/reactive_descriptor_service.ipp +27 -13
  146. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/reactive_serial_port_service.ipp +7 -6
  147. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/reactive_socket_service_base.ipp +43 -10
  148. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/resolver_service_base.ipp +54 -30
  149. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/{task_io_service.ipp → scheduler.ipp} +167 -70
  150. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/select_reactor.hpp +17 -4
  151. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/select_reactor.ipp +46 -26
  152. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/service_registry.hpp +36 -30
  153. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/service_registry.ipp +39 -30
  154. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/signal_set_service.ipp +43 -21
  155. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/socket_ops.ipp +129 -26
  156. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/socket_select_interrupter.ipp +1 -1
  157. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_executor_service.hpp +181 -0
  158. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_executor_service.ipp +136 -0
  159. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_service.hpp +13 -13
  160. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_service.ipp +15 -14
  161. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/throw_error.ipp +1 -1
  162. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/timer_queue_ptime.ipp +12 -5
  163. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/timer_queue_set.ipp +1 -1
  164. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_control.hpp +1 -51
  165. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/is_buffer_sequence.hpp +241 -0
  166. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/is_executor.hpp +128 -0
  167. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/keyword_tss_ptr.hpp +1 -1
  168. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/kqueue_reactor.hpp +36 -14
  169. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/local_free_on_block_exit.hpp +1 -1
  170. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/macos_fenced_block.hpp +2 -1
  171. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/memory.hpp +42 -1
  172. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/mutex.hpp +1 -1
  173. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/noncopyable.hpp +1 -1
  174. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_event.hpp +17 -5
  175. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_fenced_block.hpp +3 -1
  176. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_global.hpp +61 -0
  177. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_mutex.hpp +1 -1
  178. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_reactor.hpp +10 -9
  179. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_signal_blocker.hpp +1 -1
  180. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_socket_service.hpp +29 -19
  181. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_static_mutex.hpp +1 -1
  182. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_thread.hpp +7 -1
  183. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_tss_ptr.hpp +1 -1
  184. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/object_pool.hpp +26 -1
  185. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/old_win_sdk_compat.hpp +1 -1
  186. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/op_queue.hpp +7 -1
  187. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/operation.hpp +3 -3
  188. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/pipe_select_interrupter.hpp +1 -1
  189. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/pop_options.hpp +5 -1
  190. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_event.hpp +37 -1
  191. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_fd_set_adapter.hpp +1 -1
  192. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_global.hpp +82 -0
  193. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_mutex.hpp +1 -1
  194. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_signal_blocker.hpp +1 -1
  195. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_static_mutex.hpp +1 -1
  196. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_thread.hpp +5 -1
  197. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_tss_ptr.hpp +1 -1
  198. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/push_options.hpp +10 -1
  199. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_descriptor_service.hpp +86 -20
  200. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_null_buffers_op.hpp +9 -7
  201. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_serial_port_service.hpp +10 -8
  202. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_accept_op.hpp +101 -20
  203. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_connect_op.hpp +14 -7
  204. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_recv_op.hpp +20 -8
  205. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_recvfrom_op.hpp +13 -8
  206. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_recvmsg_op.hpp +15 -8
  207. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_send_op.hpp +25 -11
  208. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_sendto_op.hpp +15 -8
  209. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_service.hpp +99 -31
  210. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_service_base.hpp +96 -35
  211. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_wait_op.hpp +92 -0
  212. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor.hpp +2 -2
  213. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor_fwd.hpp +2 -2
  214. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor_op.hpp +7 -3
  215. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor_op_queue.hpp +1 -1
  216. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/recycling_allocator.hpp +106 -0
  217. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/regex_fwd.hpp +1 -1
  218. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolve_endpoint_op.hpp +25 -24
  219. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolve_op.hpp +6 -92
  220. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolve_query_op.hpp +136 -0
  221. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolver_service.hpp +38 -22
  222. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolver_service_base.hpp +30 -19
  223. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/{task_io_service.hpp → scheduler.hpp} +57 -45
  224. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/{task_io_service_operation.hpp → scheduler_operation.hpp} +19 -17
  225. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/{task_io_service_thread_info.hpp → scheduler_thread_info.hpp} +10 -10
  226. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scoped_lock.hpp +1 -1
  227. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scoped_ptr.hpp +9 -1
  228. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/select_interrupter.hpp +1 -1
  229. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/select_reactor.hpp +37 -18
  230. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/service_registry.hpp +54 -34
  231. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_blocker.hpp +1 -1
  232. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_handler.hpp +9 -5
  233. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_init.hpp +1 -1
  234. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_op.hpp +1 -1
  235. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_set_service.hpp +14 -13
  236. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_holder.hpp +1 -1
  237. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_ops.hpp +9 -6
  238. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_option.hpp +1 -1
  239. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_select_interrupter.hpp +1 -1
  240. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_types.hpp +10 -2
  241. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/solaris_fenced_block.hpp +2 -1
  242. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/static_mutex.hpp +1 -1
  243. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_event.hpp +1 -1
  244. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_fenced_block.hpp +1 -1
  245. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_global.hpp +72 -0
  246. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_mutex.hpp +1 -1
  247. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_static_mutex.hpp +1 -1
  248. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_thread.hpp +7 -1
  249. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/strand_executor_service.hpp +144 -0
  250. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/strand_service.hpp +10 -10
  251. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/string_view.hpp +49 -0
  252. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread.hpp +9 -5
  253. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread_context.hpp +44 -0
  254. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread_group.hpp +91 -0
  255. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread_info_base.hpp +45 -15
  256. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/throw_error.hpp +1 -1
  257. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/throw_exception.hpp +1 -1
  258. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue.hpp +29 -2
  259. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue_base.hpp +1 -1
  260. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue_ptime.hpp +11 -5
  261. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue_set.hpp +1 -1
  262. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_scheduler.hpp +2 -2
  263. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_scheduler_fwd.hpp +2 -2
  264. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/tss_ptr.hpp +1 -1
  265. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/type_traits.hpp +29 -1
  266. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/variadic_templates.hpp +74 -18
  267. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/wait_handler.hpp +8 -6
  268. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/wait_op.hpp +1 -1
  269. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/winsock_init.hpp +1 -1
  270. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/work_dispatcher.hpp +74 -0
  271. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/wrapped_handler.hpp +1 -1
  272. data/src/cxx_supportlib/vendor-modified/boost/asio/dispatch.hpp +110 -0
  273. data/src/cxx_supportlib/vendor-modified/boost/asio/error.hpp +17 -1
  274. data/src/cxx_supportlib/vendor-modified/boost/asio/execution_context.hpp +413 -0
  275. data/src/cxx_supportlib/vendor-modified/boost/asio/executor.hpp +343 -0
  276. data/src/cxx_supportlib/vendor-modified/boost/asio/executor_work_guard.hpp +172 -0
  277. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental.hpp +22 -0
  278. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/co_spawn.hpp +228 -0
  279. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detached.hpp +67 -0
  280. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/co_spawn.hpp +878 -0
  281. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/detached.hpp +93 -0
  282. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/redirect_error.hpp +296 -0
  283. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/redirect_error.hpp +69 -0
  284. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/basic_endpoint.hpp +1 -1
  285. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/datagram_protocol.hpp +1 -1
  286. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/detail/endpoint.hpp +1 -1
  287. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/detail/impl/endpoint.ipp +3 -2
  288. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/raw_protocol.hpp +1 -1
  289. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/seq_packet_protocol.hpp +1 -1
  290. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/stream_protocol.hpp +1 -1
  291. data/src/cxx_supportlib/vendor-modified/boost/asio/handler_alloc_hook.hpp +1 -1
  292. data/src/cxx_supportlib/vendor-modified/boost/asio/handler_continuation_hook.hpp +1 -1
  293. data/src/cxx_supportlib/vendor-modified/boost/asio/handler_invoke_hook.hpp +4 -4
  294. data/src/cxx_supportlib/vendor-modified/boost/asio/handler_type.hpp +11 -73
  295. data/src/cxx_supportlib/vendor-modified/boost/asio/high_resolution_timer.hpp +4 -23
  296. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/buffered_read_stream.hpp +86 -15
  297. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/buffered_write_stream.hpp +92 -19
  298. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/connect.hpp +549 -119
  299. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/defer.hpp +79 -0
  300. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/dispatch.hpp +80 -0
  301. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/error.ipp +1 -1
  302. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/execution_context.hpp +109 -0
  303. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/execution_context.ipp +84 -0
  304. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/executor.hpp +388 -0
  305. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/executor.ipp +40 -0
  306. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/handler_alloc_hook.ipp +7 -32
  307. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/io_context.hpp +347 -0
  308. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/io_context.ipp +176 -0
  309. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/post.hpp +79 -0
  310. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read.hpp +341 -379
  311. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_at.hpp +173 -343
  312. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_until.hpp +559 -206
  313. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/serial_port_base.hpp +1 -1
  314. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/serial_port_base.ipp +30 -30
  315. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/spawn.hpp +254 -72
  316. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/src.cpp +1 -1
  317. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/src.hpp +12 -4
  318. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/system_context.hpp +36 -0
  319. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/system_context.ipp +75 -0
  320. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/system_executor.hpp +87 -0
  321. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/thread_pool.hpp +129 -0
  322. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/thread_pool.ipp +78 -0
  323. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/use_future.hpp +855 -94
  324. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/write.hpp +358 -449
  325. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/write_at.hpp +165 -418
  326. data/src/cxx_supportlib/vendor-modified/boost/asio/io_context.hpp +878 -0
  327. data/src/cxx_supportlib/vendor-modified/boost/asio/io_context_strand.hpp +386 -0
  328. data/src/cxx_supportlib/vendor-modified/boost/asio/io_service.hpp +6 -743
  329. data/src/cxx_supportlib/vendor-modified/boost/asio/io_service_strand.hpp +20 -0
  330. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address.hpp +79 -19
  331. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v4.hpp +111 -23
  332. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v4_iterator.hpp +164 -0
  333. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v4_range.hpp +136 -0
  334. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v6.hpp +104 -14
  335. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v6_iterator.hpp +185 -0
  336. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v6_range.hpp +131 -0
  337. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/bad_address_cast.hpp +50 -0
  338. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_endpoint.hpp +5 -5
  339. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver.hpp +821 -71
  340. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_entry.hpp +23 -4
  341. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_iterator.hpp +31 -99
  342. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_query.hpp +1 -1
  343. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_results.hpp +313 -0
  344. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/detail/endpoint.hpp +2 -2
  345. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/detail/impl/endpoint.ipp +5 -10
  346. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/detail/socket_option.hpp +16 -19
  347. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/host_name.hpp +1 -1
  348. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/icmp.hpp +1 -1
  349. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address.hpp +28 -14
  350. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address.ipp +55 -47
  351. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v4.hpp +28 -14
  352. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v4.ipp +76 -44
  353. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v6.hpp +28 -14
  354. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v6.ipp +85 -33
  355. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/basic_endpoint.hpp +2 -14
  356. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/host_name.ipp +1 -1
  357. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/network_v4.hpp +56 -0
  358. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/network_v4.ipp +218 -0
  359. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/network_v6.hpp +55 -0
  360. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/network_v6.ipp +187 -0
  361. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/multicast.hpp +8 -8
  362. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/network_v4.hpp +263 -0
  363. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/network_v6.hpp +237 -0
  364. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/resolver_base.hpp +131 -0
  365. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/resolver_query_base.hpp +3 -90
  366. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/resolver_service.hpp +48 -24
  367. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/tcp.hpp +3 -3
  368. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/udp.hpp +1 -1
  369. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/unicast.hpp +3 -3
  370. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/v6_only.hpp +3 -3
  371. data/src/cxx_supportlib/vendor-modified/boost/asio/is_executor.hpp +48 -0
  372. data/src/cxx_supportlib/vendor-modified/boost/asio/is_read_buffered.hpp +1 -1
  373. data/src/cxx_supportlib/vendor-modified/boost/asio/is_write_buffered.hpp +1 -1
  374. data/src/cxx_supportlib/vendor-modified/boost/asio/local/basic_endpoint.hpp +1 -1
  375. data/src/cxx_supportlib/vendor-modified/boost/asio/local/connect_pair.hpp +23 -21
  376. data/src/cxx_supportlib/vendor-modified/boost/asio/local/datagram_protocol.hpp +1 -1
  377. data/src/cxx_supportlib/vendor-modified/boost/asio/local/detail/endpoint.hpp +1 -1
  378. data/src/cxx_supportlib/vendor-modified/boost/asio/local/detail/impl/endpoint.ipp +3 -2
  379. data/src/cxx_supportlib/vendor-modified/boost/asio/local/stream_protocol.hpp +1 -1
  380. data/src/cxx_supportlib/vendor-modified/boost/asio/packaged_task.hpp +128 -0
  381. data/src/cxx_supportlib/vendor-modified/boost/asio/placeholders.hpp +30 -2
  382. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/basic_descriptor.hpp +138 -46
  383. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/basic_stream_descriptor.hpp +15 -15
  384. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/descriptor.hpp +646 -0
  385. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/descriptor_base.hpp +17 -24
  386. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/stream_descriptor.hpp +326 -3
  387. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/stream_descriptor_service.hpp +63 -44
  388. data/src/cxx_supportlib/vendor-modified/boost/asio/post.hpp +109 -0
  389. data/src/cxx_supportlib/vendor-modified/boost/asio/raw_socket_service.hpp +94 -64
  390. data/src/cxx_supportlib/vendor-modified/boost/asio/read.hpp +328 -12
  391. data/src/cxx_supportlib/vendor-modified/boost/asio/read_at.hpp +13 -6
  392. data/src/cxx_supportlib/vendor-modified/boost/asio/read_until.hpp +1148 -247
  393. data/src/cxx_supportlib/vendor-modified/boost/asio/seq_packet_socket_service.hpp +88 -56
  394. data/src/cxx_supportlib/vendor-modified/boost/asio/serial_port.hpp +736 -3
  395. data/src/cxx_supportlib/vendor-modified/boost/asio/serial_port_base.hpp +11 -11
  396. data/src/cxx_supportlib/vendor-modified/boost/asio/serial_port_service.hpp +41 -45
  397. data/src/cxx_supportlib/vendor-modified/boost/asio/signal_set.hpp +422 -3
  398. data/src/cxx_supportlib/vendor-modified/boost/asio/signal_set_service.hpp +32 -24
  399. data/src/cxx_supportlib/vendor-modified/boost/asio/socket_acceptor_service.hpp +114 -48
  400. data/src/cxx_supportlib/vendor-modified/boost/asio/socket_base.hpp +85 -46
  401. data/src/cxx_supportlib/vendor-modified/boost/asio/spawn.hpp +89 -18
  402. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl.hpp +1 -4
  403. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/context.hpp +33 -62
  404. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/context_base.hpp +1 -1
  405. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/buffered_handshake_op.hpp +27 -23
  406. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/engine.hpp +10 -14
  407. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/handshake_op.hpp +2 -8
  408. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/impl/engine.ipp +22 -25
  409. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/impl/openssl_init.ipp +5 -4
  410. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/io.hpp +40 -17
  411. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/openssl_init.hpp +2 -2
  412. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/openssl_types.hpp +1 -1
  413. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/password_callback.hpp +4 -10
  414. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/read_op.hpp +3 -9
  415. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/shutdown_op.hpp +2 -8
  416. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/stream_core.hpp +27 -19
  417. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/verify_callback.hpp +2 -8
  418. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/write_op.hpp +3 -9
  419. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/error.hpp +1 -1
  420. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/context.hpp +8 -12
  421. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/context.ipp +86 -102
  422. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/error.ipp +1 -1
  423. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/rfc2818_verification.ipp +7 -13
  424. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/src.hpp +1 -1
  425. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/rfc2818_verification.hpp +7 -13
  426. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/stream.hpp +90 -85
  427. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/stream_base.hpp +1 -1
  428. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/verify_context.hpp +3 -9
  429. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/verify_mode.hpp +1 -1
  430. data/src/cxx_supportlib/vendor-modified/boost/asio/steady_timer.hpp +4 -23
  431. data/src/cxx_supportlib/vendor-modified/boost/asio/strand.hpp +209 -175
  432. data/src/cxx_supportlib/vendor-modified/boost/asio/stream_socket_service.hpp +88 -56
  433. data/src/cxx_supportlib/vendor-modified/boost/asio/streambuf.hpp +1 -1
  434. data/src/cxx_supportlib/vendor-modified/boost/asio/system_context.hpp +80 -0
  435. data/src/cxx_supportlib/vendor-modified/boost/asio/system_executor.hpp +131 -0
  436. data/src/cxx_supportlib/vendor-modified/boost/asio/system_timer.hpp +4 -19
  437. data/src/cxx_supportlib/vendor-modified/boost/asio/thread_pool.hpp +234 -0
  438. data/src/cxx_supportlib/vendor-modified/boost/asio/time_traits.hpp +1 -1
  439. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/buffer.hpp +24 -0
  440. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/executor.hpp +35 -0
  441. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/internet.hpp +40 -0
  442. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/io_context.hpp +20 -0
  443. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/net.hpp +26 -0
  444. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/netfwd.hpp +199 -0
  445. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/socket.hpp +27 -0
  446. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/timer.hpp +26 -0
  447. data/src/cxx_supportlib/vendor-modified/boost/asio/unyield.hpp +1 -1
  448. data/src/cxx_supportlib/vendor-modified/boost/asio/use_future.hpp +70 -3
  449. data/src/cxx_supportlib/vendor-modified/boost/asio/uses_executor.hpp +73 -0
  450. data/src/cxx_supportlib/vendor-modified/boost/asio/version.hpp +2 -2
  451. data/src/cxx_supportlib/vendor-modified/boost/asio/wait_traits.hpp +17 -2
  452. data/src/cxx_supportlib/vendor-modified/boost/asio/waitable_timer_service.hpp +62 -20
  453. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_handle.hpp +22 -30
  454. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_object_handle.hpp +14 -10
  455. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_random_access_handle.hpp +15 -15
  456. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_stream_handle.hpp +15 -15
  457. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/object_handle.hpp +346 -3
  458. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/object_handle_service.hpp +26 -20
  459. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/overlapped_handle.hpp +333 -0
  460. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/overlapped_ptr.hpp +6 -6
  461. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/random_access_handle.hpp +344 -3
  462. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/random_access_handle_service.hpp +31 -37
  463. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/stream_handle.hpp +328 -3
  464. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/stream_handle_service.hpp +29 -37
  465. data/src/cxx_supportlib/vendor-modified/boost/asio/write.hpp +321 -12
  466. data/src/cxx_supportlib/vendor-modified/boost/asio/write_at.hpp +13 -6
  467. data/src/cxx_supportlib/vendor-modified/boost/asio/yield.hpp +1 -1
  468. data/src/cxx_supportlib/vendor-modified/boost/atomic/atomic.hpp +11 -0
  469. data/src/cxx_supportlib/vendor-modified/boost/atomic/capabilities.hpp +50 -1
  470. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/addressof.hpp +58 -0
  471. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/atomic_flag.hpp +1 -0
  472. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/atomic_template.hpp +688 -220
  473. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/bitwise_cast.hpp +25 -21
  474. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/bitwise_fp_cast.hpp +86 -0
  475. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_gcc_arm.hpp +1 -18
  476. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_gcc_atomic.hpp +9 -10
  477. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_gcc_ppc.hpp +2 -1
  478. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_gcc_sync.hpp +7 -8
  479. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_gcc_x86.hpp +1 -36
  480. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/config.hpp +108 -34
  481. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_fp_operations.hpp +28 -0
  482. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_fp_operations_fwd.hpp +35 -0
  483. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_fp_ops_emulated.hpp +107 -0
  484. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_fp_ops_generic.hpp +189 -0
  485. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_operations.hpp +28 -0
  486. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_operations_fwd.hpp +35 -0
  487. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_emulated.hpp +238 -0
  488. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_gcc_arm.hpp +1111 -0
  489. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_gcc_ppc.hpp +840 -0
  490. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_gcc_x86.hpp +1656 -0
  491. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_generic.hpp +402 -0
  492. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_msvc_arm.hpp +106 -0
  493. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_msvc_x86.hpp +1301 -0
  494. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/float_sizes.hpp +142 -0
  495. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fp_operations.hpp +28 -0
  496. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fp_operations_fwd.hpp +35 -0
  497. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fp_ops_emulated.hpp +72 -0
  498. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fp_ops_generic.hpp +83 -0
  499. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/hwcaps_gcc_arm.hpp +67 -0
  500. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/hwcaps_gcc_ppc.hpp +42 -0
  501. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/hwcaps_gcc_x86.hpp +58 -0
  502. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/int_sizes.hpp +3 -3
  503. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/integral_extend.hpp +105 -0
  504. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/interlocked.hpp +35 -1
  505. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/operations_lockfree.hpp +1 -1
  506. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_cas_based.hpp +2 -0
  507. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_emulated.hpp +8 -9
  508. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_extending_cas_based.hpp +8 -7
  509. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_alpha.hpp +14 -16
  510. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_arm.hpp +548 -126
  511. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_arm_common.hpp +134 -0
  512. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_atomic.hpp +36 -44
  513. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_ppc.hpp +524 -96
  514. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_ppc_common.hpp +70 -0
  515. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_sparc.hpp +14 -16
  516. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_sync.hpp +27 -59
  517. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_x86.hpp +104 -57
  518. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_x86_dcas.hpp +268 -340
  519. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_linux_arm.hpp +9 -9
  520. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_msvc_arm.hpp +22 -24
  521. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_msvc_x86.hpp +55 -80
  522. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/platform.hpp +88 -46
  523. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/storage_type.hpp +30 -103
  524. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/string_ops.hpp +61 -0
  525. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/conditional.hpp +42 -0
  526. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/integral_constant.hpp +46 -0
  527. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_floating_point.hpp +42 -0
  528. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_function.hpp +42 -0
  529. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_iec559.hpp +47 -0
  530. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_integral.hpp +43 -0
  531. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_signed.hpp +43 -0
  532. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_trivially_default_constructible.hpp +46 -0
  533. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/make_signed.hpp +43 -0
  534. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/make_unsigned.hpp +43 -0
  535. data/src/cxx_supportlib/vendor-modified/boost/bind/bind.hpp +37 -0
  536. data/src/cxx_supportlib/vendor-modified/boost/bind/bind_cc.hpp +30 -30
  537. data/src/cxx_supportlib/vendor-modified/boost/bind/bind_mf_cc.hpp +36 -36
  538. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/system.hpp +0 -10
  539. data/src/cxx_supportlib/vendor-modified/boost/chrono/duration.hpp +28 -30
  540. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/duration_get.hpp +2 -4
  541. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/duration_io.hpp +1 -1
  542. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/time_point_io.hpp +14 -8
  543. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/time_point_units.hpp +1 -1
  544. data/src/cxx_supportlib/vendor-modified/boost/chrono/io_v1/chrono_io.hpp +2 -4
  545. data/src/cxx_supportlib/vendor-modified/boost/chrono/process_cpu_clocks.hpp +2 -2
  546. data/src/cxx_supportlib/vendor-modified/boost/chrono/time_point.hpp +0 -1
  547. data/src/cxx_supportlib/vendor-modified/boost/circular_buffer/base.hpp +9 -9
  548. data/src/cxx_supportlib/vendor-modified/boost/circular_buffer/details.hpp +7 -6
  549. data/src/cxx_supportlib/vendor-modified/boost/config.hpp +4 -4
  550. data/src/cxx_supportlib/vendor-modified/boost/config/auto_link.hpp +26 -4
  551. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/borland.hpp +12 -0
  552. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/clang.hpp +30 -2
  553. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/codegear.hpp +13 -0
  554. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/common_edg.hpp +11 -0
  555. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/cray.hpp +32 -2
  556. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/diab.hpp +26 -0
  557. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/digitalmars.hpp +11 -0
  558. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/gcc.hpp +33 -6
  559. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/gcc_xml.hpp +11 -0
  560. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/intel.hpp +8 -1
  561. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/metrowerks.hpp +11 -0
  562. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/mpw.hpp +11 -0
  563. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/nvcc.hpp +28 -2
  564. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/pathscale.hpp +17 -1
  565. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/pgi.hpp +8 -142
  566. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/sunpro_cc.hpp +14 -3
  567. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/vacpp.hpp +16 -0
  568. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/visualc.hpp +37 -9
  569. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/xlcpp.hpp +19 -0
  570. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/xlcpp_zos.hpp +169 -0
  571. data/src/cxx_supportlib/vendor-modified/boost/config/{posix_features.hpp → detail/posix_features.hpp} +0 -0
  572. data/src/cxx_supportlib/vendor-modified/boost/config/{select_compiler_config.hpp → detail/select_compiler_config.hpp} +15 -5
  573. data/src/cxx_supportlib/vendor-modified/boost/config/{select_platform_config.hpp → detail/select_platform_config.hpp} +8 -3
  574. data/src/cxx_supportlib/vendor-modified/boost/config/{select_stdlib_config.hpp → detail/select_stdlib_config.hpp} +5 -0
  575. data/src/cxx_supportlib/vendor-modified/boost/config/{suffix.hpp → detail/suffix.hpp} +27 -27
  576. data/src/cxx_supportlib/vendor-modified/boost/config/header_deprecated.hpp +26 -0
  577. data/src/cxx_supportlib/vendor-modified/boost/config/helper_macros.hpp +37 -0
  578. data/src/cxx_supportlib/vendor-modified/boost/config/platform/aix.hpp +1 -1
  579. data/src/cxx_supportlib/vendor-modified/boost/config/platform/beos.hpp +1 -1
  580. data/src/cxx_supportlib/vendor-modified/boost/config/platform/bsd.hpp +1 -1
  581. data/src/cxx_supportlib/vendor-modified/boost/config/platform/cray.hpp +1 -1
  582. data/src/cxx_supportlib/vendor-modified/boost/config/platform/cygwin.hpp +12 -1
  583. data/src/cxx_supportlib/vendor-modified/boost/config/platform/haiku.hpp +1 -1
  584. data/src/cxx_supportlib/vendor-modified/boost/config/platform/hpux.hpp +1 -1
  585. data/src/cxx_supportlib/vendor-modified/boost/config/platform/irix.hpp +1 -1
  586. data/src/cxx_supportlib/vendor-modified/boost/config/platform/linux.hpp +4 -3
  587. data/src/cxx_supportlib/vendor-modified/boost/config/platform/macos.hpp +1 -1
  588. data/src/cxx_supportlib/vendor-modified/boost/config/platform/qnxnto.hpp +1 -1
  589. data/src/cxx_supportlib/vendor-modified/boost/config/platform/solaris.hpp +1 -1
  590. data/src/cxx_supportlib/vendor-modified/boost/config/platform/symbian.hpp +1 -1
  591. data/src/cxx_supportlib/vendor-modified/boost/config/platform/vxworks.hpp +155 -91
  592. data/src/cxx_supportlib/vendor-modified/boost/config/platform/zos.hpp +32 -0
  593. data/src/cxx_supportlib/vendor-modified/boost/config/pragma_message.hpp +31 -0
  594. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/dinkumware.hpp +21 -2
  595. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libcomo.hpp +2 -0
  596. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libcpp.hpp +20 -0
  597. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libstdcpp3.hpp +35 -0
  598. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/modena.hpp +2 -0
  599. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/msl.hpp +3 -1
  600. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/roguewave.hpp +2 -0
  601. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/sgi.hpp +2 -0
  602. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/stlport.hpp +2 -0
  603. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/vacpp.hpp +2 -0
  604. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/xlcpp_zos.hpp +60 -0
  605. data/src/cxx_supportlib/vendor-modified/boost/config/workaround.hpp +279 -0
  606. data/src/cxx_supportlib/vendor-modified/boost/container/adaptive_pool.hpp +19 -19
  607. data/src/cxx_supportlib/vendor-modified/boost/container/allocator.hpp +5 -5
  608. data/src/cxx_supportlib/vendor-modified/boost/container/allocator_traits.hpp +58 -58
  609. data/src/cxx_supportlib/vendor-modified/boost/container/container_fwd.hpp +7 -28
  610. data/src/cxx_supportlib/vendor-modified/boost/container/deque.hpp +57 -57
  611. data/src/cxx_supportlib/vendor-modified/boost/container/detail/adaptive_node_pool.hpp +3 -3
  612. data/src/cxx_supportlib/vendor-modified/boost/container/detail/adaptive_node_pool_impl.hpp +10 -10
  613. data/src/cxx_supportlib/vendor-modified/boost/container/detail/addressof.hpp +2 -2
  614. data/src/cxx_supportlib/vendor-modified/boost/container/detail/advanced_insert_int.hpp +18 -18
  615. data/src/cxx_supportlib/vendor-modified/boost/container/detail/algorithm.hpp +122 -0
  616. data/src/cxx_supportlib/vendor-modified/boost/container/detail/alloc_helpers.hpp +8 -8
  617. data/src/cxx_supportlib/vendor-modified/boost/container/detail/allocator_version_traits.hpp +7 -7
  618. data/src/cxx_supportlib/vendor-modified/boost/container/detail/construct_in_place.hpp +1 -1
  619. data/src/cxx_supportlib/vendor-modified/boost/container/detail/container_or_allocator_rebind.hpp +49 -0
  620. data/src/cxx_supportlib/vendor-modified/boost/container/detail/container_rebind.hpp +258 -0
  621. data/src/cxx_supportlib/vendor-modified/boost/container/detail/copy_move_algo.hpp +119 -134
  622. data/src/cxx_supportlib/vendor-modified/boost/container/detail/destroyers.hpp +15 -15
  623. data/src/cxx_supportlib/vendor-modified/boost/container/detail/dispatch_uses_allocator.hpp +55 -55
  624. data/src/cxx_supportlib/vendor-modified/boost/container/detail/flat_tree.hpp +714 -282
  625. data/src/cxx_supportlib/vendor-modified/boost/container/detail/is_container.hpp +55 -0
  626. data/src/cxx_supportlib/vendor-modified/boost/container/detail/is_contiguous_container.hpp +47 -0
  627. data/src/cxx_supportlib/vendor-modified/boost/container/detail/is_sorted.hpp +2 -2
  628. data/src/cxx_supportlib/vendor-modified/boost/container/detail/iterator.hpp +30 -0
  629. data/src/cxx_supportlib/vendor-modified/boost/container/detail/iterator_to_raw_pointer.hpp +4 -29
  630. data/src/cxx_supportlib/vendor-modified/boost/container/detail/iterators.hpp +9 -9
  631. data/src/cxx_supportlib/vendor-modified/boost/container/detail/math_functions.hpp +2 -2
  632. data/src/cxx_supportlib/vendor-modified/boost/container/detail/min_max.hpp +2 -2
  633. data/src/cxx_supportlib/vendor-modified/boost/container/detail/mpl.hpp +2 -2
  634. data/src/cxx_supportlib/vendor-modified/boost/container/detail/multiallocation_chain.hpp +8 -8
  635. data/src/cxx_supportlib/vendor-modified/boost/container/detail/mutex.hpp +2 -2
  636. data/src/cxx_supportlib/vendor-modified/boost/container/detail/next_capacity.hpp +37 -35
  637. data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_alloc_holder.hpp +41 -41
  638. data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_pool.hpp +4 -4
  639. data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_pool_impl.hpp +4 -4
  640. data/src/cxx_supportlib/vendor-modified/boost/container/detail/pair.hpp +69 -16
  641. data/src/cxx_supportlib/vendor-modified/boost/container/detail/pair_key_mapped_of_value.hpp +55 -0
  642. data/src/cxx_supportlib/vendor-modified/boost/container/detail/pool_common.hpp +2 -2
  643. data/src/cxx_supportlib/vendor-modified/boost/container/detail/pool_common_alloc.hpp +7 -7
  644. data/src/cxx_supportlib/vendor-modified/boost/container/detail/singleton.hpp +2 -2
  645. data/src/cxx_supportlib/vendor-modified/boost/container/detail/transform_iterator.hpp +1 -1
  646. data/src/cxx_supportlib/vendor-modified/boost/container/detail/tree.hpp +180 -116
  647. data/src/cxx_supportlib/vendor-modified/boost/container/detail/type_traits.hpp +2 -2
  648. data/src/cxx_supportlib/vendor-modified/boost/container/detail/value_functors.hpp +36 -0
  649. data/src/cxx_supportlib/vendor-modified/boost/container/detail/value_init.hpp +2 -2
  650. data/src/cxx_supportlib/vendor-modified/boost/container/detail/variadic_templates_tools.hpp +2 -2
  651. data/src/cxx_supportlib/vendor-modified/boost/container/detail/version_type.hpp +8 -8
  652. data/src/cxx_supportlib/vendor-modified/boost/container/detail/workaround.hpp +0 -6
  653. data/src/cxx_supportlib/vendor-modified/boost/container/flat_map.hpp +874 -572
  654. data/src/cxx_supportlib/vendor-modified/boost/container/flat_set.hpp +497 -248
  655. data/src/cxx_supportlib/vendor-modified/boost/container/list.hpp +33 -42
  656. data/src/cxx_supportlib/vendor-modified/boost/container/map.hpp +326 -246
  657. data/src/cxx_supportlib/vendor-modified/boost/container/node_allocator.hpp +19 -19
  658. data/src/cxx_supportlib/vendor-modified/boost/container/node_handle.hpp +122 -78
  659. data/src/cxx_supportlib/vendor-modified/boost/container/options.hpp +165 -0
  660. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/flat_map.hpp +4 -8
  661. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/flat_set.hpp +4 -8
  662. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/map.hpp +4 -4
  663. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/polymorphic_allocator.hpp +6 -6
  664. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/resource_adaptor.hpp +1 -1
  665. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/set.hpp +4 -4
  666. data/src/cxx_supportlib/vendor-modified/boost/container/scoped_allocator.hpp +19 -19
  667. data/src/cxx_supportlib/vendor-modified/boost/container/set.hpp +285 -110
  668. data/src/cxx_supportlib/vendor-modified/boost/container/slist.hpp +35 -53
  669. data/src/cxx_supportlib/vendor-modified/boost/container/small_vector.hpp +18 -19
  670. data/src/cxx_supportlib/vendor-modified/boost/container/stable_vector.hpp +25 -25
  671. data/src/cxx_supportlib/vendor-modified/boost/container/static_vector.hpp +24 -9
  672. data/src/cxx_supportlib/vendor-modified/boost/container/string.hpp +194 -142
  673. data/src/cxx_supportlib/vendor-modified/boost/container/throw_exception.hpp +15 -5
  674. data/src/cxx_supportlib/vendor-modified/boost/container/uses_allocator.hpp +5 -5
  675. data/src/cxx_supportlib/vendor-modified/boost/container/vector.hpp +395 -421
  676. data/src/cxx_supportlib/vendor-modified/boost/{functional/hash → container_hash}/detail/float_functions.hpp +0 -0
  677. data/src/cxx_supportlib/vendor-modified/boost/{functional/hash → container_hash}/detail/hash_float.hpp +4 -4
  678. data/src/cxx_supportlib/vendor-modified/boost/{functional/hash → container_hash}/detail/limits.hpp +0 -0
  679. data/src/cxx_supportlib/vendor-modified/boost/{functional/hash → container_hash}/extensions.hpp +112 -16
  680. data/src/cxx_supportlib/vendor-modified/boost/{functional/hash → container_hash}/hash.hpp +195 -7
  681. data/src/cxx_supportlib/vendor-modified/boost/{functional/hash → container_hash}/hash_fwd.hpp +3 -3
  682. data/src/cxx_supportlib/vendor-modified/boost/core/addressof.hpp +53 -44
  683. data/src/cxx_supportlib/vendor-modified/boost/core/lightweight_test.hpp +80 -2
  684. data/src/cxx_supportlib/vendor-modified/boost/core/no_exceptions_support.hpp +1 -1
  685. data/src/cxx_supportlib/vendor-modified/boost/core/pointer_traits.hpp +233 -0
  686. data/src/cxx_supportlib/vendor-modified/boost/core/ref.hpp +2 -2
  687. data/src/cxx_supportlib/vendor-modified/boost/cstdint.hpp +26 -16
  688. data/src/cxx_supportlib/vendor-modified/boost/date_time/adjust_functors.hpp +20 -34
  689. data/src/cxx_supportlib/vendor-modified/boost/date_time/c_local_time_adjustor.hpp +8 -5
  690. data/src/cxx_supportlib/vendor-modified/boost/date_time/date_duration.hpp +4 -0
  691. data/src/cxx_supportlib/vendor-modified/boost/date_time/date_formatting.hpp +2 -0
  692. data/src/cxx_supportlib/vendor-modified/boost/date_time/date_formatting_locales.hpp +7 -6
  693. data/src/cxx_supportlib/vendor-modified/boost/date_time/dst_rules.hpp +6 -6
  694. data/src/cxx_supportlib/vendor-modified/boost/date_time/filetime_functions.hpp +8 -94
  695. data/src/cxx_supportlib/vendor-modified/boost/date_time/format_date_parser.hpp +1 -8
  696. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_day.hpp +3 -3
  697. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_facet.hpp +6 -4
  698. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_month.hpp +3 -3
  699. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_weekday.hpp +2 -2
  700. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_year.hpp +6 -6
  701. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/gregorian_io.hpp +52 -52
  702. data/src/cxx_supportlib/vendor-modified/boost/date_time/int_adapter.hpp +14 -27
  703. data/src/cxx_supportlib/vendor-modified/boost/date_time/local_time/custom_time_zone.hpp +0 -1
  704. data/src/cxx_supportlib/vendor-modified/boost/date_time/locale_config.hpp +3 -1
  705. data/src/cxx_supportlib/vendor-modified/boost/date_time/microsec_time_clock.hpp +36 -5
  706. data/src/cxx_supportlib/vendor-modified/boost/date_time/period_formatter.hpp +10 -9
  707. data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/conversion.hpp +10 -12
  708. data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/posix_time_duration.hpp +18 -10
  709. data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/posix_time_io.hpp +12 -12
  710. data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/time_serialize.hpp +65 -20
  711. data/src/cxx_supportlib/vendor-modified/boost/date_time/special_values_parser.hpp +32 -23
  712. data/src/cxx_supportlib/vendor-modified/boost/date_time/string_parse_tree.hpp +6 -5
  713. data/src/cxx_supportlib/vendor-modified/boost/date_time/time_duration.hpp +10 -7
  714. data/src/cxx_supportlib/vendor-modified/boost/date_time/time_facet.hpp +8 -3
  715. data/src/cxx_supportlib/vendor-modified/boost/date_time/time_parsing.hpp +20 -0
  716. data/src/cxx_supportlib/vendor-modified/boost/date_time/time_resolution_traits.hpp +31 -8
  717. data/src/cxx_supportlib/vendor-modified/boost/date_time/time_system_split.hpp +10 -4
  718. data/src/cxx_supportlib/vendor-modified/boost/date_time/tz_db_base.hpp +3 -1
  719. data/src/cxx_supportlib/vendor-modified/boost/detail/workaround.hpp +2 -264
  720. data/src/cxx_supportlib/vendor-modified/boost/enable_shared_from_this.hpp +1 -1
  721. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/error_info_impl.hpp +38 -21
  722. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/exception_ptr.hpp +10 -9
  723. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/is_output_streamable.hpp +3 -2
  724. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/object_hex_dump.hpp +7 -6
  725. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/type_info.hpp +7 -6
  726. data/src/cxx_supportlib/vendor-modified/boost/exception/diagnostic_information.hpp +10 -7
  727. data/src/cxx_supportlib/vendor-modified/boost/exception/get_error_info.hpp +8 -6
  728. data/src/cxx_supportlib/vendor-modified/boost/exception/info.hpp +13 -47
  729. data/src/cxx_supportlib/vendor-modified/boost/exception/to_string.hpp +5 -4
  730. data/src/cxx_supportlib/vendor-modified/boost/exception/to_string_stub.hpp +5 -4
  731. data/src/cxx_supportlib/vendor-modified/boost/function.hpp +12 -4
  732. data/src/cxx_supportlib/vendor-modified/boost/function/detail/gen_maybe_include.pl +2 -0
  733. data/src/cxx_supportlib/vendor-modified/boost/function/detail/maybe_include.hpp +102 -0
  734. data/src/cxx_supportlib/vendor-modified/boost/function/function_base.hpp +20 -0
  735. data/src/cxx_supportlib/vendor-modified/boost/function/function_template.hpp +9 -0
  736. data/src/cxx_supportlib/vendor-modified/boost/functional/hash.hpp +1 -2
  737. data/src/cxx_supportlib/vendor-modified/boost/functional/hash_fwd.hpp +1 -6
  738. data/src/cxx_supportlib/vendor-modified/boost/integer/common_factor_rt.hpp +508 -390
  739. data/src/cxx_supportlib/vendor-modified/boost/integer/integer_mask.hpp +9 -1
  740. data/src/cxx_supportlib/vendor-modified/boost/integer_fwd.hpp +3 -0
  741. data/src/cxx_supportlib/vendor-modified/boost/intrusive/bstree.hpp +11 -3
  742. data/src/cxx_supportlib/vendor-modified/boost/intrusive/circular_list_algorithms.hpp +1 -1
  743. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/config_begin.hpp +7 -20
  744. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/default_header_holder.hpp +2 -2
  745. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/ebo_functor_holder.hpp +1 -1
  746. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hashtable_node.hpp +1 -1
  747. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hook_traits.hpp +5 -5
  748. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/iterator.hpp +108 -2
  749. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/mpl.hpp +15 -5
  750. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/node_to_value.hpp +1 -1
  751. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/tree_value_compare.hpp +8 -4
  752. data/src/cxx_supportlib/vendor-modified/boost/intrusive/hashtable.hpp +147 -64
  753. data/src/cxx_supportlib/vendor-modified/boost/intrusive/list.hpp +9 -2
  754. data/src/cxx_supportlib/vendor-modified/boost/intrusive/member_value_traits.hpp +3 -3
  755. data/src/cxx_supportlib/vendor-modified/boost/intrusive/pointer_plus_bits.hpp +15 -0
  756. data/src/cxx_supportlib/vendor-modified/boost/intrusive/pointer_traits.hpp +2 -2
  757. data/src/cxx_supportlib/vendor-modified/boost/intrusive/slist.hpp +9 -2
  758. data/src/cxx_supportlib/vendor-modified/boost/intrusive_ptr.hpp +1 -1
  759. data/src/cxx_supportlib/vendor-modified/boost/iterator/advance.hpp +84 -0
  760. data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_adaptor.hpp +0 -2
  761. data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_categories.hpp +3 -2
  762. data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_concepts.hpp +8 -10
  763. data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_facade.hpp +2 -1
  764. data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_traits.hpp +7 -6
  765. data/src/cxx_supportlib/vendor-modified/boost/iterator/reverse_iterator.hpp +7 -4
  766. data/src/cxx_supportlib/vendor-modified/boost/iterator/transform_iterator.hpp +6 -2
  767. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical_streams.hpp +7 -7
  768. data/src/cxx_supportlib/vendor-modified/boost/libs/thread/src/pthread/once_atomic.cpp +1 -1
  769. data/src/cxx_supportlib/vendor-modified/boost/libs/thread/src/pthread/thread.cpp +36 -92
  770. data/src/cxx_supportlib/vendor-modified/boost/make_shared.hpp +1 -2
  771. data/src/cxx_supportlib/vendor-modified/boost/math/special_functions/detail/fp_traits.hpp +2 -1
  772. data/src/cxx_supportlib/vendor-modified/boost/math/special_functions/math_fwd.hpp +57 -3
  773. data/src/cxx_supportlib/vendor-modified/boost/math/special_functions/sign.hpp +1 -1
  774. data/src/cxx_supportlib/vendor-modified/boost/math/tools/config.hpp +12 -1
  775. data/src/cxx_supportlib/vendor-modified/boost/memory_order.hpp +40 -9
  776. data/src/cxx_supportlib/vendor-modified/boost/move/adl_move_swap.hpp +6 -0
  777. data/src/cxx_supportlib/vendor-modified/boost/move/algo/adaptive_merge.hpp +253 -0
  778. data/src/cxx_supportlib/vendor-modified/boost/move/algo/adaptive_sort.hpp +563 -4
  779. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/adaptive_sort_merge.hpp +324 -1071
  780. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/basic_op.hpp +10 -10
  781. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/heap_sort.hpp +111 -0
  782. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/insertion_sort.hpp +12 -11
  783. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/is_sorted.hpp +55 -0
  784. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/merge.hpp +59 -143
  785. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/merge_sort.hpp +6 -6
  786. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/pdqsort.hpp +334 -0
  787. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/set_difference.hpp +207 -0
  788. data/src/cxx_supportlib/vendor-modified/boost/move/algo/move.hpp +2 -1
  789. data/src/cxx_supportlib/vendor-modified/boost/move/algo/predicate.hpp +86 -0
  790. data/src/cxx_supportlib/vendor-modified/boost/move/algo/unique.hpp +55 -0
  791. data/src/cxx_supportlib/vendor-modified/boost/move/core.hpp +1 -9
  792. data/src/cxx_supportlib/vendor-modified/boost/move/detail/destruct_n.hpp +3 -4
  793. data/src/cxx_supportlib/vendor-modified/boost/move/detail/fwd_macros.hpp +25 -0
  794. data/src/cxx_supportlib/vendor-modified/boost/move/detail/iterator_to_raw_pointer.hpp +59 -0
  795. data/src/cxx_supportlib/vendor-modified/boost/{intrusive → move}/detail/pointer_element.hpp +12 -12
  796. data/src/cxx_supportlib/vendor-modified/boost/move/detail/to_raw_pointer.hpp +45 -0
  797. data/src/cxx_supportlib/vendor-modified/boost/move/detail/type_traits.hpp +19 -5
  798. data/src/cxx_supportlib/vendor-modified/boost/move/detail/unique_ptr_meta_utils.hpp +1 -1
  799. data/src/cxx_supportlib/vendor-modified/boost/mpl/assert.hpp +1 -1
  800. data/src/cxx_supportlib/vendor-modified/boost/mpl/get_tag.hpp +26 -0
  801. data/src/cxx_supportlib/vendor-modified/boost/next_prior.hpp +85 -55
  802. data/src/cxx_supportlib/vendor-modified/boost/numeric/conversion/cast.hpp +1 -1
  803. data/src/cxx_supportlib/vendor-modified/boost/numeric/conversion/conversion_traits.hpp +0 -7
  804. data/src/cxx_supportlib/vendor-modified/boost/numeric/conversion/detail/converter.hpp +4 -13
  805. data/src/cxx_supportlib/vendor-modified/boost/operators.hpp +26 -7
  806. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/experimental_traits.hpp +98 -0
  807. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/old_optional_implementation.hpp +10 -10
  808. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_aligned_storage.hpp +17 -21
  809. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_config.hpp +25 -6
  810. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_reference_spec.hpp +15 -15
  811. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_relops.hpp +1 -1
  812. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_trivially_copyable_base.hpp +499 -0
  813. data/src/cxx_supportlib/vendor-modified/boost/optional/optional.hpp +126 -21
  814. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/arg_list.hpp +1 -0
  815. data/src/cxx_supportlib/vendor-modified/boost/pointer_cast.hpp +10 -9
  816. data/src/cxx_supportlib/vendor-modified/boost/pointer_to_other.hpp +1 -1
  817. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/arm.h +6 -1
  818. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/parisc.h +1 -1
  819. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/intel.h +8 -1
  820. data/src/cxx_supportlib/vendor-modified/boost/predef/hardware/simd/arm.h +3 -1
  821. data/src/cxx_supportlib/vendor-modified/boost/predef/library/c.h +1 -0
  822. data/src/cxx_supportlib/vendor-modified/boost/predef/library/c/cloudabi.h +53 -0
  823. data/src/cxx_supportlib/vendor-modified/boost/predef/make.h +4 -0
  824. data/src/cxx_supportlib/vendor-modified/boost/predef/os/android.h +2 -2
  825. data/src/cxx_supportlib/vendor-modified/boost/predef/os/bsd/free.h +10 -3
  826. data/src/cxx_supportlib/vendor-modified/boost/predef/os/bsd/open.h +80 -0
  827. data/src/cxx_supportlib/vendor-modified/boost/predef/other/workaround.h +87 -0
  828. data/src/cxx_supportlib/vendor-modified/boost/predef/platform.h +9 -2
  829. data/src/cxx_supportlib/vendor-modified/boost/predef/platform/cloudabi.h +43 -0
  830. data/src/cxx_supportlib/vendor-modified/boost/predef/platform/ios.h +58 -0
  831. data/src/cxx_supportlib/vendor-modified/boost/predef/platform/mingw.h +4 -4
  832. data/src/cxx_supportlib/vendor-modified/boost/predef/platform/mingw32.h +63 -0
  833. data/src/cxx_supportlib/vendor-modified/boost/predef/platform/mingw64.h +63 -0
  834. data/src/cxx_supportlib/vendor-modified/boost/predef/platform/windows_desktop.h +9 -3
  835. data/src/cxx_supportlib/vendor-modified/boost/predef/platform/windows_phone.h +7 -2
  836. data/src/cxx_supportlib/vendor-modified/boost/predef/platform/windows_runtime.h +13 -5
  837. data/src/cxx_supportlib/vendor-modified/boost/predef/platform/windows_server.h +47 -0
  838. data/src/cxx_supportlib/vendor-modified/boost/predef/platform/windows_store.h +11 -4
  839. data/src/cxx_supportlib/vendor-modified/boost/predef/platform/windows_system.h +47 -0
  840. data/src/cxx_supportlib/vendor-modified/boost/predef/platform/windows_uwp.h +60 -0
  841. data/src/cxx_supportlib/vendor-modified/boost/predef/version.h +1 -1
  842. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/config/config.hpp +11 -9
  843. data/src/cxx_supportlib/vendor-modified/boost/random/binomial_distribution.hpp +27 -27
  844. data/src/cxx_supportlib/vendor-modified/boost/random/detail/vector_io.hpp +3 -0
  845. data/src/cxx_supportlib/vendor-modified/boost/random/discrete_distribution.hpp +2 -2
  846. data/src/cxx_supportlib/vendor-modified/boost/random/hyperexponential_distribution.hpp +0 -11
  847. data/src/cxx_supportlib/vendor-modified/boost/random/independent_bits.hpp +12 -0
  848. data/src/cxx_supportlib/vendor-modified/boost/random/linear_congruential.hpp +5 -1
  849. data/src/cxx_supportlib/vendor-modified/boost/random/poisson_distribution.hpp +17 -17
  850. data/src/cxx_supportlib/vendor-modified/boost/random/seed_seq.hpp +1 -1
  851. data/src/cxx_supportlib/vendor-modified/boost/random/uniform_on_sphere.hpp +6 -2
  852. data/src/cxx_supportlib/vendor-modified/boost/range/concepts.hpp +6 -4
  853. data/src/cxx_supportlib/vendor-modified/boost/range/iterator_range_core.hpp +1 -0
  854. data/src/cxx_supportlib/vendor-modified/boost/regex/config.hpp +1 -1
  855. data/src/cxx_supportlib/vendor-modified/boost/regex/pending/object_cache.hpp +2 -2
  856. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex_creator.hpp +2 -2
  857. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex_parser.hpp +56 -11
  858. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/instances.hpp +10 -10
  859. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher.hpp +7 -2
  860. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_common.hpp +6 -1
  861. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_non_recursive.hpp +37 -13
  862. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_recursive.hpp +4 -4
  863. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_traits_defaults.hpp +9 -6
  864. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_workaround.hpp +1 -1
  865. data/src/cxx_supportlib/vendor-modified/boost/scoped_array.hpp +1 -2
  866. data/src/cxx_supportlib/vendor-modified/boost/scoped_ptr.hpp +1 -2
  867. data/src/cxx_supportlib/vendor-modified/boost/shared_array.hpp +1 -1
  868. data/src/cxx_supportlib/vendor-modified/boost/shared_ptr.hpp +1 -1
  869. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/allocate_shared_array.hpp +333 -656
  870. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/bad_weak_ptr.hpp +4 -2
  871. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count_gcc.hpp +1 -1
  872. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/local_counted_base.hpp +148 -0
  873. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/local_sp_deleter.hpp +91 -0
  874. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/operator_bool.hpp +6 -6
  875. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/shared_count.hpp +15 -3
  876. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp +1 -0
  877. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_aix.hpp +1 -0
  878. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_clang.hpp +3 -2
  879. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp +1 -0
  880. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_cw_x86.hpp +1 -0
  881. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp +1 -0
  882. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp +7 -0
  883. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp +1 -0
  884. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp +1 -0
  885. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp +1 -0
  886. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_nt.hpp +1 -0
  887. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_pt.hpp +1 -0
  888. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_snc_ps3.hpp +1 -0
  889. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_solaris.hpp +1 -0
  890. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_spin.hpp +1 -0
  891. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_std_atomic.hpp +3 -2
  892. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_sync.hpp +1 -0
  893. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_vacpp_ppc.hpp +1 -0
  894. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_impl.hpp +29 -0
  895. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_noexcept.hpp +21 -3
  896. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/yield_k.hpp +1 -1
  897. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/enable_shared_from_this.hpp +6 -6
  898. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/intrusive_ptr.hpp +26 -26
  899. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/intrusive_ref_counter.hpp +17 -16
  900. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/make_shared.hpp +1 -2
  901. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/make_shared_object.hpp +19 -19
  902. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/scoped_array.hpp +11 -12
  903. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/scoped_ptr.hpp +15 -16
  904. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/shared_array.hpp +22 -22
  905. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/shared_ptr.hpp +135 -90
  906. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/weak_ptr.hpp +23 -23
  907. data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_code.ipp +140 -111
  908. data/src/cxx_supportlib/vendor-modified/boost/system/error_code.hpp +297 -49
  909. data/src/cxx_supportlib/vendor-modified/boost/system/system_error.hpp +4 -4
  910. data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/detail/sync_deque_base.hpp +30 -30
  911. data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/detail/sync_queue_base.hpp +30 -30
  912. data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/sync_bounded_queue.hpp +4 -2
  913. data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/sync_deque.hpp +5 -7
  914. data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/sync_priority_queue.hpp +19 -19
  915. data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/sync_queue.hpp +5 -15
  916. data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/sync_timed_queue.hpp +118 -183
  917. data/src/cxx_supportlib/vendor-modified/boost/{detail → thread/detail}/atomic_redef_macros.hpp +0 -0
  918. data/src/cxx_supportlib/vendor-modified/boost/{detail → thread/detail}/atomic_undef_macros.hpp +0 -0
  919. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/config.hpp +62 -11
  920. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/log.hpp +15 -0
  921. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/move.hpp +0 -2
  922. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/platform.hpp +2 -0
  923. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/platform_time.hpp +478 -0
  924. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/thread.hpp +51 -85
  925. data/src/cxx_supportlib/vendor-modified/boost/thread/executors/basic_thread_pool.hpp +11 -3
  926. data/src/cxx_supportlib/vendor-modified/boost/thread/executors/detail/priority_executor_base.hpp +10 -4
  927. data/src/cxx_supportlib/vendor-modified/boost/thread/executors/scheduled_thread_pool.hpp +1 -0
  928. data/src/cxx_supportlib/vendor-modified/boost/thread/executors/scheduler.hpp +10 -0
  929. data/src/cxx_supportlib/vendor-modified/boost/thread/executors/scheduling_adaptor.hpp +15 -4
  930. data/src/cxx_supportlib/vendor-modified/boost/thread/executors/serial_executor.hpp +9 -0
  931. data/src/cxx_supportlib/vendor-modified/boost/thread/future.hpp +320 -92
  932. data/src/cxx_supportlib/vendor-modified/boost/thread/once.hpp +10 -0
  933. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/condition_variable.hpp +187 -112
  934. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/condition_variable_fwd.hpp +137 -164
  935. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/mutex.hpp +67 -37
  936. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/pthread_helpers.hpp +42 -0
  937. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/pthread_mutex_scoped_lock.hpp +15 -9
  938. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/recursive_mutex.hpp +65 -33
  939. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/shared_mutex.hpp +84 -158
  940. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/thread_data.hpp +143 -35
  941. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/thread_heap_alloc.hpp +32 -2
  942. data/src/cxx_supportlib/vendor-modified/boost/thread/shared_mutex.hpp +8 -1
  943. data/src/cxx_supportlib/vendor-modified/boost/thread/thread_only.hpp +1 -1
  944. data/src/cxx_supportlib/vendor-modified/boost/thread/v2/shared_mutex.hpp +579 -589
  945. data/src/cxx_supportlib/vendor-modified/boost/token_functions.hpp +2 -1
  946. data/src/cxx_supportlib/vendor-modified/boost/token_iterator.hpp +5 -2
  947. data/src/cxx_supportlib/vendor-modified/boost/tuple/detail/tuple_basic.hpp +7 -9
  948. data/src/cxx_supportlib/vendor-modified/boost/tuple/tuple.hpp +8 -8
  949. data/src/cxx_supportlib/vendor-modified/boost/type_index.hpp +1 -1
  950. data/src/cxx_supportlib/vendor-modified/boost/type_index/stl_type_index.hpp +6 -2
  951. data/src/cxx_supportlib/vendor-modified/boost/type_index/type_index_facade.hpp +5 -8
  952. data/src/cxx_supportlib/vendor-modified/boost/type_traits/add_const.hpp +6 -0
  953. data/src/cxx_supportlib/vendor-modified/boost/type_traits/add_cv.hpp +6 -0
  954. data/src/cxx_supportlib/vendor-modified/boost/type_traits/add_lvalue_reference.hpp +6 -0
  955. data/src/cxx_supportlib/vendor-modified/boost/type_traits/add_pointer.hpp +6 -0
  956. data/src/cxx_supportlib/vendor-modified/boost/type_traits/add_reference.hpp +7 -0
  957. data/src/cxx_supportlib/vendor-modified/boost/type_traits/add_rvalue_reference.hpp +6 -0
  958. data/src/cxx_supportlib/vendor-modified/boost/type_traits/add_volatile.hpp +6 -0
  959. data/src/cxx_supportlib/vendor-modified/boost/type_traits/common_type.hpp +7 -0
  960. data/src/cxx_supportlib/vendor-modified/boost/type_traits/conditional.hpp +8 -0
  961. data/src/cxx_supportlib/vendor-modified/boost/type_traits/copy_cv.hpp +6 -0
  962. data/src/cxx_supportlib/vendor-modified/boost/type_traits/decay.hpp +6 -0
  963. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/config.hpp +12 -1
  964. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/detector.hpp +37 -0
  965. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/has_binary_operator.hpp +71 -14
  966. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/has_postfix_operator.hpp +1 -1
  967. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/has_prefix_operator.hpp +4 -1
  968. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_function_ptr_helper.hpp +370 -102
  969. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_likely_lambda.hpp +94 -0
  970. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp +1177 -572
  971. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_mem_fun_pointer_tester.hpp +2 -2
  972. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detected.hpp +24 -0
  973. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detected_or.hpp +25 -0
  974. data/src/cxx_supportlib/vendor-modified/boost/type_traits/floating_point_promotion.hpp +8 -0
  975. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_equal_to.hpp +3 -0
  976. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_greater.hpp +3 -0
  977. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_greater_equal.hpp +3 -0
  978. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_less.hpp +3 -0
  979. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_less_equal.hpp +3 -0
  980. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_minus.hpp +93 -0
  981. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_minus_assign.hpp +95 -2
  982. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_not_equal_to.hpp +3 -0
  983. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_nothrow_destructor.hpp +11 -2
  984. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_plus_assign.hpp +90 -0
  985. data/src/cxx_supportlib/vendor-modified/boost/type_traits/integral_constant.hpp +2 -1
  986. data/src/cxx_supportlib/vendor-modified/boost/type_traits/integral_promotion.hpp +6 -0
  987. data/src/cxx_supportlib/vendor-modified/boost/type_traits/intrinsics.hpp +2 -1
  988. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_assignable.hpp +10 -2
  989. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_complete.hpp +90 -0
  990. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_complex.hpp +1 -0
  991. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_constructible.hpp +12 -2
  992. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_convertible.hpp +20 -2
  993. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_default_constructible.hpp +16 -2
  994. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_destructible.hpp +10 -2
  995. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_detected.hpp +29 -0
  996. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_detected_convertible.hpp +29 -0
  997. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_detected_exact.hpp +29 -0
  998. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_list_constructible.hpp +48 -0
  999. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_nothrow_move_assignable.hpp +14 -3
  1000. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_nothrow_move_constructible.hpp +14 -4
  1001. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_nothrow_swappable.hpp +67 -0
  1002. data/src/cxx_supportlib/vendor-modified/boost/type_traits/make_signed.hpp +6 -0
  1003. data/src/cxx_supportlib/vendor-modified/boost/type_traits/make_unsigned.hpp +6 -0
  1004. data/src/cxx_supportlib/vendor-modified/boost/type_traits/nonesuch.hpp +35 -0
  1005. data/src/cxx_supportlib/vendor-modified/boost/type_traits/promote.hpp +6 -0
  1006. data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_all_extents.hpp +6 -0
  1007. data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_bounds.hpp +7 -0
  1008. data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_const.hpp +6 -0
  1009. data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_cv.hpp +5 -0
  1010. data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_cv_ref.hpp +30 -0
  1011. data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_extent.hpp +6 -0
  1012. data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_pointer.hpp +7 -0
  1013. data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_reference.hpp +5 -0
  1014. data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_volatile.hpp +5 -0
  1015. data/src/cxx_supportlib/vendor-modified/boost/type_traits/type_identity.hpp +9 -0
  1016. data/src/cxx_supportlib/vendor-modified/boost/type_traits/type_with_alignment.hpp +2 -3
  1017. data/src/cxx_supportlib/vendor-modified/boost/typeof/decltype.hpp +34 -0
  1018. data/src/cxx_supportlib/vendor-modified/boost/typeof/msvc/typeof_impl.hpp +5 -85
  1019. data/src/cxx_supportlib/vendor-modified/boost/typeof/register_fundamental.hpp +1 -2
  1020. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/functional.hpp +6 -0
  1021. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/memory.hpp +2 -0
  1022. data/src/cxx_supportlib/vendor-modified/boost/typeof/typeof.hpp +24 -14
  1023. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/fwd.hpp +18 -12
  1024. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/implementation.hpp +4018 -4052
  1025. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/map.hpp +57 -97
  1026. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/set.hpp +56 -95
  1027. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_map.hpp +2150 -1777
  1028. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_map_fwd.hpp +41 -38
  1029. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_set.hpp +1630 -1420
  1030. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_set_fwd.hpp +40 -37
  1031. data/src/cxx_supportlib/vendor-modified/boost/utility.hpp +6 -3
  1032. data/src/cxx_supportlib/vendor-modified/boost/utility/detail/minstd_rand.hpp +55 -0
  1033. data/src/cxx_supportlib/vendor-modified/boost/utility/detail/result_of_iterate.hpp +14 -17
  1034. data/src/cxx_supportlib/vendor-modified/boost/utility/result_of.hpp +44 -20
  1035. data/src/cxx_supportlib/vendor-modified/boost/utility/string_view.hpp +30 -30
  1036. data/src/cxx_supportlib/vendor-modified/boost/version.hpp +2 -2
  1037. data/src/cxx_supportlib/vendor-modified/boost/weak_ptr.hpp +1 -1
  1038. data/src/ruby_supportlib/phusion_passenger.rb +1 -1
  1039. data/src/ruby_supportlib/phusion_passenger/common_library.rb +3 -0
  1040. data/src/ruby_supportlib/phusion_passenger/platform_info/compiler.rb +8 -1
  1041. data/src/ruby_supportlib/phusion_passenger/platform_info/cxx_portability.rb +7 -1
  1042. data/src/ruby_supportlib/phusion_passenger/request_handler/thread_handler.rb +2 -2
  1043. data/src/ruby_supportlib/phusion_passenger/utils/tee_input.rb +4 -4
  1044. metadata +201 -47
  1045. data/src/cxx_supportlib/ConfigKit/VariantMapUtils.h +0 -96
  1046. data/src/cxx_supportlib/MessageClient.h +0 -309
  1047. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/addressof.hpp +0 -40
  1048. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/task_io_service.hpp +0 -80
  1049. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/shared_ptr.hpp +0 -40
  1050. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/weak_ptr.hpp +0 -40
  1051. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/win_iocp_serial_port_service.hpp +0 -230
  1052. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/io_service.hpp +0 -156
  1053. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/io_service.ipp +0 -157
  1054. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/basic_context.hpp +0 -42
  1055. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/context_service.hpp +0 -42
  1056. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/old/basic_context.hpp +0 -436
  1057. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/old/context_service.hpp +0 -176
  1058. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/old/detail/openssl_context_service.hpp +0 -396
  1059. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/old/detail/openssl_operation.hpp +0 -526
  1060. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/old/detail/openssl_stream_service.hpp +0 -573
  1061. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/old/stream.hpp +0 -503
  1062. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/old/stream_service.hpp +0 -186
  1063. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/stream_service.hpp +0 -42
  1064. data/src/cxx_supportlib/vendor-modified/boost/container/detail/to_raw_pointer.hpp +0 -33
  1065. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/to_raw_pointer.hpp +0 -47
  1066. data/src/cxx_supportlib/vendor-modified/boost/iterator.hpp +0 -20
  1067. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/shared_mutex_assert.hpp +0 -724
  1068. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/timespec.hpp +0 -149
  1069. data/src/cxx_supportlib/vendor-modified/boost/thread/v2/thread.hpp +0 -155
  1070. data/src/cxx_supportlib/vendor-modified/boost/utility/empty_deleter.hpp +0 -43
@@ -2,7 +2,7 @@
2
2
  // basic_socket_acceptor.hpp
3
3
  // ~~~~~~~~~~~~~~~~~~~~~~~~~
4
4
  //
5
- // Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com)
5
+ // Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6
6
  //
7
7
  // Distributed under the Boost Software License, Version 1.0. (See accompanying
8
8
  // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -22,9 +22,27 @@
22
22
  #include <boost/asio/detail/throw_error.hpp>
23
23
  #include <boost/asio/detail/type_traits.hpp>
24
24
  #include <boost/asio/error.hpp>
25
- #include <boost/asio/socket_acceptor_service.hpp>
26
25
  #include <boost/asio/socket_base.hpp>
27
26
 
27
+ #if defined(BOOST_ASIO_HAS_MOVE)
28
+ # include <utility>
29
+ #endif // defined(BOOST_ASIO_HAS_MOVE)
30
+
31
+ #if defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
32
+ # include <boost/asio/socket_acceptor_service.hpp>
33
+ #else // defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
34
+ # if defined(BOOST_ASIO_WINDOWS_RUNTIME)
35
+ # include <boost/asio/detail/null_socket_service.hpp>
36
+ # define BOOST_ASIO_SVC_T detail::null_socket_service<Protocol>
37
+ # elif defined(BOOST_ASIO_HAS_IOCP)
38
+ # include <boost/asio/detail/win_iocp_socket_service.hpp>
39
+ # define BOOST_ASIO_SVC_T detail::win_iocp_socket_service<Protocol>
40
+ # else
41
+ # include <boost/asio/detail/reactive_socket_service.hpp>
42
+ # define BOOST_ASIO_SVC_T detail::reactive_socket_service<Protocol>
43
+ # endif
44
+ #endif // defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
45
+
28
46
  #include <boost/asio/detail/push_options.hpp>
29
47
 
30
48
  namespace boost {
@@ -42,7 +60,7 @@ namespace asio {
42
60
  * @par Example
43
61
  * Opening a socket acceptor with the SO_REUSEADDR option enabled:
44
62
  * @code
45
- * boost::asio::ip::tcp::acceptor acceptor(io_service);
63
+ * boost::asio::ip::tcp::acceptor acceptor(io_context);
46
64
  * boost::asio::ip::tcp::endpoint endpoint(boost::asio::ip::tcp::v4(), port);
47
65
  * acceptor.open(endpoint.protocol());
48
66
  * acceptor.set_option(boost::asio::ip::tcp::acceptor::reuse_address(true));
@@ -50,19 +68,22 @@ namespace asio {
50
68
  * acceptor.listen();
51
69
  * @endcode
52
70
  */
53
- template <typename Protocol,
54
- typename SocketAcceptorService = socket_acceptor_service<Protocol> >
71
+ template <typename Protocol
72
+ BOOST_ASIO_SVC_TPARAM_DEF1(= socket_acceptor_service<Protocol>)>
55
73
  class basic_socket_acceptor
56
- : public basic_io_object<SocketAcceptorService>,
74
+ : BOOST_ASIO_SVC_ACCESS basic_io_object<BOOST_ASIO_SVC_T>,
57
75
  public socket_base
58
76
  {
59
77
  public:
60
- /// (Deprecated: Use native_handle_type.) The native representation of an
61
- /// acceptor.
62
- typedef typename SocketAcceptorService::native_handle_type native_type;
78
+ /// The type of the executor associated with the object.
79
+ typedef io_context::executor_type executor_type;
63
80
 
64
81
  /// The native representation of an acceptor.
65
- typedef typename SocketAcceptorService::native_handle_type native_handle_type;
82
+ #if defined(GENERATING_DOCUMENTATION)
83
+ typedef implementation_defined native_handle_type;
84
+ #else
85
+ typedef typename BOOST_ASIO_SVC_T::native_handle_type native_handle_type;
86
+ #endif
66
87
 
67
88
  /// The protocol type.
68
89
  typedef Protocol protocol_type;
@@ -76,12 +97,12 @@ public:
76
97
  * connections. The open() function must be called before the acceptor can
77
98
  * accept new socket connections.
78
99
  *
79
- * @param io_service The io_service object that the acceptor will use to
100
+ * @param io_context The io_context object that the acceptor will use to
80
101
  * dispatch handlers for any asynchronous operations performed on the
81
102
  * acceptor.
82
103
  */
83
- explicit basic_socket_acceptor(boost::asio::io_service& io_service)
84
- : basic_io_object<SocketAcceptorService>(io_service)
104
+ explicit basic_socket_acceptor(boost::asio::io_context& io_context)
105
+ : basic_io_object<BOOST_ASIO_SVC_T>(io_context)
85
106
  {
86
107
  }
87
108
 
@@ -89,7 +110,7 @@ public:
89
110
  /**
90
111
  * This constructor creates an acceptor and automatically opens it.
91
112
  *
92
- * @param io_service The io_service object that the acceptor will use to
113
+ * @param io_context The io_context object that the acceptor will use to
93
114
  * dispatch handlers for any asynchronous operations performed on the
94
115
  * acceptor.
95
116
  *
@@ -97,9 +118,9 @@ public:
97
118
  *
98
119
  * @throws boost::system::system_error Thrown on failure.
99
120
  */
100
- basic_socket_acceptor(boost::asio::io_service& io_service,
121
+ basic_socket_acceptor(boost::asio::io_context& io_context,
101
122
  const protocol_type& protocol)
102
- : basic_io_object<SocketAcceptorService>(io_service)
123
+ : basic_io_object<BOOST_ASIO_SVC_T>(io_context)
103
124
  {
104
125
  boost::system::error_code ec;
105
126
  this->get_service().open(this->get_implementation(), protocol, ec);
@@ -111,7 +132,7 @@ public:
111
132
  * This constructor creates an acceptor and automatically opens it to listen
112
133
  * for new connections on the specified endpoint.
113
134
  *
114
- * @param io_service The io_service object that the acceptor will use to
135
+ * @param io_context The io_context object that the acceptor will use to
115
136
  * dispatch handlers for any asynchronous operations performed on the
116
137
  * acceptor.
117
138
  *
@@ -125,7 +146,7 @@ public:
125
146
  *
126
147
  * @note This constructor is equivalent to the following code:
127
148
  * @code
128
- * basic_socket_acceptor<Protocol> acceptor(io_service);
149
+ * basic_socket_acceptor<Protocol> acceptor(io_context);
129
150
  * acceptor.open(endpoint.protocol());
130
151
  * if (reuse_addr)
131
152
  * acceptor.set_option(socket_base::reuse_address(true));
@@ -133,9 +154,9 @@ public:
133
154
  * acceptor.listen(listen_backlog);
134
155
  * @endcode
135
156
  */
136
- basic_socket_acceptor(boost::asio::io_service& io_service,
157
+ basic_socket_acceptor(boost::asio::io_context& io_context,
137
158
  const endpoint_type& endpoint, bool reuse_addr = true)
138
- : basic_io_object<SocketAcceptorService>(io_service)
159
+ : basic_io_object<BOOST_ASIO_SVC_T>(io_context)
139
160
  {
140
161
  boost::system::error_code ec;
141
162
  const protocol_type protocol = endpoint.protocol();
@@ -150,7 +171,7 @@ public:
150
171
  this->get_service().bind(this->get_implementation(), endpoint, ec);
151
172
  boost::asio::detail::throw_error(ec, "bind");
152
173
  this->get_service().listen(this->get_implementation(),
153
- socket_base::max_connections, ec);
174
+ socket_base::max_listen_connections, ec);
154
175
  boost::asio::detail::throw_error(ec, "listen");
155
176
  }
156
177
 
@@ -159,7 +180,7 @@ public:
159
180
  * This constructor creates an acceptor object to hold an existing native
160
181
  * acceptor.
161
182
  *
162
- * @param io_service The io_service object that the acceptor will use to
183
+ * @param io_context The io_context object that the acceptor will use to
163
184
  * dispatch handlers for any asynchronous operations performed on the
164
185
  * acceptor.
165
186
  *
@@ -169,9 +190,9 @@ public:
169
190
  *
170
191
  * @throws boost::system::system_error Thrown on failure.
171
192
  */
172
- basic_socket_acceptor(boost::asio::io_service& io_service,
193
+ basic_socket_acceptor(boost::asio::io_context& io_context,
173
194
  const protocol_type& protocol, const native_handle_type& native_acceptor)
174
- : basic_io_object<SocketAcceptorService>(io_service)
195
+ : basic_io_object<BOOST_ASIO_SVC_T>(io_context)
175
196
  {
176
197
  boost::system::error_code ec;
177
198
  this->get_service().assign(this->get_implementation(),
@@ -188,11 +209,10 @@ public:
188
209
  * will occur.
189
210
  *
190
211
  * @note Following the move, the moved-from object is in the same state as if
191
- * constructed using the @c basic_socket_acceptor(io_service&) constructor.
212
+ * constructed using the @c basic_socket_acceptor(io_context&) constructor.
192
213
  */
193
214
  basic_socket_acceptor(basic_socket_acceptor&& other)
194
- : basic_io_object<SocketAcceptorService>(
195
- BOOST_ASIO_MOVE_CAST(basic_socket_acceptor)(other))
215
+ : basic_io_object<BOOST_ASIO_SVC_T>(std::move(other))
196
216
  {
197
217
  }
198
218
 
@@ -204,17 +224,16 @@ public:
204
224
  * will occur.
205
225
  *
206
226
  * @note Following the move, the moved-from object is in the same state as if
207
- * constructed using the @c basic_socket_acceptor(io_service&) constructor.
227
+ * constructed using the @c basic_socket_acceptor(io_context&) constructor.
208
228
  */
209
229
  basic_socket_acceptor& operator=(basic_socket_acceptor&& other)
210
230
  {
211
- basic_io_object<SocketAcceptorService>::operator=(
212
- BOOST_ASIO_MOVE_CAST(basic_socket_acceptor)(other));
231
+ basic_io_object<BOOST_ASIO_SVC_T>::operator=(std::move(other));
213
232
  return *this;
214
233
  }
215
234
 
216
235
  // All socket acceptors have access to each other's implementations.
217
- template <typename Protocol1, typename SocketAcceptorService1>
236
+ template <typename Protocol1 BOOST_ASIO_SVC_TPARAM1>
218
237
  friend class basic_socket_acceptor;
219
238
 
220
239
  /// Move-construct a basic_socket_acceptor from an acceptor of another
@@ -226,13 +245,13 @@ public:
226
245
  * will occur.
227
246
  *
228
247
  * @note Following the move, the moved-from object is in the same state as if
229
- * constructed using the @c basic_socket(io_service&) constructor.
248
+ * constructed using the @c basic_socket(io_context&) constructor.
230
249
  */
231
- template <typename Protocol1, typename SocketAcceptorService1>
250
+ template <typename Protocol1 BOOST_ASIO_SVC_TPARAM1>
232
251
  basic_socket_acceptor(
233
- basic_socket_acceptor<Protocol1, SocketAcceptorService1>&& other,
252
+ basic_socket_acceptor<Protocol1 BOOST_ASIO_SVC_TARG1>&& other,
234
253
  typename enable_if<is_convertible<Protocol1, Protocol>::value>::type* = 0)
235
- : basic_io_object<SocketAcceptorService>(
254
+ : basic_io_object<BOOST_ASIO_SVC_T>(
236
255
  other.get_service(), other.get_implementation())
237
256
  {
238
257
  }
@@ -246,21 +265,69 @@ public:
246
265
  * will occur.
247
266
  *
248
267
  * @note Following the move, the moved-from object is in the same state as if
249
- * constructed using the @c basic_socket(io_service&) constructor.
268
+ * constructed using the @c basic_socket(io_context&) constructor.
250
269
  */
251
- template <typename Protocol1, typename SocketAcceptorService1>
270
+ template <typename Protocol1 BOOST_ASIO_SVC_TPARAM1>
252
271
  typename enable_if<is_convertible<Protocol1, Protocol>::value,
253
272
  basic_socket_acceptor>::type& operator=(
254
- basic_socket_acceptor<Protocol1, SocketAcceptorService1>&& other)
273
+ basic_socket_acceptor<Protocol1 BOOST_ASIO_SVC_TARG1>&& other)
255
274
  {
256
- basic_socket_acceptor tmp(BOOST_ASIO_MOVE_CAST2(basic_socket_acceptor<
257
- Protocol1, SocketAcceptorService1>)(other));
258
- basic_io_object<SocketAcceptorService>::operator=(
259
- BOOST_ASIO_MOVE_CAST(basic_socket_acceptor)(tmp));
275
+ basic_socket_acceptor tmp(std::move(other));
276
+ basic_io_object<BOOST_ASIO_SVC_T>::operator=(std::move(tmp));
260
277
  return *this;
261
278
  }
262
279
  #endif // defined(BOOST_ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION)
263
280
 
281
+ /// Destroys the acceptor.
282
+ /**
283
+ * This function destroys the acceptor, cancelling any outstanding
284
+ * asynchronous operations associated with the acceptor as if by calling
285
+ * @c cancel.
286
+ */
287
+ ~basic_socket_acceptor()
288
+ {
289
+ }
290
+
291
+ #if defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
292
+ // These functions are provided by basic_io_object<>.
293
+ #else // defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
294
+ #if !defined(BOOST_ASIO_NO_DEPRECATED)
295
+ /// (Deprecated: Use get_executor().) Get the io_context associated with the
296
+ /// object.
297
+ /**
298
+ * This function may be used to obtain the io_context object that the I/O
299
+ * object uses to dispatch handlers for asynchronous operations.
300
+ *
301
+ * @return A reference to the io_context object that the I/O object will use
302
+ * to dispatch handlers. Ownership is not transferred to the caller.
303
+ */
304
+ boost::asio::io_context& get_io_context()
305
+ {
306
+ return basic_io_object<BOOST_ASIO_SVC_T>::get_io_context();
307
+ }
308
+
309
+ /// (Deprecated: Use get_executor().) Get the io_context associated with the
310
+ /// object.
311
+ /**
312
+ * This function may be used to obtain the io_context object that the I/O
313
+ * object uses to dispatch handlers for asynchronous operations.
314
+ *
315
+ * @return A reference to the io_context object that the I/O object will use
316
+ * to dispatch handlers. Ownership is not transferred to the caller.
317
+ */
318
+ boost::asio::io_context& get_io_service()
319
+ {
320
+ return basic_io_object<BOOST_ASIO_SVC_T>::get_io_service();
321
+ }
322
+ #endif // !defined(BOOST_ASIO_NO_DEPRECATED)
323
+
324
+ /// Get the executor associated with the object.
325
+ executor_type get_executor() BOOST_ASIO_NOEXCEPT
326
+ {
327
+ return basic_io_object<BOOST_ASIO_SVC_T>::get_executor();
328
+ }
329
+ #endif // defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
330
+
264
331
  /// Open the acceptor using the specified protocol.
265
332
  /**
266
333
  * This function opens the socket acceptor so that it will use the specified
@@ -272,7 +339,7 @@ public:
272
339
  *
273
340
  * @par Example
274
341
  * @code
275
- * boost::asio::ip::tcp::acceptor acceptor(io_service);
342
+ * boost::asio::ip::tcp::acceptor acceptor(io_context);
276
343
  * acceptor.open(boost::asio::ip::tcp::v4());
277
344
  * @endcode
278
345
  */
@@ -294,7 +361,7 @@ public:
294
361
  *
295
362
  * @par Example
296
363
  * @code
297
- * boost::asio::ip::tcp::acceptor acceptor(io_service);
364
+ * boost::asio::ip::tcp::acceptor acceptor(io_context);
298
365
  * boost::system::error_code ec;
299
366
  * acceptor.open(boost::asio::ip::tcp::v4(), ec);
300
367
  * if (ec)
@@ -303,10 +370,11 @@ public:
303
370
  * }
304
371
  * @endcode
305
372
  */
306
- boost::system::error_code open(const protocol_type& protocol,
373
+ BOOST_ASIO_SYNC_OP_VOID open(const protocol_type& protocol,
307
374
  boost::system::error_code& ec)
308
375
  {
309
- return this->get_service().open(this->get_implementation(), protocol, ec);
376
+ this->get_service().open(this->get_implementation(), protocol, ec);
377
+ BOOST_ASIO_SYNC_OP_VOID_RETURN(ec);
310
378
  }
311
379
 
312
380
  /// Assigns an existing native acceptor to the acceptor.
@@ -338,11 +406,12 @@ public:
338
406
  *
339
407
  * @param ec Set to indicate what error occurred, if any.
340
408
  */
341
- boost::system::error_code assign(const protocol_type& protocol,
409
+ BOOST_ASIO_SYNC_OP_VOID assign(const protocol_type& protocol,
342
410
  const native_handle_type& native_acceptor, boost::system::error_code& ec)
343
411
  {
344
- return this->get_service().assign(this->get_implementation(),
412
+ this->get_service().assign(this->get_implementation(),
345
413
  protocol, native_acceptor, ec);
414
+ BOOST_ASIO_SYNC_OP_VOID_RETURN(ec);
346
415
  }
347
416
 
348
417
  /// Determine whether the acceptor is open.
@@ -363,7 +432,7 @@ public:
363
432
  *
364
433
  * @par Example
365
434
  * @code
366
- * boost::asio::ip::tcp::acceptor acceptor(io_service);
435
+ * boost::asio::ip::tcp::acceptor acceptor(io_context);
367
436
  * boost::asio::ip::tcp::endpoint endpoint(boost::asio::ip::tcp::v4(), 12345);
368
437
  * acceptor.open(endpoint.protocol());
369
438
  * acceptor.bind(endpoint);
@@ -388,7 +457,7 @@ public:
388
457
  *
389
458
  * @par Example
390
459
  * @code
391
- * boost::asio::ip::tcp::acceptor acceptor(io_service);
460
+ * boost::asio::ip::tcp::acceptor acceptor(io_context);
392
461
  * boost::asio::ip::tcp::endpoint endpoint(boost::asio::ip::tcp::v4(), 12345);
393
462
  * acceptor.open(endpoint.protocol());
394
463
  * boost::system::error_code ec;
@@ -399,10 +468,11 @@ public:
399
468
  * }
400
469
  * @endcode
401
470
  */
402
- boost::system::error_code bind(const endpoint_type& endpoint,
471
+ BOOST_ASIO_SYNC_OP_VOID bind(const endpoint_type& endpoint,
403
472
  boost::system::error_code& ec)
404
473
  {
405
- return this->get_service().bind(this->get_implementation(), endpoint, ec);
474
+ this->get_service().bind(this->get_implementation(), endpoint, ec);
475
+ BOOST_ASIO_SYNC_OP_VOID_RETURN(ec);
406
476
  }
407
477
 
408
478
  /// Place the acceptor into the state where it will listen for new
@@ -415,7 +485,7 @@ public:
415
485
  *
416
486
  * @throws boost::system::system_error Thrown on failure.
417
487
  */
418
- void listen(int backlog = socket_base::max_connections)
488
+ void listen(int backlog = socket_base::max_listen_connections)
419
489
  {
420
490
  boost::system::error_code ec;
421
491
  this->get_service().listen(this->get_implementation(), backlog, ec);
@@ -434,19 +504,20 @@ public:
434
504
  *
435
505
  * @par Example
436
506
  * @code
437
- * boost::asio::ip::tcp::acceptor acceptor(io_service);
507
+ * boost::asio::ip::tcp::acceptor acceptor(io_context);
438
508
  * ...
439
509
  * boost::system::error_code ec;
440
- * acceptor.listen(boost::asio::socket_base::max_connections, ec);
510
+ * acceptor.listen(boost::asio::socket_base::max_listen_connections, ec);
441
511
  * if (ec)
442
512
  * {
443
513
  * // An error occurred.
444
514
  * }
445
515
  * @endcode
446
516
  */
447
- boost::system::error_code listen(int backlog, boost::system::error_code& ec)
517
+ BOOST_ASIO_SYNC_OP_VOID listen(int backlog, boost::system::error_code& ec)
448
518
  {
449
- return this->get_service().listen(this->get_implementation(), backlog, ec);
519
+ this->get_service().listen(this->get_implementation(), backlog, ec);
520
+ BOOST_ASIO_SYNC_OP_VOID_RETURN(ec);
450
521
  }
451
522
 
452
523
  /// Close the acceptor.
@@ -478,7 +549,7 @@ public:
478
549
  *
479
550
  * @par Example
480
551
  * @code
481
- * boost::asio::ip::tcp::acceptor acceptor(io_service);
552
+ * boost::asio::ip::tcp::acceptor acceptor(io_context);
482
553
  * ...
483
554
  * boost::system::error_code ec;
484
555
  * acceptor.close(ec);
@@ -488,20 +559,62 @@ public:
488
559
  * }
489
560
  * @endcode
490
561
  */
491
- boost::system::error_code close(boost::system::error_code& ec)
562
+ BOOST_ASIO_SYNC_OP_VOID close(boost::system::error_code& ec)
492
563
  {
493
- return this->get_service().close(this->get_implementation(), ec);
564
+ this->get_service().close(this->get_implementation(), ec);
565
+ BOOST_ASIO_SYNC_OP_VOID_RETURN(ec);
494
566
  }
495
567
 
496
- /// (Deprecated: Use native_handle().) Get the native acceptor representation.
568
+ /// Release ownership of the underlying native acceptor.
497
569
  /**
498
- * This function may be used to obtain the underlying representation of the
499
- * acceptor. This is intended to allow access to native acceptor functionality
500
- * that is not otherwise provided.
570
+ * This function causes all outstanding asynchronous accept operations to
571
+ * finish immediately, and the handlers for cancelled operations will be
572
+ * passed the boost::asio::error::operation_aborted error. Ownership of the
573
+ * native acceptor is then transferred to the caller.
574
+ *
575
+ * @throws boost::system::system_error Thrown on failure.
576
+ *
577
+ * @note This function is unsupported on Windows versions prior to Windows
578
+ * 8.1, and will fail with boost::asio::error::operation_not_supported on
579
+ * these platforms.
501
580
  */
502
- native_type native()
581
+ #if defined(BOOST_ASIO_MSVC) && (BOOST_ASIO_MSVC >= 1400) \
582
+ && (!defined(_WIN32_WINNT) || _WIN32_WINNT < 0x0603)
583
+ __declspec(deprecated("This function always fails with "
584
+ "operation_not_supported when used on Windows versions "
585
+ "prior to Windows 8.1."))
586
+ #endif
587
+ native_handle_type release()
503
588
  {
504
- return this->get_service().native_handle(this->get_implementation());
589
+ boost::system::error_code ec;
590
+ native_handle_type s = this->get_service().release(
591
+ this->get_implementation(), ec);
592
+ boost::asio::detail::throw_error(ec, "release");
593
+ return s;
594
+ }
595
+
596
+ /// Release ownership of the underlying native acceptor.
597
+ /**
598
+ * This function causes all outstanding asynchronous accept operations to
599
+ * finish immediately, and the handlers for cancelled operations will be
600
+ * passed the boost::asio::error::operation_aborted error. Ownership of the
601
+ * native acceptor is then transferred to the caller.
602
+ *
603
+ * @param ec Set to indicate what error occurred, if any.
604
+ *
605
+ * @note This function is unsupported on Windows versions prior to Windows
606
+ * 8.1, and will fail with boost::asio::error::operation_not_supported on
607
+ * these platforms.
608
+ */
609
+ #if defined(BOOST_ASIO_MSVC) && (BOOST_ASIO_MSVC >= 1400) \
610
+ && (!defined(_WIN32_WINNT) || _WIN32_WINNT < 0x0603)
611
+ __declspec(deprecated("This function always fails with "
612
+ "operation_not_supported when used on Windows versions "
613
+ "prior to Windows 8.1."))
614
+ #endif
615
+ native_handle_type release(boost::system::error_code& ec)
616
+ {
617
+ return this->get_service().release(this->get_implementation(), ec);
505
618
  }
506
619
 
507
620
  /// Get the native acceptor representation.
@@ -538,9 +651,10 @@ public:
538
651
  *
539
652
  * @param ec Set to indicate what error occurred, if any.
540
653
  */
541
- boost::system::error_code cancel(boost::system::error_code& ec)
654
+ BOOST_ASIO_SYNC_OP_VOID cancel(boost::system::error_code& ec)
542
655
  {
543
- return this->get_service().cancel(this->get_implementation(), ec);
656
+ this->get_service().cancel(this->get_implementation(), ec);
657
+ BOOST_ASIO_SYNC_OP_VOID_RETURN(ec);
544
658
  }
545
659
 
546
660
  /// Set an option on the acceptor.
@@ -558,7 +672,7 @@ public:
558
672
  * @par Example
559
673
  * Setting the SOL_SOCKET/SO_REUSEADDR option:
560
674
  * @code
561
- * boost::asio::ip::tcp::acceptor acceptor(io_service);
675
+ * boost::asio::ip::tcp::acceptor acceptor(io_context);
562
676
  * ...
563
677
  * boost::asio::ip::tcp::acceptor::reuse_address option(true);
564
678
  * acceptor.set_option(option);
@@ -587,7 +701,7 @@ public:
587
701
  * @par Example
588
702
  * Setting the SOL_SOCKET/SO_REUSEADDR option:
589
703
  * @code
590
- * boost::asio::ip::tcp::acceptor acceptor(io_service);
704
+ * boost::asio::ip::tcp::acceptor acceptor(io_context);
591
705
  * ...
592
706
  * boost::asio::ip::tcp::acceptor::reuse_address option(true);
593
707
  * boost::system::error_code ec;
@@ -599,11 +713,11 @@ public:
599
713
  * @endcode
600
714
  */
601
715
  template <typename SettableSocketOption>
602
- boost::system::error_code set_option(const SettableSocketOption& option,
716
+ BOOST_ASIO_SYNC_OP_VOID set_option(const SettableSocketOption& option,
603
717
  boost::system::error_code& ec)
604
718
  {
605
- return this->get_service().set_option(
606
- this->get_implementation(), option, ec);
719
+ this->get_service().set_option(this->get_implementation(), option, ec);
720
+ BOOST_ASIO_SYNC_OP_VOID_RETURN(ec);
607
721
  }
608
722
 
609
723
  /// Get an option from the acceptor.
@@ -621,7 +735,7 @@ public:
621
735
  * @par Example
622
736
  * Getting the value of the SOL_SOCKET/SO_REUSEADDR option:
623
737
  * @code
624
- * boost::asio::ip::tcp::acceptor acceptor(io_service);
738
+ * boost::asio::ip::tcp::acceptor acceptor(io_context);
625
739
  * ...
626
740
  * boost::asio::ip::tcp::acceptor::reuse_address option;
627
741
  * acceptor.get_option(option);
@@ -629,7 +743,7 @@ public:
629
743
  * @endcode
630
744
  */
631
745
  template <typename GettableSocketOption>
632
- void get_option(GettableSocketOption& option)
746
+ void get_option(GettableSocketOption& option) const
633
747
  {
634
748
  boost::system::error_code ec;
635
749
  this->get_service().get_option(this->get_implementation(), option, ec);
@@ -651,7 +765,7 @@ public:
651
765
  * @par Example
652
766
  * Getting the value of the SOL_SOCKET/SO_REUSEADDR option:
653
767
  * @code
654
- * boost::asio::ip::tcp::acceptor acceptor(io_service);
768
+ * boost::asio::ip::tcp::acceptor acceptor(io_context);
655
769
  * ...
656
770
  * boost::asio::ip::tcp::acceptor::reuse_address option;
657
771
  * boost::system::error_code ec;
@@ -664,11 +778,11 @@ public:
664
778
  * @endcode
665
779
  */
666
780
  template <typename GettableSocketOption>
667
- boost::system::error_code get_option(GettableSocketOption& option,
668
- boost::system::error_code& ec)
781
+ BOOST_ASIO_SYNC_OP_VOID get_option(GettableSocketOption& option,
782
+ boost::system::error_code& ec) const
669
783
  {
670
- return this->get_service().get_option(
671
- this->get_implementation(), option, ec);
784
+ this->get_service().get_option(this->get_implementation(), option, ec);
785
+ BOOST_ASIO_SYNC_OP_VOID_RETURN(ec);
672
786
  }
673
787
 
674
788
  /// Perform an IO control command on the acceptor.
@@ -685,7 +799,7 @@ public:
685
799
  * @par Example
686
800
  * Getting the number of bytes ready to read:
687
801
  * @code
688
- * boost::asio::ip::tcp::acceptor acceptor(io_service);
802
+ * boost::asio::ip::tcp::acceptor acceptor(io_context);
689
803
  * ...
690
804
  * boost::asio::ip::tcp::acceptor::non_blocking_io command(true);
691
805
  * socket.io_control(command);
@@ -713,7 +827,7 @@ public:
713
827
  * @par Example
714
828
  * Getting the number of bytes ready to read:
715
829
  * @code
716
- * boost::asio::ip::tcp::acceptor acceptor(io_service);
830
+ * boost::asio::ip::tcp::acceptor acceptor(io_context);
717
831
  * ...
718
832
  * boost::asio::ip::tcp::acceptor::non_blocking_io command(true);
719
833
  * boost::system::error_code ec;
@@ -725,11 +839,11 @@ public:
725
839
  * @endcode
726
840
  */
727
841
  template <typename IoControlCommand>
728
- boost::system::error_code io_control(IoControlCommand& command,
842
+ BOOST_ASIO_SYNC_OP_VOID io_control(IoControlCommand& command,
729
843
  boost::system::error_code& ec)
730
844
  {
731
- return this->get_service().io_control(
732
- this->get_implementation(), command, ec);
845
+ this->get_service().io_control(this->get_implementation(), command, ec);
846
+ BOOST_ASIO_SYNC_OP_VOID_RETURN(ec);
733
847
  }
734
848
 
735
849
  /// Gets the non-blocking mode of the acceptor.
@@ -781,11 +895,11 @@ public:
781
895
  * operations. Asynchronous operations will never fail with the error
782
896
  * boost::asio::error::would_block.
783
897
  */
784
- boost::system::error_code non_blocking(
898
+ BOOST_ASIO_SYNC_OP_VOID non_blocking(
785
899
  bool mode, boost::system::error_code& ec)
786
900
  {
787
- return this->get_service().non_blocking(
788
- this->get_implementation(), mode, ec);
901
+ this->get_service().non_blocking(this->get_implementation(), mode, ec);
902
+ BOOST_ASIO_SYNC_OP_VOID_RETURN(ec);
789
903
  }
790
904
 
791
905
  /// Gets the non-blocking mode of the native acceptor implementation.
@@ -845,11 +959,12 @@ public:
845
959
  * function fails with boost::asio::error::invalid_argument, as the
846
960
  * combination does not make sense.
847
961
  */
848
- boost::system::error_code native_non_blocking(
962
+ BOOST_ASIO_SYNC_OP_VOID native_non_blocking(
849
963
  bool mode, boost::system::error_code& ec)
850
964
  {
851
- return this->get_service().native_non_blocking(
965
+ this->get_service().native_non_blocking(
852
966
  this->get_implementation(), mode, ec);
967
+ BOOST_ASIO_SYNC_OP_VOID_RETURN(ec);
853
968
  }
854
969
 
855
970
  /// Get the local endpoint of the acceptor.
@@ -862,7 +977,7 @@ public:
862
977
  *
863
978
  * @par Example
864
979
  * @code
865
- * boost::asio::ip::tcp::acceptor acceptor(io_service);
980
+ * boost::asio::ip::tcp::acceptor acceptor(io_context);
866
981
  * ...
867
982
  * boost::asio::ip::tcp::endpoint endpoint = acceptor.local_endpoint();
868
983
  * @endcode
@@ -888,7 +1003,7 @@ public:
888
1003
  *
889
1004
  * @par Example
890
1005
  * @code
891
- * boost::asio::ip::tcp::acceptor acceptor(io_service);
1006
+ * boost::asio::ip::tcp::acceptor acceptor(io_context);
892
1007
  * ...
893
1008
  * boost::system::error_code ec;
894
1009
  * boost::asio::ip::tcp::endpoint endpoint = acceptor.local_endpoint(ec);
@@ -903,6 +1018,116 @@ public:
903
1018
  return this->get_service().local_endpoint(this->get_implementation(), ec);
904
1019
  }
905
1020
 
1021
+ /// Wait for the acceptor to become ready to read, ready to write, or to have
1022
+ /// pending error conditions.
1023
+ /**
1024
+ * This function is used to perform a blocking wait for an acceptor to enter
1025
+ * a ready to read, write or error condition state.
1026
+ *
1027
+ * @param w Specifies the desired acceptor state.
1028
+ *
1029
+ * @par Example
1030
+ * Waiting for an acceptor to become readable.
1031
+ * @code
1032
+ * boost::asio::ip::tcp::acceptor acceptor(io_context);
1033
+ * ...
1034
+ * acceptor.wait(boost::asio::ip::tcp::acceptor::wait_read);
1035
+ * @endcode
1036
+ */
1037
+ void wait(wait_type w)
1038
+ {
1039
+ boost::system::error_code ec;
1040
+ this->get_service().wait(this->get_implementation(), w, ec);
1041
+ boost::asio::detail::throw_error(ec, "wait");
1042
+ }
1043
+
1044
+ /// Wait for the acceptor to become ready to read, ready to write, or to have
1045
+ /// pending error conditions.
1046
+ /**
1047
+ * This function is used to perform a blocking wait for an acceptor to enter
1048
+ * a ready to read, write or error condition state.
1049
+ *
1050
+ * @param w Specifies the desired acceptor state.
1051
+ *
1052
+ * @param ec Set to indicate what error occurred, if any.
1053
+ *
1054
+ * @par Example
1055
+ * Waiting for an acceptor to become readable.
1056
+ * @code
1057
+ * boost::asio::ip::tcp::acceptor acceptor(io_context);
1058
+ * ...
1059
+ * boost::system::error_code ec;
1060
+ * acceptor.wait(boost::asio::ip::tcp::acceptor::wait_read, ec);
1061
+ * @endcode
1062
+ */
1063
+ BOOST_ASIO_SYNC_OP_VOID wait(wait_type w, boost::system::error_code& ec)
1064
+ {
1065
+ this->get_service().wait(this->get_implementation(), w, ec);
1066
+ BOOST_ASIO_SYNC_OP_VOID_RETURN(ec);
1067
+ }
1068
+
1069
+ /// Asynchronously wait for the acceptor to become ready to read, ready to
1070
+ /// write, or to have pending error conditions.
1071
+ /**
1072
+ * This function is used to perform an asynchronous wait for an acceptor to
1073
+ * enter a ready to read, write or error condition state.
1074
+ *
1075
+ * @param w Specifies the desired acceptor state.
1076
+ *
1077
+ * @param handler The handler to be called when the wait operation completes.
1078
+ * Copies will be made of the handler as required. The function signature of
1079
+ * the handler must be:
1080
+ * @code void handler(
1081
+ * const boost::system::error_code& error // Result of operation
1082
+ * ); @endcode
1083
+ * Regardless of whether the asynchronous operation completes immediately or
1084
+ * not, the handler will not be invoked from within this function. Invocation
1085
+ * of the handler will be performed in a manner equivalent to using
1086
+ * boost::asio::io_context::post().
1087
+ *
1088
+ * @par Example
1089
+ * @code
1090
+ * void wait_handler(const boost::system::error_code& error)
1091
+ * {
1092
+ * if (!error)
1093
+ * {
1094
+ * // Wait succeeded.
1095
+ * }
1096
+ * }
1097
+ *
1098
+ * ...
1099
+ *
1100
+ * boost::asio::ip::tcp::acceptor acceptor(io_context);
1101
+ * ...
1102
+ * acceptor.async_wait(
1103
+ * boost::asio::ip::tcp::acceptor::wait_read,
1104
+ * wait_handler);
1105
+ * @endcode
1106
+ */
1107
+ template <typename WaitHandler>
1108
+ BOOST_ASIO_INITFN_RESULT_TYPE(WaitHandler,
1109
+ void (boost::system::error_code))
1110
+ async_wait(wait_type w, BOOST_ASIO_MOVE_ARG(WaitHandler) handler)
1111
+ {
1112
+ // If you get an error on the following line it means that your handler does
1113
+ // not meet the documented type requirements for a WaitHandler.
1114
+ BOOST_ASIO_WAIT_HANDLER_CHECK(WaitHandler, handler) type_check;
1115
+
1116
+ #if defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
1117
+ return this->get_service().async_wait(this->get_implementation(),
1118
+ w, BOOST_ASIO_MOVE_CAST(WaitHandler)(handler));
1119
+ #else // defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
1120
+ async_completion<WaitHandler,
1121
+ void (boost::system::error_code)> init(handler);
1122
+
1123
+ this->get_service().async_wait(this->get_implementation(),
1124
+ w, init.completion_handler);
1125
+
1126
+ return init.result.get();
1127
+ #endif // defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
1128
+ }
1129
+
1130
+ #if !defined(BOOST_ASIO_NO_EXTENSIONS)
906
1131
  /// Accept a new connection.
907
1132
  /**
908
1133
  * This function is used to accept a new connection from a peer into the
@@ -915,15 +1140,21 @@ public:
915
1140
  *
916
1141
  * @par Example
917
1142
  * @code
918
- * boost::asio::ip::tcp::acceptor acceptor(io_service);
1143
+ * boost::asio::ip::tcp::acceptor acceptor(io_context);
919
1144
  * ...
920
- * boost::asio::ip::tcp::socket socket(io_service);
1145
+ * boost::asio::ip::tcp::socket socket(io_context);
921
1146
  * acceptor.accept(socket);
922
1147
  * @endcode
923
1148
  */
1149
+ #if defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
924
1150
  template <typename Protocol1, typename SocketService>
925
1151
  void accept(basic_socket<Protocol1, SocketService>& peer,
926
1152
  typename enable_if<is_convertible<Protocol, Protocol1>::value>::type* = 0)
1153
+ #else // defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
1154
+ template <typename Protocol1>
1155
+ void accept(basic_socket<Protocol1>& peer,
1156
+ typename enable_if<is_convertible<Protocol, Protocol1>::value>::type* = 0)
1157
+ #endif // defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
927
1158
  {
928
1159
  boost::system::error_code ec;
929
1160
  this->get_service().accept(this->get_implementation(),
@@ -943,9 +1174,9 @@ public:
943
1174
  *
944
1175
  * @par Example
945
1176
  * @code
946
- * boost::asio::ip::tcp::acceptor acceptor(io_service);
1177
+ * boost::asio::ip::tcp::acceptor acceptor(io_context);
947
1178
  * ...
948
- * boost::asio::ip::tcp::soocket socket(io_service);
1179
+ * boost::asio::ip::tcp::socket socket(io_context);
949
1180
  * boost::system::error_code ec;
950
1181
  * acceptor.accept(socket, ec);
951
1182
  * if (ec)
@@ -954,14 +1185,22 @@ public:
954
1185
  * }
955
1186
  * @endcode
956
1187
  */
1188
+ #if defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
957
1189
  template <typename Protocol1, typename SocketService>
958
- boost::system::error_code accept(
1190
+ BOOST_ASIO_SYNC_OP_VOID accept(
959
1191
  basic_socket<Protocol1, SocketService>& peer,
960
1192
  boost::system::error_code& ec,
961
1193
  typename enable_if<is_convertible<Protocol, Protocol1>::value>::type* = 0)
1194
+ #else // defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
1195
+ template <typename Protocol1>
1196
+ BOOST_ASIO_SYNC_OP_VOID accept(
1197
+ basic_socket<Protocol1>& peer, boost::system::error_code& ec,
1198
+ typename enable_if<is_convertible<Protocol, Protocol1>::value>::type* = 0)
1199
+ #endif // defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
962
1200
  {
963
- return this->get_service().accept(this->get_implementation(),
1201
+ this->get_service().accept(this->get_implementation(),
964
1202
  peer, static_cast<endpoint_type*>(0), ec);
1203
+ BOOST_ASIO_SYNC_OP_VOID_RETURN(ec);
965
1204
  }
966
1205
 
967
1206
  /// Start an asynchronous accept.
@@ -982,7 +1221,7 @@ public:
982
1221
  * Regardless of whether the asynchronous operation completes immediately or
983
1222
  * not, the handler will not be invoked from within this function. Invocation
984
1223
  * of the handler will be performed in a manner equivalent to using
985
- * boost::asio::io_service::post().
1224
+ * boost::asio::io_context::post().
986
1225
  *
987
1226
  * @par Example
988
1227
  * @code
@@ -996,26 +1235,45 @@ public:
996
1235
  *
997
1236
  * ...
998
1237
  *
999
- * boost::asio::ip::tcp::acceptor acceptor(io_service);
1238
+ * boost::asio::ip::tcp::acceptor acceptor(io_context);
1000
1239
  * ...
1001
- * boost::asio::ip::tcp::socket socket(io_service);
1240
+ * boost::asio::ip::tcp::socket socket(io_context);
1002
1241
  * acceptor.async_accept(socket, accept_handler);
1003
1242
  * @endcode
1004
1243
  */
1244
+ #if defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
1005
1245
  template <typename Protocol1, typename SocketService, typename AcceptHandler>
1006
1246
  BOOST_ASIO_INITFN_RESULT_TYPE(AcceptHandler,
1007
1247
  void (boost::system::error_code))
1008
1248
  async_accept(basic_socket<Protocol1, SocketService>& peer,
1009
1249
  BOOST_ASIO_MOVE_ARG(AcceptHandler) handler,
1010
1250
  typename enable_if<is_convertible<Protocol, Protocol1>::value>::type* = 0)
1251
+ #else // defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
1252
+ template <typename Protocol1, typename AcceptHandler>
1253
+ BOOST_ASIO_INITFN_RESULT_TYPE(AcceptHandler,
1254
+ void (boost::system::error_code))
1255
+ async_accept(basic_socket<Protocol1>& peer,
1256
+ BOOST_ASIO_MOVE_ARG(AcceptHandler) handler,
1257
+ typename enable_if<is_convertible<Protocol, Protocol1>::value>::type* = 0)
1258
+ #endif // defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
1011
1259
  {
1012
1260
  // If you get an error on the following line it means that your handler does
1013
1261
  // not meet the documented type requirements for a AcceptHandler.
1014
1262
  BOOST_ASIO_ACCEPT_HANDLER_CHECK(AcceptHandler, handler) type_check;
1015
1263
 
1264
+ #if defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
1016
1265
  return this->get_service().async_accept(this->get_implementation(),
1017
1266
  peer, static_cast<endpoint_type*>(0),
1018
1267
  BOOST_ASIO_MOVE_CAST(AcceptHandler)(handler));
1268
+ #else // defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
1269
+ async_completion<AcceptHandler,
1270
+ void (boost::system::error_code)> init(handler);
1271
+
1272
+ this->get_service().async_accept(this->get_implementation(),
1273
+ peer, static_cast<endpoint_type*>(0), init.completion_handler);
1274
+
1275
+ return init.result.get();
1276
+ #endif // defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
1019
1277
  }
1020
1278
 
1021
1279
  /// Accept a new connection and obtain the endpoint of the peer
@@ -1034,16 +1292,20 @@ public:
1034
1292
  *
1035
1293
  * @par Example
1036
1294
  * @code
1037
- * boost::asio::ip::tcp::acceptor acceptor(io_service);
1295
+ * boost::asio::ip::tcp::acceptor acceptor(io_context);
1038
1296
  * ...
1039
- * boost::asio::ip::tcp::socket socket(io_service);
1297
+ * boost::asio::ip::tcp::socket socket(io_context);
1040
1298
  * boost::asio::ip::tcp::endpoint endpoint;
1041
1299
  * acceptor.accept(socket, endpoint);
1042
1300
  * @endcode
1043
1301
  */
1302
+ #if defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
1044
1303
  template <typename SocketService>
1045
1304
  void accept(basic_socket<protocol_type, SocketService>& peer,
1046
1305
  endpoint_type& peer_endpoint)
1306
+ #else // defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
1307
+ void accept(basic_socket<protocol_type>& peer, endpoint_type& peer_endpoint)
1308
+ #endif // defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
1047
1309
  {
1048
1310
  boost::system::error_code ec;
1049
1311
  this->get_service().accept(this->get_implementation(),
@@ -1067,9 +1329,9 @@ public:
1067
1329
  *
1068
1330
  * @par Example
1069
1331
  * @code
1070
- * boost::asio::ip::tcp::acceptor acceptor(io_service);
1332
+ * boost::asio::ip::tcp::acceptor acceptor(io_context);
1071
1333
  * ...
1072
- * boost::asio::ip::tcp::socket socket(io_service);
1334
+ * boost::asio::ip::tcp::socket socket(io_context);
1073
1335
  * boost::asio::ip::tcp::endpoint endpoint;
1074
1336
  * boost::system::error_code ec;
1075
1337
  * acceptor.accept(socket, endpoint, ec);
@@ -1079,13 +1341,19 @@ public:
1079
1341
  * }
1080
1342
  * @endcode
1081
1343
  */
1344
+ #if defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
1082
1345
  template <typename SocketService>
1083
- boost::system::error_code accept(
1346
+ BOOST_ASIO_SYNC_OP_VOID accept(
1084
1347
  basic_socket<protocol_type, SocketService>& peer,
1085
1348
  endpoint_type& peer_endpoint, boost::system::error_code& ec)
1349
+ #else // defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
1350
+ BOOST_ASIO_SYNC_OP_VOID accept(basic_socket<protocol_type>& peer,
1351
+ endpoint_type& peer_endpoint, boost::system::error_code& ec)
1352
+ #endif // defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
1086
1353
  {
1087
- return this->get_service().accept(
1354
+ this->get_service().accept(
1088
1355
  this->get_implementation(), peer, &peer_endpoint, ec);
1356
+ BOOST_ASIO_SYNC_OP_VOID_RETURN(ec);
1089
1357
  }
1090
1358
 
1091
1359
  /// Start an asynchronous accept.
@@ -1112,21 +1380,600 @@ public:
1112
1380
  * Regardless of whether the asynchronous operation completes immediately or
1113
1381
  * not, the handler will not be invoked from within this function. Invocation
1114
1382
  * of the handler will be performed in a manner equivalent to using
1115
- * boost::asio::io_service::post().
1383
+ * boost::asio::io_context::post().
1116
1384
  */
1385
+ #if defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
1117
1386
  template <typename SocketService, typename AcceptHandler>
1118
1387
  BOOST_ASIO_INITFN_RESULT_TYPE(AcceptHandler,
1119
1388
  void (boost::system::error_code))
1120
1389
  async_accept(basic_socket<protocol_type, SocketService>& peer,
1121
1390
  endpoint_type& peer_endpoint, BOOST_ASIO_MOVE_ARG(AcceptHandler) handler)
1391
+ #else // defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
1392
+ template <typename AcceptHandler>
1393
+ BOOST_ASIO_INITFN_RESULT_TYPE(AcceptHandler,
1394
+ void (boost::system::error_code))
1395
+ async_accept(basic_socket<protocol_type>& peer,
1396
+ endpoint_type& peer_endpoint, BOOST_ASIO_MOVE_ARG(AcceptHandler) handler)
1397
+ #endif // defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
1122
1398
  {
1123
1399
  // If you get an error on the following line it means that your handler does
1124
1400
  // not meet the documented type requirements for a AcceptHandler.
1125
1401
  BOOST_ASIO_ACCEPT_HANDLER_CHECK(AcceptHandler, handler) type_check;
1126
1402
 
1403
+ #if defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
1127
1404
  return this->get_service().async_accept(this->get_implementation(), peer,
1128
1405
  &peer_endpoint, BOOST_ASIO_MOVE_CAST(AcceptHandler)(handler));
1406
+ #else // defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
1407
+ async_completion<AcceptHandler,
1408
+ void (boost::system::error_code)> init(handler);
1409
+
1410
+ this->get_service().async_accept(this->get_implementation(),
1411
+ peer, &peer_endpoint, init.completion_handler);
1412
+
1413
+ return init.result.get();
1414
+ #endif // defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
1415
+ }
1416
+ #endif // !defined(BOOST_ASIO_NO_EXTENSIONS)
1417
+
1418
+ #if defined(BOOST_ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION)
1419
+ /// Accept a new connection.
1420
+ /**
1421
+ * This function is used to accept a new connection from a peer. The function
1422
+ * call will block until a new connection has been accepted successfully or
1423
+ * an error occurs.
1424
+ *
1425
+ * This overload requires that the Protocol template parameter satisfy the
1426
+ * AcceptableProtocol type requirements.
1427
+ *
1428
+ * @returns A socket object representing the newly accepted connection.
1429
+ *
1430
+ * @throws boost::system::system_error Thrown on failure.
1431
+ *
1432
+ * @par Example
1433
+ * @code
1434
+ * boost::asio::ip::tcp::acceptor acceptor(io_context);
1435
+ * ...
1436
+ * boost::asio::ip::tcp::socket socket(acceptor.accept());
1437
+ * @endcode
1438
+ */
1439
+ typename Protocol::socket accept()
1440
+ {
1441
+ boost::system::error_code ec;
1442
+ typename Protocol::socket peer(
1443
+ this->get_service().accept(
1444
+ this->get_implementation(), 0, 0, ec));
1445
+ boost::asio::detail::throw_error(ec, "accept");
1446
+ return peer;
1447
+ }
1448
+
1449
+ /// Accept a new connection.
1450
+ /**
1451
+ * This function is used to accept a new connection from a peer. The function
1452
+ * call will block until a new connection has been accepted successfully or
1453
+ * an error occurs.
1454
+ *
1455
+ * This overload requires that the Protocol template parameter satisfy the
1456
+ * AcceptableProtocol type requirements.
1457
+ *
1458
+ * @param ec Set to indicate what error occurred, if any.
1459
+ *
1460
+ * @returns On success, a socket object representing the newly accepted
1461
+ * connection. On error, a socket object where is_open() is false.
1462
+ *
1463
+ * @par Example
1464
+ * @code
1465
+ * boost::asio::ip::tcp::acceptor acceptor(io_context);
1466
+ * ...
1467
+ * boost::asio::ip::tcp::socket socket(acceptor.accept(ec));
1468
+ * if (ec)
1469
+ * {
1470
+ * // An error occurred.
1471
+ * }
1472
+ * @endcode
1473
+ */
1474
+ typename Protocol::socket accept(boost::system::error_code& ec)
1475
+ {
1476
+ return this->get_service().accept(this->get_implementation(), 0, 0, ec);
1477
+ }
1478
+
1479
+ /// Start an asynchronous accept.
1480
+ /**
1481
+ * This function is used to asynchronously accept a new connection. The
1482
+ * function call always returns immediately.
1483
+ *
1484
+ * This overload requires that the Protocol template parameter satisfy the
1485
+ * AcceptableProtocol type requirements.
1486
+ *
1487
+ * @param handler The handler to be called when the accept operation
1488
+ * completes. Copies will be made of the handler as required. The function
1489
+ * signature of the handler must be:
1490
+ * @code void handler(
1491
+ * const boost::system::error_code& error, // Result of operation.
1492
+ * typename Protocol::socket peer // On success, the newly accepted socket.
1493
+ * ); @endcode
1494
+ * Regardless of whether the asynchronous operation completes immediately or
1495
+ * not, the handler will not be invoked from within this function. Invocation
1496
+ * of the handler will be performed in a manner equivalent to using
1497
+ * boost::asio::io_context::post().
1498
+ *
1499
+ * @par Example
1500
+ * @code
1501
+ * void accept_handler(const boost::system::error_code& error,
1502
+ * boost::asio::ip::tcp::socket peer)
1503
+ * {
1504
+ * if (!error)
1505
+ * {
1506
+ * // Accept succeeded.
1507
+ * }
1508
+ * }
1509
+ *
1510
+ * ...
1511
+ *
1512
+ * boost::asio::ip::tcp::acceptor acceptor(io_context);
1513
+ * ...
1514
+ * acceptor.async_accept(accept_handler);
1515
+ * @endcode
1516
+ */
1517
+ template <typename MoveAcceptHandler>
1518
+ BOOST_ASIO_INITFN_RESULT_TYPE(MoveAcceptHandler,
1519
+ void (boost::system::error_code, typename Protocol::socket))
1520
+ async_accept(BOOST_ASIO_MOVE_ARG(MoveAcceptHandler) handler)
1521
+ {
1522
+ // If you get an error on the following line it means that your handler does
1523
+ // not meet the documented type requirements for a MoveAcceptHandler.
1524
+ BOOST_ASIO_MOVE_ACCEPT_HANDLER_CHECK(MoveAcceptHandler,
1525
+ handler, typename Protocol::socket) type_check;
1526
+
1527
+ #if defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
1528
+ return this->get_service().async_accept(
1529
+ this->get_implementation(), static_cast<boost::asio::io_context*>(0),
1530
+ static_cast<endpoint_type*>(0),
1531
+ BOOST_ASIO_MOVE_CAST(MoveAcceptHandler)(handler));
1532
+ #else // defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
1533
+ async_completion<MoveAcceptHandler,
1534
+ void (boost::system::error_code,
1535
+ typename Protocol::socket)> init(handler);
1536
+
1537
+ this->get_service().async_accept(
1538
+ this->get_implementation(), static_cast<boost::asio::io_context*>(0),
1539
+ static_cast<endpoint_type*>(0), init.completion_handler);
1540
+
1541
+ return init.result.get();
1542
+ #endif // defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
1543
+ }
1544
+
1545
+ /// Accept a new connection.
1546
+ /**
1547
+ * This function is used to accept a new connection from a peer. The function
1548
+ * call will block until a new connection has been accepted successfully or
1549
+ * an error occurs.
1550
+ *
1551
+ * This overload requires that the Protocol template parameter satisfy the
1552
+ * AcceptableProtocol type requirements.
1553
+ *
1554
+ * @param io_context The io_context object to be used for the newly accepted
1555
+ * socket.
1556
+ *
1557
+ * @returns A socket object representing the newly accepted connection.
1558
+ *
1559
+ * @throws boost::system::system_error Thrown on failure.
1560
+ *
1561
+ * @par Example
1562
+ * @code
1563
+ * boost::asio::ip::tcp::acceptor acceptor(io_context);
1564
+ * ...
1565
+ * boost::asio::ip::tcp::socket socket(acceptor.accept());
1566
+ * @endcode
1567
+ */
1568
+ typename Protocol::socket accept(boost::asio::io_context& io_context)
1569
+ {
1570
+ boost::system::error_code ec;
1571
+ typename Protocol::socket peer(
1572
+ this->get_service().accept(this->get_implementation(),
1573
+ &io_context, static_cast<endpoint_type*>(0), ec));
1574
+ boost::asio::detail::throw_error(ec, "accept");
1575
+ return peer;
1576
+ }
1577
+
1578
+ /// Accept a new connection.
1579
+ /**
1580
+ * This function is used to accept a new connection from a peer. The function
1581
+ * call will block until a new connection has been accepted successfully or
1582
+ * an error occurs.
1583
+ *
1584
+ * This overload requires that the Protocol template parameter satisfy the
1585
+ * AcceptableProtocol type requirements.
1586
+ *
1587
+ * @param io_context The io_context object to be used for the newly accepted
1588
+ * socket.
1589
+ *
1590
+ * @param ec Set to indicate what error occurred, if any.
1591
+ *
1592
+ * @returns On success, a socket object representing the newly accepted
1593
+ * connection. On error, a socket object where is_open() is false.
1594
+ *
1595
+ * @par Example
1596
+ * @code
1597
+ * boost::asio::ip::tcp::acceptor acceptor(io_context);
1598
+ * ...
1599
+ * boost::asio::ip::tcp::socket socket(acceptor.accept(io_context2, ec));
1600
+ * if (ec)
1601
+ * {
1602
+ * // An error occurred.
1603
+ * }
1604
+ * @endcode
1605
+ */
1606
+ typename Protocol::socket accept(
1607
+ boost::asio::io_context& io_context, boost::system::error_code& ec)
1608
+ {
1609
+ return this->get_service().accept(this->get_implementation(),
1610
+ &io_context, static_cast<endpoint_type*>(0), ec);
1611
+ }
1612
+
1613
+ /// Start an asynchronous accept.
1614
+ /**
1615
+ * This function is used to asynchronously accept a new connection. The
1616
+ * function call always returns immediately.
1617
+ *
1618
+ * This overload requires that the Protocol template parameter satisfy the
1619
+ * AcceptableProtocol type requirements.
1620
+ *
1621
+ * @param io_context The io_context object to be used for the newly accepted
1622
+ * socket.
1623
+ *
1624
+ * @param handler The handler to be called when the accept operation
1625
+ * completes. Copies will be made of the handler as required. The function
1626
+ * signature of the handler must be:
1627
+ * @code void handler(
1628
+ * const boost::system::error_code& error, // Result of operation.
1629
+ * typename Protocol::socket peer // On success, the newly accepted socket.
1630
+ * ); @endcode
1631
+ * Regardless of whether the asynchronous operation completes immediately or
1632
+ * not, the handler will not be invoked from within this function. Invocation
1633
+ * of the handler will be performed in a manner equivalent to using
1634
+ * boost::asio::io_context::post().
1635
+ *
1636
+ * @par Example
1637
+ * @code
1638
+ * void accept_handler(const boost::system::error_code& error,
1639
+ * boost::asio::ip::tcp::socket peer)
1640
+ * {
1641
+ * if (!error)
1642
+ * {
1643
+ * // Accept succeeded.
1644
+ * }
1645
+ * }
1646
+ *
1647
+ * ...
1648
+ *
1649
+ * boost::asio::ip::tcp::acceptor acceptor(io_context);
1650
+ * ...
1651
+ * acceptor.async_accept(io_context2, accept_handler);
1652
+ * @endcode
1653
+ */
1654
+ template <typename MoveAcceptHandler>
1655
+ BOOST_ASIO_INITFN_RESULT_TYPE(MoveAcceptHandler,
1656
+ void (boost::system::error_code, typename Protocol::socket))
1657
+ async_accept(boost::asio::io_context& io_context,
1658
+ BOOST_ASIO_MOVE_ARG(MoveAcceptHandler) handler)
1659
+ {
1660
+ // If you get an error on the following line it means that your handler does
1661
+ // not meet the documented type requirements for a MoveAcceptHandler.
1662
+ BOOST_ASIO_MOVE_ACCEPT_HANDLER_CHECK(MoveAcceptHandler,
1663
+ handler, typename Protocol::socket) type_check;
1664
+
1665
+ #if defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
1666
+ return this->get_service().async_accept(this->get_implementation(),
1667
+ &io_context, static_cast<endpoint_type*>(0),
1668
+ BOOST_ASIO_MOVE_CAST(MoveAcceptHandler)(handler));
1669
+ #else // defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
1670
+ async_completion<MoveAcceptHandler,
1671
+ void (boost::system::error_code,
1672
+ typename Protocol::socket)> init(handler);
1673
+
1674
+ this->get_service().async_accept(this->get_implementation(),
1675
+ &io_context, static_cast<endpoint_type*>(0), init.completion_handler);
1676
+
1677
+ return init.result.get();
1678
+ #endif // defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
1679
+ }
1680
+
1681
+ /// Accept a new connection.
1682
+ /**
1683
+ * This function is used to accept a new connection from a peer. The function
1684
+ * call will block until a new connection has been accepted successfully or
1685
+ * an error occurs.
1686
+ *
1687
+ * This overload requires that the Protocol template parameter satisfy the
1688
+ * AcceptableProtocol type requirements.
1689
+ *
1690
+ * @param peer_endpoint An endpoint object into which the endpoint of the
1691
+ * remote peer will be written.
1692
+ *
1693
+ * @returns A socket object representing the newly accepted connection.
1694
+ *
1695
+ * @throws boost::system::system_error Thrown on failure.
1696
+ *
1697
+ * @par Example
1698
+ * @code
1699
+ * boost::asio::ip::tcp::acceptor acceptor(io_context);
1700
+ * ...
1701
+ * boost::asio::ip::tcp::endpoint endpoint;
1702
+ * boost::asio::ip::tcp::socket socket(acceptor.accept(endpoint));
1703
+ * @endcode
1704
+ */
1705
+ typename Protocol::socket accept(endpoint_type& peer_endpoint)
1706
+ {
1707
+ boost::system::error_code ec;
1708
+ typename Protocol::socket peer(
1709
+ this->get_service().accept(this->get_implementation(),
1710
+ static_cast<boost::asio::io_context*>(0), &peer_endpoint, ec));
1711
+ boost::asio::detail::throw_error(ec, "accept");
1712
+ return peer;
1713
+ }
1714
+
1715
+ /// Accept a new connection.
1716
+ /**
1717
+ * This function is used to accept a new connection from a peer. The function
1718
+ * call will block until a new connection has been accepted successfully or
1719
+ * an error occurs.
1720
+ *
1721
+ * This overload requires that the Protocol template parameter satisfy the
1722
+ * AcceptableProtocol type requirements.
1723
+ *
1724
+ * @param peer_endpoint An endpoint object into which the endpoint of the
1725
+ * remote peer will be written.
1726
+ *
1727
+ * @param ec Set to indicate what error occurred, if any.
1728
+ *
1729
+ * @returns On success, a socket object representing the newly accepted
1730
+ * connection. On error, a socket object where is_open() is false.
1731
+ *
1732
+ * @par Example
1733
+ * @code
1734
+ * boost::asio::ip::tcp::acceptor acceptor(io_context);
1735
+ * ...
1736
+ * boost::asio::ip::tcp::endpoint endpoint;
1737
+ * boost::asio::ip::tcp::socket socket(acceptor.accept(endpoint, ec));
1738
+ * if (ec)
1739
+ * {
1740
+ * // An error occurred.
1741
+ * }
1742
+ * @endcode
1743
+ */
1744
+ typename Protocol::socket accept(
1745
+ endpoint_type& peer_endpoint, boost::system::error_code& ec)
1746
+ {
1747
+ return this->get_service().accept(this->get_implementation(),
1748
+ static_cast<boost::asio::io_context*>(0), &peer_endpoint, ec);
1749
+ }
1750
+
1751
+ /// Start an asynchronous accept.
1752
+ /**
1753
+ * This function is used to asynchronously accept a new connection. The
1754
+ * function call always returns immediately.
1755
+ *
1756
+ * This overload requires that the Protocol template parameter satisfy the
1757
+ * AcceptableProtocol type requirements.
1758
+ *
1759
+ * @param peer_endpoint An endpoint object into which the endpoint of the
1760
+ * remote peer will be written. Ownership of the peer_endpoint object is
1761
+ * retained by the caller, which must guarantee that it is valid until the
1762
+ * handler is called.
1763
+ *
1764
+ * @param handler The handler to be called when the accept operation
1765
+ * completes. Copies will be made of the handler as required. The function
1766
+ * signature of the handler must be:
1767
+ * @code void handler(
1768
+ * const boost::system::error_code& error, // Result of operation.
1769
+ * typename Protocol::socket peer // On success, the newly accepted socket.
1770
+ * ); @endcode
1771
+ * Regardless of whether the asynchronous operation completes immediately or
1772
+ * not, the handler will not be invoked from within this function. Invocation
1773
+ * of the handler will be performed in a manner equivalent to using
1774
+ * boost::asio::io_context::post().
1775
+ *
1776
+ * @par Example
1777
+ * @code
1778
+ * void accept_handler(const boost::system::error_code& error,
1779
+ * boost::asio::ip::tcp::socket peer)
1780
+ * {
1781
+ * if (!error)
1782
+ * {
1783
+ * // Accept succeeded.
1784
+ * }
1785
+ * }
1786
+ *
1787
+ * ...
1788
+ *
1789
+ * boost::asio::ip::tcp::acceptor acceptor(io_context);
1790
+ * ...
1791
+ * boost::asio::ip::tcp::endpoint endpoint;
1792
+ * acceptor.async_accept(endpoint, accept_handler);
1793
+ * @endcode
1794
+ */
1795
+ template <typename MoveAcceptHandler>
1796
+ BOOST_ASIO_INITFN_RESULT_TYPE(MoveAcceptHandler,
1797
+ void (boost::system::error_code, typename Protocol::socket))
1798
+ async_accept(endpoint_type& peer_endpoint,
1799
+ BOOST_ASIO_MOVE_ARG(MoveAcceptHandler) handler)
1800
+ {
1801
+ // If you get an error on the following line it means that your handler does
1802
+ // not meet the documented type requirements for a MoveAcceptHandler.
1803
+ BOOST_ASIO_MOVE_ACCEPT_HANDLER_CHECK(MoveAcceptHandler,
1804
+ handler, typename Protocol::socket) type_check;
1805
+
1806
+ #if defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
1807
+ return this->get_service().async_accept(this->get_implementation(),
1808
+ static_cast<boost::asio::io_context*>(0), &peer_endpoint,
1809
+ BOOST_ASIO_MOVE_CAST(MoveAcceptHandler)(handler));
1810
+ #else // defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
1811
+ async_completion<MoveAcceptHandler,
1812
+ void (boost::system::error_code,
1813
+ typename Protocol::socket)> init(handler);
1814
+
1815
+ this->get_service().async_accept(this->get_implementation(),
1816
+ static_cast<boost::asio::io_context*>(0), &peer_endpoint,
1817
+ init.completion_handler);
1818
+
1819
+ return init.result.get();
1820
+ #endif // defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
1821
+ }
1822
+
1823
+ /// Accept a new connection.
1824
+ /**
1825
+ * This function is used to accept a new connection from a peer. The function
1826
+ * call will block until a new connection has been accepted successfully or
1827
+ * an error occurs.
1828
+ *
1829
+ * This overload requires that the Protocol template parameter satisfy the
1830
+ * AcceptableProtocol type requirements.
1831
+ *
1832
+ * @param io_context The io_context object to be used for the newly accepted
1833
+ * socket.
1834
+ *
1835
+ * @param peer_endpoint An endpoint object into which the endpoint of the
1836
+ * remote peer will be written.
1837
+ *
1838
+ * @returns A socket object representing the newly accepted connection.
1839
+ *
1840
+ * @throws boost::system::system_error Thrown on failure.
1841
+ *
1842
+ * @par Example
1843
+ * @code
1844
+ * boost::asio::ip::tcp::acceptor acceptor(io_context);
1845
+ * ...
1846
+ * boost::asio::ip::tcp::endpoint endpoint;
1847
+ * boost::asio::ip::tcp::socket socket(
1848
+ * acceptor.accept(io_context2, endpoint));
1849
+ * @endcode
1850
+ */
1851
+ typename Protocol::socket accept(
1852
+ boost::asio::io_context& io_context, endpoint_type& peer_endpoint)
1853
+ {
1854
+ boost::system::error_code ec;
1855
+ typename Protocol::socket peer(
1856
+ this->get_service().accept(this->get_implementation(),
1857
+ &io_context, &peer_endpoint, ec));
1858
+ boost::asio::detail::throw_error(ec, "accept");
1859
+ return peer;
1860
+ }
1861
+
1862
+ /// Accept a new connection.
1863
+ /**
1864
+ * This function is used to accept a new connection from a peer. The function
1865
+ * call will block until a new connection has been accepted successfully or
1866
+ * an error occurs.
1867
+ *
1868
+ * This overload requires that the Protocol template parameter satisfy the
1869
+ * AcceptableProtocol type requirements.
1870
+ *
1871
+ * @param io_context The io_context object to be used for the newly accepted
1872
+ * socket.
1873
+ *
1874
+ * @param peer_endpoint An endpoint object into which the endpoint of the
1875
+ * remote peer will be written.
1876
+ *
1877
+ * @param ec Set to indicate what error occurred, if any.
1878
+ *
1879
+ * @returns On success, a socket object representing the newly accepted
1880
+ * connection. On error, a socket object where is_open() is false.
1881
+ *
1882
+ * @par Example
1883
+ * @code
1884
+ * boost::asio::ip::tcp::acceptor acceptor(io_context);
1885
+ * ...
1886
+ * boost::asio::ip::tcp::endpoint endpoint;
1887
+ * boost::asio::ip::tcp::socket socket(
1888
+ * acceptor.accept(io_context2, endpoint, ec));
1889
+ * if (ec)
1890
+ * {
1891
+ * // An error occurred.
1892
+ * }
1893
+ * @endcode
1894
+ */
1895
+ typename Protocol::socket accept(boost::asio::io_context& io_context,
1896
+ endpoint_type& peer_endpoint, boost::system::error_code& ec)
1897
+ {
1898
+ return this->get_service().accept(this->get_implementation(),
1899
+ &io_context, &peer_endpoint, ec);
1900
+ }
1901
+
1902
+ /// Start an asynchronous accept.
1903
+ /**
1904
+ * This function is used to asynchronously accept a new connection. The
1905
+ * function call always returns immediately.
1906
+ *
1907
+ * This overload requires that the Protocol template parameter satisfy the
1908
+ * AcceptableProtocol type requirements.
1909
+ *
1910
+ * @param io_context The io_context object to be used for the newly accepted
1911
+ * socket.
1912
+ *
1913
+ * @param peer_endpoint An endpoint object into which the endpoint of the
1914
+ * remote peer will be written. Ownership of the peer_endpoint object is
1915
+ * retained by the caller, which must guarantee that it is valid until the
1916
+ * handler is called.
1917
+ *
1918
+ * @param handler The handler to be called when the accept operation
1919
+ * completes. Copies will be made of the handler as required. The function
1920
+ * signature of the handler must be:
1921
+ * @code void handler(
1922
+ * const boost::system::error_code& error, // Result of operation.
1923
+ * typename Protocol::socket peer // On success, the newly accepted socket.
1924
+ * ); @endcode
1925
+ * Regardless of whether the asynchronous operation completes immediately or
1926
+ * not, the handler will not be invoked from within this function. Invocation
1927
+ * of the handler will be performed in a manner equivalent to using
1928
+ * boost::asio::io_context::post().
1929
+ *
1930
+ * @par Example
1931
+ * @code
1932
+ * void accept_handler(const boost::system::error_code& error,
1933
+ * boost::asio::ip::tcp::socket peer)
1934
+ * {
1935
+ * if (!error)
1936
+ * {
1937
+ * // Accept succeeded.
1938
+ * }
1939
+ * }
1940
+ *
1941
+ * ...
1942
+ *
1943
+ * boost::asio::ip::tcp::acceptor acceptor(io_context);
1944
+ * ...
1945
+ * boost::asio::ip::tcp::endpoint endpoint;
1946
+ * acceptor.async_accept(io_context2, endpoint, accept_handler);
1947
+ * @endcode
1948
+ */
1949
+ template <typename MoveAcceptHandler>
1950
+ BOOST_ASIO_INITFN_RESULT_TYPE(MoveAcceptHandler,
1951
+ void (boost::system::error_code, typename Protocol::socket))
1952
+ async_accept(boost::asio::io_context& io_context,
1953
+ endpoint_type& peer_endpoint,
1954
+ BOOST_ASIO_MOVE_ARG(MoveAcceptHandler) handler)
1955
+ {
1956
+ // If you get an error on the following line it means that your handler does
1957
+ // not meet the documented type requirements for a MoveAcceptHandler.
1958
+ BOOST_ASIO_MOVE_ACCEPT_HANDLER_CHECK(MoveAcceptHandler,
1959
+ handler, typename Protocol::socket) type_check;
1960
+
1961
+ #if defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
1962
+ return this->get_service().async_accept(
1963
+ this->get_implementation(), &io_context, &peer_endpoint,
1964
+ BOOST_ASIO_MOVE_CAST(MoveAcceptHandler)(handler));
1965
+ #else // defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
1966
+ async_completion<MoveAcceptHandler,
1967
+ void (boost::system::error_code,
1968
+ typename Protocol::socket)> init(handler);
1969
+
1970
+ this->get_service().async_accept(this->get_implementation(),
1971
+ &io_context, &peer_endpoint, init.completion_handler);
1972
+
1973
+ return init.result.get();
1974
+ #endif // defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
1129
1975
  }
1976
+ #endif // defined(BOOST_ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION)
1130
1977
  };
1131
1978
 
1132
1979
  } // namespace asio
@@ -1134,4 +1981,8 @@ public:
1134
1981
 
1135
1982
  #include <boost/asio/detail/pop_options.hpp>
1136
1983
 
1984
+ #if !defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
1985
+ # undef BOOST_ASIO_SVC_T
1986
+ #endif // !defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
1987
+
1137
1988
  #endif // BOOST_ASIO_BASIC_SOCKET_ACCEPTOR_HPP