passenger 5.3.3 → 5.3.4

Sign up to get free protection for your applications and to get access to all the features.
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.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,8 +22,26 @@
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/post.hpp>
25
26
  #include <boost/asio/socket_base.hpp>
26
27
 
28
+ #if defined(BOOST_ASIO_HAS_MOVE)
29
+ # include <utility>
30
+ #endif // defined(BOOST_ASIO_HAS_MOVE)
31
+
32
+ #if !defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
33
+ # if defined(BOOST_ASIO_WINDOWS_RUNTIME)
34
+ # include <boost/asio/detail/winrt_ssocket_service.hpp>
35
+ # define BOOST_ASIO_SVC_T detail::winrt_ssocket_service<Protocol>
36
+ # elif defined(BOOST_ASIO_HAS_IOCP)
37
+ # include <boost/asio/detail/win_iocp_socket_service.hpp>
38
+ # define BOOST_ASIO_SVC_T detail::win_iocp_socket_service<Protocol>
39
+ # else
40
+ # include <boost/asio/detail/reactive_socket_service.hpp>
41
+ # define BOOST_ASIO_SVC_T detail::reactive_socket_service<Protocol>
42
+ # endif
43
+ #endif // !defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
44
+
27
45
  #include <boost/asio/detail/push_options.hpp>
28
46
 
29
47
  namespace boost {
@@ -38,18 +56,21 @@ namespace asio {
38
56
  * @e Distinct @e objects: Safe.@n
39
57
  * @e Shared @e objects: Unsafe.
40
58
  */
41
- template <typename Protocol, typename SocketService>
59
+ template <typename Protocol BOOST_ASIO_SVC_TPARAM>
42
60
  class basic_socket
43
- : public basic_io_object<SocketService>,
61
+ : BOOST_ASIO_SVC_ACCESS basic_io_object<BOOST_ASIO_SVC_T>,
44
62
  public socket_base
45
63
  {
46
64
  public:
47
- /// (Deprecated: Use native_handle_type.) The native representation of a
48
- /// socket.
49
- typedef typename SocketService::native_handle_type native_type;
65
+ /// The type of the executor associated with the object.
66
+ typedef io_context::executor_type executor_type;
50
67
 
51
68
  /// The native representation of a socket.
52
- typedef typename SocketService::native_handle_type native_handle_type;
69
+ #if defined(GENERATING_DOCUMENTATION)
70
+ typedef implementation_defined native_handle_type;
71
+ #else
72
+ typedef typename BOOST_ASIO_SVC_T::native_handle_type native_handle_type;
73
+ #endif
53
74
 
54
75
  /// The protocol type.
55
76
  typedef Protocol protocol_type;
@@ -57,18 +78,20 @@ public:
57
78
  /// The endpoint type.
58
79
  typedef typename Protocol::endpoint endpoint_type;
59
80
 
81
+ #if !defined(BOOST_ASIO_NO_EXTENSIONS)
60
82
  /// A basic_socket is always the lowest layer.
61
- typedef basic_socket<Protocol, SocketService> lowest_layer_type;
83
+ typedef basic_socket<Protocol BOOST_ASIO_SVC_TARG> lowest_layer_type;
84
+ #endif // !defined(BOOST_ASIO_NO_EXTENSIONS)
62
85
 
63
86
  /// Construct a basic_socket without opening it.
64
87
  /**
65
88
  * This constructor creates a socket without opening it.
66
89
  *
67
- * @param io_service The io_service object that the socket will use to
90
+ * @param io_context The io_context object that the socket will use to
68
91
  * dispatch handlers for any asynchronous operations performed on the socket.
69
92
  */
70
- explicit basic_socket(boost::asio::io_service& io_service)
71
- : basic_io_object<SocketService>(io_service)
93
+ explicit basic_socket(boost::asio::io_context& io_context)
94
+ : basic_io_object<BOOST_ASIO_SVC_T>(io_context)
72
95
  {
73
96
  }
74
97
 
@@ -76,16 +99,16 @@ public:
76
99
  /**
77
100
  * This constructor creates and opens a socket.
78
101
  *
79
- * @param io_service The io_service object that the socket will use to
102
+ * @param io_context The io_context object that the socket will use to
80
103
  * dispatch handlers for any asynchronous operations performed on the socket.
81
104
  *
82
105
  * @param protocol An object specifying protocol parameters to be used.
83
106
  *
84
107
  * @throws boost::system::system_error Thrown on failure.
85
108
  */
86
- basic_socket(boost::asio::io_service& io_service,
109
+ basic_socket(boost::asio::io_context& io_context,
87
110
  const protocol_type& protocol)
88
- : basic_io_object<SocketService>(io_service)
111
+ : basic_io_object<BOOST_ASIO_SVC_T>(io_context)
89
112
  {
90
113
  boost::system::error_code ec;
91
114
  this->get_service().open(this->get_implementation(), protocol, ec);
@@ -99,7 +122,7 @@ public:
99
122
  * specified endpoint on the local machine. The protocol used is the protocol
100
123
  * associated with the given endpoint.
101
124
  *
102
- * @param io_service The io_service object that the socket will use to
125
+ * @param io_context The io_context object that the socket will use to
103
126
  * dispatch handlers for any asynchronous operations performed on the socket.
104
127
  *
105
128
  * @param endpoint An endpoint on the local machine to which the socket will
@@ -107,9 +130,9 @@ public:
107
130
  *
108
131
  * @throws boost::system::system_error Thrown on failure.
109
132
  */
110
- basic_socket(boost::asio::io_service& io_service,
133
+ basic_socket(boost::asio::io_context& io_context,
111
134
  const endpoint_type& endpoint)
112
- : basic_io_object<SocketService>(io_service)
135
+ : basic_io_object<BOOST_ASIO_SVC_T>(io_context)
113
136
  {
114
137
  boost::system::error_code ec;
115
138
  const protocol_type protocol = endpoint.protocol();
@@ -123,7 +146,7 @@ public:
123
146
  /**
124
147
  * This constructor creates a socket object to hold an existing native socket.
125
148
  *
126
- * @param io_service The io_service object that the socket will use to
149
+ * @param io_context The io_context object that the socket will use to
127
150
  * dispatch handlers for any asynchronous operations performed on the socket.
128
151
  *
129
152
  * @param protocol An object specifying protocol parameters to be used.
@@ -132,9 +155,9 @@ public:
132
155
  *
133
156
  * @throws boost::system::system_error Thrown on failure.
134
157
  */
135
- basic_socket(boost::asio::io_service& io_service,
158
+ basic_socket(boost::asio::io_context& io_context,
136
159
  const protocol_type& protocol, const native_handle_type& native_socket)
137
- : basic_io_object<SocketService>(io_service)
160
+ : basic_io_object<BOOST_ASIO_SVC_T>(io_context)
138
161
  {
139
162
  boost::system::error_code ec;
140
163
  this->get_service().assign(this->get_implementation(),
@@ -151,11 +174,10 @@ public:
151
174
  * occur.
152
175
  *
153
176
  * @note Following the move, the moved-from object is in the same state as if
154
- * constructed using the @c basic_socket(io_service&) constructor.
177
+ * constructed using the @c basic_socket(io_context&) constructor.
155
178
  */
156
179
  basic_socket(basic_socket&& other)
157
- : basic_io_object<SocketService>(
158
- BOOST_ASIO_MOVE_CAST(basic_socket)(other))
180
+ : basic_io_object<BOOST_ASIO_SVC_T>(std::move(other))
159
181
  {
160
182
  }
161
183
 
@@ -167,17 +189,16 @@ public:
167
189
  * occur.
168
190
  *
169
191
  * @note Following the move, the moved-from object is in the same state as if
170
- * constructed using the @c basic_socket(io_service&) constructor.
192
+ * constructed using the @c basic_socket(io_context&) constructor.
171
193
  */
172
194
  basic_socket& operator=(basic_socket&& other)
173
195
  {
174
- basic_io_object<SocketService>::operator=(
175
- BOOST_ASIO_MOVE_CAST(basic_socket)(other));
196
+ basic_io_object<BOOST_ASIO_SVC_T>::operator=(std::move(other));
176
197
  return *this;
177
198
  }
178
199
 
179
200
  // All sockets have access to each other's implementations.
180
- template <typename Protocol1, typename SocketService1>
201
+ template <typename Protocol1 BOOST_ASIO_SVC_TPARAM1>
181
202
  friend class basic_socket;
182
203
 
183
204
  /// Move-construct a basic_socket from a socket of another protocol type.
@@ -188,12 +209,12 @@ public:
188
209
  * 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(io_service&) constructor.
212
+ * constructed using the @c basic_socket(io_context&) constructor.
192
213
  */
193
- template <typename Protocol1, typename SocketService1>
194
- basic_socket(basic_socket<Protocol1, SocketService1>&& other,
214
+ template <typename Protocol1 BOOST_ASIO_SVC_TPARAM1>
215
+ basic_socket(basic_socket<Protocol1 BOOST_ASIO_SVC_TARG1>&& other,
195
216
  typename enable_if<is_convertible<Protocol1, Protocol>::value>::type* = 0)
196
- : basic_io_object<SocketService>(
217
+ : basic_io_object<BOOST_ASIO_SVC_T>(
197
218
  other.get_service(), other.get_implementation())
198
219
  {
199
220
  }
@@ -206,21 +227,60 @@ public:
206
227
  * occur.
207
228
  *
208
229
  * @note Following the move, the moved-from object is in the same state as if
209
- * constructed using the @c basic_socket(io_service&) constructor.
230
+ * constructed using the @c basic_socket(io_context&) constructor.
210
231
  */
211
- template <typename Protocol1, typename SocketService1>
232
+ template <typename Protocol1 BOOST_ASIO_SVC_TPARAM1>
212
233
  typename enable_if<is_convertible<Protocol1, Protocol>::value,
213
234
  basic_socket>::type& operator=(
214
- basic_socket<Protocol1, SocketService1>&& other)
235
+ basic_socket<Protocol1 BOOST_ASIO_SVC_TARG1>&& other)
215
236
  {
216
- basic_socket tmp(BOOST_ASIO_MOVE_CAST2(basic_socket<
217
- Protocol1, SocketService1>)(other));
218
- basic_io_object<SocketService>::operator=(
219
- BOOST_ASIO_MOVE_CAST(basic_socket)(tmp));
237
+ basic_socket tmp(std::move(other));
238
+ basic_io_object<BOOST_ASIO_SVC_T>::operator=(std::move(tmp));
220
239
  return *this;
221
240
  }
222
241
  #endif // defined(BOOST_ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION)
223
242
 
243
+ #if defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
244
+ // These functions are provided by basic_io_object<>.
245
+ #else // defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
246
+ #if !defined(BOOST_ASIO_NO_DEPRECATED)
247
+ /// (Deprecated: Use get_executor().) Get the io_context associated with the
248
+ /// object.
249
+ /**
250
+ * This function may be used to obtain the io_context object that the I/O
251
+ * object uses to dispatch handlers for asynchronous operations.
252
+ *
253
+ * @return A reference to the io_context object that the I/O object will use
254
+ * to dispatch handlers. Ownership is not transferred to the caller.
255
+ */
256
+ boost::asio::io_context& get_io_context()
257
+ {
258
+ return basic_io_object<BOOST_ASIO_SVC_T>::get_io_context();
259
+ }
260
+
261
+ /// (Deprecated: Use get_executor().) Get the io_context associated with the
262
+ /// object.
263
+ /**
264
+ * This function may be used to obtain the io_context object that the I/O
265
+ * object uses to dispatch handlers for asynchronous operations.
266
+ *
267
+ * @return A reference to the io_context object that the I/O object will use
268
+ * to dispatch handlers. Ownership is not transferred to the caller.
269
+ */
270
+ boost::asio::io_context& get_io_service()
271
+ {
272
+ return basic_io_object<BOOST_ASIO_SVC_T>::get_io_service();
273
+ }
274
+ #endif // !defined(BOOST_ASIO_NO_DEPRECATED)
275
+
276
+ /// Get the executor associated with the object.
277
+ executor_type get_executor() BOOST_ASIO_NOEXCEPT
278
+ {
279
+ return basic_io_object<BOOST_ASIO_SVC_T>::get_executor();
280
+ }
281
+ #endif // defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
282
+
283
+ #if !defined(BOOST_ASIO_NO_EXTENSIONS)
224
284
  /// Get a reference to the lowest layer.
225
285
  /**
226
286
  * This function returns a reference to the lowest layer in a stack of
@@ -248,6 +308,7 @@ public:
248
308
  {
249
309
  return *this;
250
310
  }
311
+ #endif // !defined(BOOST_ASIO_NO_EXTENSIONS)
251
312
 
252
313
  /// Open the socket using the specified protocol.
253
314
  /**
@@ -259,7 +320,7 @@ public:
259
320
  *
260
321
  * @par Example
261
322
  * @code
262
- * boost::asio::ip::tcp::socket socket(io_service);
323
+ * boost::asio::ip::tcp::socket socket(io_context);
263
324
  * socket.open(boost::asio::ip::tcp::v4());
264
325
  * @endcode
265
326
  */
@@ -280,7 +341,7 @@ public:
280
341
  *
281
342
  * @par Example
282
343
  * @code
283
- * boost::asio::ip::tcp::socket socket(io_service);
344
+ * boost::asio::ip::tcp::socket socket(io_context);
284
345
  * boost::system::error_code ec;
285
346
  * socket.open(boost::asio::ip::tcp::v4(), ec);
286
347
  * if (ec)
@@ -289,10 +350,11 @@ public:
289
350
  * }
290
351
  * @endcode
291
352
  */
292
- boost::system::error_code open(const protocol_type& protocol,
353
+ BOOST_ASIO_SYNC_OP_VOID open(const protocol_type& protocol,
293
354
  boost::system::error_code& ec)
294
355
  {
295
- return this->get_service().open(this->get_implementation(), protocol, ec);
356
+ this->get_service().open(this->get_implementation(), protocol, ec);
357
+ BOOST_ASIO_SYNC_OP_VOID_RETURN(ec);
296
358
  }
297
359
 
298
360
  /// Assign an existing native socket to the socket.
@@ -324,11 +386,12 @@ public:
324
386
  *
325
387
  * @param ec Set to indicate what error occurred, if any.
326
388
  */
327
- boost::system::error_code assign(const protocol_type& protocol,
389
+ BOOST_ASIO_SYNC_OP_VOID assign(const protocol_type& protocol,
328
390
  const native_handle_type& native_socket, boost::system::error_code& ec)
329
391
  {
330
- return this->get_service().assign(this->get_implementation(),
392
+ this->get_service().assign(this->get_implementation(),
331
393
  protocol, native_socket, ec);
394
+ BOOST_ASIO_SYNC_OP_VOID_RETURN(ec);
332
395
  }
333
396
 
334
397
  /// Determine whether the socket is open.
@@ -367,7 +430,7 @@ public:
367
430
  *
368
431
  * @par Example
369
432
  * @code
370
- * boost::asio::ip::tcp::socket socket(io_service);
433
+ * boost::asio::ip::tcp::socket socket(io_context);
371
434
  * ...
372
435
  * boost::system::error_code ec;
373
436
  * socket.close(ec);
@@ -380,20 +443,62 @@ public:
380
443
  * @note For portable behaviour with respect to graceful closure of a
381
444
  * connected socket, call shutdown() before closing the socket.
382
445
  */
383
- boost::system::error_code close(boost::system::error_code& ec)
446
+ BOOST_ASIO_SYNC_OP_VOID close(boost::system::error_code& ec)
384
447
  {
385
- return this->get_service().close(this->get_implementation(), ec);
448
+ this->get_service().close(this->get_implementation(), ec);
449
+ BOOST_ASIO_SYNC_OP_VOID_RETURN(ec);
386
450
  }
387
451
 
388
- /// (Deprecated: Use native_handle().) Get the native socket representation.
452
+ /// Release ownership of the underlying native socket.
389
453
  /**
390
- * This function may be used to obtain the underlying representation of the
391
- * socket. This is intended to allow access to native socket functionality
392
- * that is not otherwise provided.
454
+ * This function causes all outstanding asynchronous connect, send and receive
455
+ * operations to finish immediately, and the handlers for cancelled operations
456
+ * will be passed the boost::asio::error::operation_aborted error. Ownership
457
+ * of the native socket is then transferred to the caller.
458
+ *
459
+ * @throws boost::system::system_error Thrown on failure.
460
+ *
461
+ * @note This function is unsupported on Windows versions prior to Windows
462
+ * 8.1, and will fail with boost::asio::error::operation_not_supported on
463
+ * these platforms.
464
+ */
465
+ #if defined(BOOST_ASIO_MSVC) && (BOOST_ASIO_MSVC >= 1400) \
466
+ && (!defined(_WIN32_WINNT) || _WIN32_WINNT < 0x0603)
467
+ __declspec(deprecated("This function always fails with "
468
+ "operation_not_supported when used on Windows versions "
469
+ "prior to Windows 8.1."))
470
+ #endif
471
+ native_handle_type release()
472
+ {
473
+ boost::system::error_code ec;
474
+ native_handle_type s = this->get_service().release(
475
+ this->get_implementation(), ec);
476
+ boost::asio::detail::throw_error(ec, "release");
477
+ return s;
478
+ }
479
+
480
+ /// Release ownership of the underlying native socket.
481
+ /**
482
+ * This function causes all outstanding asynchronous connect, send and receive
483
+ * operations to finish immediately, and the handlers for cancelled operations
484
+ * will be passed the boost::asio::error::operation_aborted error. Ownership
485
+ * of the native socket is then transferred to the caller.
486
+ *
487
+ * @param ec Set to indicate what error occurred, if any.
488
+ *
489
+ * @note This function is unsupported on Windows versions prior to Windows
490
+ * 8.1, and will fail with boost::asio::error::operation_not_supported on
491
+ * these platforms.
393
492
  */
394
- native_type native()
493
+ #if defined(BOOST_ASIO_MSVC) && (BOOST_ASIO_MSVC >= 1400) \
494
+ && (!defined(_WIN32_WINNT) || _WIN32_WINNT < 0x0603)
495
+ __declspec(deprecated("This function always fails with "
496
+ "operation_not_supported when used on Windows versions "
497
+ "prior to Windows 8.1."))
498
+ #endif
499
+ native_handle_type release(boost::system::error_code& ec)
395
500
  {
396
- return this->get_service().native_handle(this->get_implementation());
501
+ return this->get_service().release(this->get_implementation(), ec);
397
502
  }
398
503
 
399
504
  /// Get the native socket representation.
@@ -496,9 +601,10 @@ public:
496
601
  "operation_not_supported when used on Windows XP, Windows Server 2003, "
497
602
  "or earlier. Consult documentation for details."))
498
603
  #endif
499
- boost::system::error_code cancel(boost::system::error_code& ec)
604
+ BOOST_ASIO_SYNC_OP_VOID cancel(boost::system::error_code& ec)
500
605
  {
501
- return this->get_service().cancel(this->get_implementation(), ec);
606
+ this->get_service().cancel(this->get_implementation(), ec);
607
+ BOOST_ASIO_SYNC_OP_VOID_RETURN(ec);
502
608
  }
503
609
 
504
610
  /// Determine whether the socket is at the out-of-band data mark.
@@ -580,7 +686,7 @@ public:
580
686
  *
581
687
  * @par Example
582
688
  * @code
583
- * boost::asio::ip::tcp::socket socket(io_service);
689
+ * boost::asio::ip::tcp::socket socket(io_context);
584
690
  * socket.open(boost::asio::ip::tcp::v4());
585
691
  * socket.bind(boost::asio::ip::tcp::endpoint(
586
692
  * boost::asio::ip::tcp::v4(), 12345));
@@ -605,7 +711,7 @@ public:
605
711
  *
606
712
  * @par Example
607
713
  * @code
608
- * boost::asio::ip::tcp::socket socket(io_service);
714
+ * boost::asio::ip::tcp::socket socket(io_context);
609
715
  * socket.open(boost::asio::ip::tcp::v4());
610
716
  * boost::system::error_code ec;
611
717
  * socket.bind(boost::asio::ip::tcp::endpoint(
@@ -616,10 +722,11 @@ public:
616
722
  * }
617
723
  * @endcode
618
724
  */
619
- boost::system::error_code bind(const endpoint_type& endpoint,
725
+ BOOST_ASIO_SYNC_OP_VOID bind(const endpoint_type& endpoint,
620
726
  boost::system::error_code& ec)
621
727
  {
622
- return this->get_service().bind(this->get_implementation(), endpoint, ec);
728
+ this->get_service().bind(this->get_implementation(), endpoint, ec);
729
+ BOOST_ASIO_SYNC_OP_VOID_RETURN(ec);
623
730
  }
624
731
 
625
732
  /// Connect the socket to the specified endpoint.
@@ -639,7 +746,7 @@ public:
639
746
  *
640
747
  * @par Example
641
748
  * @code
642
- * boost::asio::ip::tcp::socket socket(io_service);
749
+ * boost::asio::ip::tcp::socket socket(io_context);
643
750
  * boost::asio::ip::tcp::endpoint endpoint(
644
751
  * boost::asio::ip::address::from_string("1.2.3.4"), 12345);
645
752
  * socket.connect(endpoint);
@@ -675,7 +782,7 @@ public:
675
782
  *
676
783
  * @par Example
677
784
  * @code
678
- * boost::asio::ip::tcp::socket socket(io_service);
785
+ * boost::asio::ip::tcp::socket socket(io_context);
679
786
  * boost::asio::ip::tcp::endpoint endpoint(
680
787
  * boost::asio::ip::address::from_string("1.2.3.4"), 12345);
681
788
  * boost::system::error_code ec;
@@ -686,20 +793,21 @@ public:
686
793
  * }
687
794
  * @endcode
688
795
  */
689
- boost::system::error_code connect(const endpoint_type& peer_endpoint,
796
+ BOOST_ASIO_SYNC_OP_VOID connect(const endpoint_type& peer_endpoint,
690
797
  boost::system::error_code& ec)
691
798
  {
692
799
  if (!is_open())
693
800
  {
694
- if (this->get_service().open(this->get_implementation(),
695
- peer_endpoint.protocol(), ec))
801
+ this->get_service().open(this->get_implementation(),
802
+ peer_endpoint.protocol(), ec);
803
+ if (ec)
696
804
  {
697
- return ec;
805
+ BOOST_ASIO_SYNC_OP_VOID_RETURN(ec);
698
806
  }
699
807
  }
700
808
 
701
- return this->get_service().connect(
702
- this->get_implementation(), peer_endpoint, ec);
809
+ this->get_service().connect(this->get_implementation(), peer_endpoint, ec);
810
+ BOOST_ASIO_SYNC_OP_VOID_RETURN(ec);
703
811
  }
704
812
 
705
813
  /// Start an asynchronous connect.
@@ -723,7 +831,7 @@ public:
723
831
  * Regardless of whether the asynchronous operation completes immediately or
724
832
  * not, the handler will not be invoked from within this function. Invocation
725
833
  * of the handler will be performed in a manner equivalent to using
726
- * boost::asio::io_service::post().
834
+ * boost::asio::io_context::post().
727
835
  *
728
836
  * @par Example
729
837
  * @code
@@ -737,7 +845,7 @@ public:
737
845
  *
738
846
  * ...
739
847
  *
740
- * boost::asio::ip::tcp::socket socket(io_service);
848
+ * boost::asio::ip::tcp::socket socket(io_context);
741
849
  * boost::asio::ip::tcp::endpoint endpoint(
742
850
  * boost::asio::ip::address::from_string("1.2.3.4"), 12345);
743
851
  * socket.async_connect(endpoint, connect_handler);
@@ -757,24 +865,34 @@ public:
757
865
  {
758
866
  boost::system::error_code ec;
759
867
  const protocol_type protocol = peer_endpoint.protocol();
760
- if (this->get_service().open(this->get_implementation(), protocol, ec))
868
+ this->get_service().open(this->get_implementation(), protocol, ec);
869
+ if (ec)
761
870
  {
762
- detail::async_result_init<
763
- ConnectHandler, void (boost::system::error_code)> init(
764
- BOOST_ASIO_MOVE_CAST(ConnectHandler)(handler));
871
+ async_completion<ConnectHandler,
872
+ void (boost::system::error_code)> init(handler);
765
873
 
766
- this->get_io_service().post(
874
+ boost::asio::post(this->get_executor(),
767
875
  boost::asio::detail::bind_handler(
768
876
  BOOST_ASIO_MOVE_CAST(BOOST_ASIO_HANDLER_TYPE(
769
877
  ConnectHandler, void (boost::system::error_code)))(
770
- init.handler), ec));
878
+ init.completion_handler), ec));
771
879
 
772
880
  return init.result.get();
773
881
  }
774
882
  }
775
883
 
884
+ #if defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
776
885
  return this->get_service().async_connect(this->get_implementation(),
777
886
  peer_endpoint, BOOST_ASIO_MOVE_CAST(ConnectHandler)(handler));
887
+ #else // defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
888
+ async_completion<ConnectHandler,
889
+ void (boost::system::error_code)> init(handler);
890
+
891
+ this->get_service().async_connect(
892
+ this->get_implementation(), peer_endpoint, init.completion_handler);
893
+
894
+ return init.result.get();
895
+ #endif // defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
778
896
  }
779
897
 
780
898
  /// Set an option on the socket.
@@ -805,7 +923,7 @@ public:
805
923
  * @par Example
806
924
  * Setting the IPPROTO_TCP/TCP_NODELAY option:
807
925
  * @code
808
- * boost::asio::ip::tcp::socket socket(io_service);
926
+ * boost::asio::ip::tcp::socket socket(io_context);
809
927
  * ...
810
928
  * boost::asio::ip::tcp::no_delay option(true);
811
929
  * socket.set_option(option);
@@ -847,7 +965,7 @@ public:
847
965
  * @par Example
848
966
  * Setting the IPPROTO_TCP/TCP_NODELAY option:
849
967
  * @code
850
- * boost::asio::ip::tcp::socket socket(io_service);
968
+ * boost::asio::ip::tcp::socket socket(io_context);
851
969
  * ...
852
970
  * boost::asio::ip::tcp::no_delay option(true);
853
971
  * boost::system::error_code ec;
@@ -859,11 +977,11 @@ public:
859
977
  * @endcode
860
978
  */
861
979
  template <typename SettableSocketOption>
862
- boost::system::error_code set_option(const SettableSocketOption& option,
980
+ BOOST_ASIO_SYNC_OP_VOID set_option(const SettableSocketOption& option,
863
981
  boost::system::error_code& ec)
864
982
  {
865
- return this->get_service().set_option(
866
- this->get_implementation(), option, ec);
983
+ this->get_service().set_option(this->get_implementation(), option, ec);
984
+ BOOST_ASIO_SYNC_OP_VOID_RETURN(ec);
867
985
  }
868
986
 
869
987
  /// Get an option from the socket.
@@ -894,7 +1012,7 @@ public:
894
1012
  * @par Example
895
1013
  * Getting the value of the SOL_SOCKET/SO_KEEPALIVE option:
896
1014
  * @code
897
- * boost::asio::ip::tcp::socket socket(io_service);
1015
+ * boost::asio::ip::tcp::socket socket(io_context);
898
1016
  * ...
899
1017
  * boost::asio::ip::tcp::socket::keep_alive option;
900
1018
  * socket.get_option(option);
@@ -937,7 +1055,7 @@ public:
937
1055
  * @par Example
938
1056
  * Getting the value of the SOL_SOCKET/SO_KEEPALIVE option:
939
1057
  * @code
940
- * boost::asio::ip::tcp::socket socket(io_service);
1058
+ * boost::asio::ip::tcp::socket socket(io_context);
941
1059
  * ...
942
1060
  * boost::asio::ip::tcp::socket::keep_alive option;
943
1061
  * boost::system::error_code ec;
@@ -950,11 +1068,11 @@ public:
950
1068
  * @endcode
951
1069
  */
952
1070
  template <typename GettableSocketOption>
953
- boost::system::error_code get_option(GettableSocketOption& option,
1071
+ BOOST_ASIO_SYNC_OP_VOID get_option(GettableSocketOption& option,
954
1072
  boost::system::error_code& ec) const
955
1073
  {
956
- return this->get_service().get_option(
957
- this->get_implementation(), option, ec);
1074
+ this->get_service().get_option(this->get_implementation(), option, ec);
1075
+ BOOST_ASIO_SYNC_OP_VOID_RETURN(ec);
958
1076
  }
959
1077
 
960
1078
  /// Perform an IO control command on the socket.
@@ -972,7 +1090,7 @@ public:
972
1090
  * @par Example
973
1091
  * Getting the number of bytes ready to read:
974
1092
  * @code
975
- * boost::asio::ip::tcp::socket socket(io_service);
1093
+ * boost::asio::ip::tcp::socket socket(io_context);
976
1094
  * ...
977
1095
  * boost::asio::ip::tcp::socket::bytes_readable command;
978
1096
  * socket.io_control(command);
@@ -1002,7 +1120,7 @@ public:
1002
1120
  * @par Example
1003
1121
  * Getting the number of bytes ready to read:
1004
1122
  * @code
1005
- * boost::asio::ip::tcp::socket socket(io_service);
1123
+ * boost::asio::ip::tcp::socket socket(io_context);
1006
1124
  * ...
1007
1125
  * boost::asio::ip::tcp::socket::bytes_readable command;
1008
1126
  * boost::system::error_code ec;
@@ -1015,11 +1133,11 @@ public:
1015
1133
  * @endcode
1016
1134
  */
1017
1135
  template <typename IoControlCommand>
1018
- boost::system::error_code io_control(IoControlCommand& command,
1136
+ BOOST_ASIO_SYNC_OP_VOID io_control(IoControlCommand& command,
1019
1137
  boost::system::error_code& ec)
1020
1138
  {
1021
- return this->get_service().io_control(
1022
- this->get_implementation(), command, ec);
1139
+ this->get_service().io_control(this->get_implementation(), command, ec);
1140
+ BOOST_ASIO_SYNC_OP_VOID_RETURN(ec);
1023
1141
  }
1024
1142
 
1025
1143
  /// Gets the non-blocking mode of the socket.
@@ -1071,11 +1189,11 @@ public:
1071
1189
  * operations. Asynchronous operations will never fail with the error
1072
1190
  * boost::asio::error::would_block.
1073
1191
  */
1074
- boost::system::error_code non_blocking(
1192
+ BOOST_ASIO_SYNC_OP_VOID non_blocking(
1075
1193
  bool mode, boost::system::error_code& ec)
1076
1194
  {
1077
- return this->get_service().non_blocking(
1078
- this->get_implementation(), mode, ec);
1195
+ this->get_service().non_blocking(this->get_implementation(), mode, ec);
1196
+ BOOST_ASIO_SYNC_OP_VOID_RETURN(ec);
1079
1197
  }
1080
1198
 
1081
1199
  /// Gets the non-blocking mode of the native socket implementation.
@@ -1135,7 +1253,7 @@ public:
1135
1253
  * || ec == boost::asio::error::try_again)
1136
1254
  * {
1137
1255
  * // We have to wait for the socket to become ready again.
1138
- * sock_.async_write_some(boost::asio::null_buffers(), *this);
1256
+ * sock_.async_wait(tcp::socket::wait_write, *this);
1139
1257
  * return;
1140
1258
  * }
1141
1259
  *
@@ -1159,7 +1277,7 @@ public:
1159
1277
  * void async_sendfile(tcp::socket& sock, int fd, Handler h)
1160
1278
  * {
1161
1279
  * sendfile_op<Handler> op = { sock, fd, h, 0, 0 };
1162
- * sock.async_write_some(boost::asio::null_buffers(), op);
1280
+ * sock.async_wait(tcp::socket::wait_write, op);
1163
1281
  * } @endcode
1164
1282
  */
1165
1283
  bool native_non_blocking() const
@@ -1225,7 +1343,7 @@ public:
1225
1343
  * || ec == boost::asio::error::try_again)
1226
1344
  * {
1227
1345
  * // We have to wait for the socket to become ready again.
1228
- * sock_.async_write_some(boost::asio::null_buffers(), *this);
1346
+ * sock_.async_wait(tcp::socket::wait_write, *this);
1229
1347
  * return;
1230
1348
  * }
1231
1349
  *
@@ -1249,7 +1367,7 @@ public:
1249
1367
  * void async_sendfile(tcp::socket& sock, int fd, Handler h)
1250
1368
  * {
1251
1369
  * sendfile_op<Handler> op = { sock, fd, h, 0, 0 };
1252
- * sock.async_write_some(boost::asio::null_buffers(), op);
1370
+ * sock.async_wait(tcp::socket::wait_write, op);
1253
1371
  * } @endcode
1254
1372
  */
1255
1373
  void native_non_blocking(bool mode)
@@ -1318,7 +1436,7 @@ public:
1318
1436
  * || ec == boost::asio::error::try_again)
1319
1437
  * {
1320
1438
  * // We have to wait for the socket to become ready again.
1321
- * sock_.async_write_some(boost::asio::null_buffers(), *this);
1439
+ * sock_.async_wait(tcp::socket::wait_write, *this);
1322
1440
  * return;
1323
1441
  * }
1324
1442
  *
@@ -1342,14 +1460,15 @@ public:
1342
1460
  * void async_sendfile(tcp::socket& sock, int fd, Handler h)
1343
1461
  * {
1344
1462
  * sendfile_op<Handler> op = { sock, fd, h, 0, 0 };
1345
- * sock.async_write_some(boost::asio::null_buffers(), op);
1463
+ * sock.async_wait(tcp::socket::wait_write, op);
1346
1464
  * } @endcode
1347
1465
  */
1348
- boost::system::error_code native_non_blocking(
1466
+ BOOST_ASIO_SYNC_OP_VOID native_non_blocking(
1349
1467
  bool mode, boost::system::error_code& ec)
1350
1468
  {
1351
- return this->get_service().native_non_blocking(
1469
+ this->get_service().native_non_blocking(
1352
1470
  this->get_implementation(), mode, ec);
1471
+ BOOST_ASIO_SYNC_OP_VOID_RETURN(ec);
1353
1472
  }
1354
1473
 
1355
1474
  /// Get the local endpoint of the socket.
@@ -1362,7 +1481,7 @@ public:
1362
1481
  *
1363
1482
  * @par Example
1364
1483
  * @code
1365
- * boost::asio::ip::tcp::socket socket(io_service);
1484
+ * boost::asio::ip::tcp::socket socket(io_context);
1366
1485
  * ...
1367
1486
  * boost::asio::ip::tcp::endpoint endpoint = socket.local_endpoint();
1368
1487
  * @endcode
@@ -1387,7 +1506,7 @@ public:
1387
1506
  *
1388
1507
  * @par Example
1389
1508
  * @code
1390
- * boost::asio::ip::tcp::socket socket(io_service);
1509
+ * boost::asio::ip::tcp::socket socket(io_context);
1391
1510
  * ...
1392
1511
  * boost::system::error_code ec;
1393
1512
  * boost::asio::ip::tcp::endpoint endpoint = socket.local_endpoint(ec);
@@ -1412,7 +1531,7 @@ public:
1412
1531
  *
1413
1532
  * @par Example
1414
1533
  * @code
1415
- * boost::asio::ip::tcp::socket socket(io_service);
1534
+ * boost::asio::ip::tcp::socket socket(io_context);
1416
1535
  * ...
1417
1536
  * boost::asio::ip::tcp::endpoint endpoint = socket.remote_endpoint();
1418
1537
  * @endcode
@@ -1437,7 +1556,7 @@ public:
1437
1556
  *
1438
1557
  * @par Example
1439
1558
  * @code
1440
- * boost::asio::ip::tcp::socket socket(io_service);
1559
+ * boost::asio::ip::tcp::socket socket(io_context);
1441
1560
  * ...
1442
1561
  * boost::system::error_code ec;
1443
1562
  * boost::asio::ip::tcp::endpoint endpoint = socket.remote_endpoint(ec);
@@ -1464,7 +1583,7 @@ public:
1464
1583
  * @par Example
1465
1584
  * Shutting down the send side of the socket:
1466
1585
  * @code
1467
- * boost::asio::ip::tcp::socket socket(io_service);
1586
+ * boost::asio::ip::tcp::socket socket(io_context);
1468
1587
  * ...
1469
1588
  * socket.shutdown(boost::asio::ip::tcp::socket::shutdown_send);
1470
1589
  * @endcode
@@ -1488,7 +1607,7 @@ public:
1488
1607
  * @par Example
1489
1608
  * Shutting down the send side of the socket:
1490
1609
  * @code
1491
- * boost::asio::ip::tcp::socket socket(io_service);
1610
+ * boost::asio::ip::tcp::socket socket(io_context);
1492
1611
  * ...
1493
1612
  * boost::system::error_code ec;
1494
1613
  * socket.shutdown(boost::asio::ip::tcp::socket::shutdown_send, ec);
@@ -1498,17 +1617,134 @@ public:
1498
1617
  * }
1499
1618
  * @endcode
1500
1619
  */
1501
- boost::system::error_code shutdown(shutdown_type what,
1620
+ BOOST_ASIO_SYNC_OP_VOID shutdown(shutdown_type what,
1502
1621
  boost::system::error_code& ec)
1503
1622
  {
1504
- return this->get_service().shutdown(this->get_implementation(), what, ec);
1623
+ this->get_service().shutdown(this->get_implementation(), what, ec);
1624
+ BOOST_ASIO_SYNC_OP_VOID_RETURN(ec);
1625
+ }
1626
+
1627
+ /// Wait for the socket to become ready to read, ready to write, or to have
1628
+ /// pending error conditions.
1629
+ /**
1630
+ * This function is used to perform a blocking wait for a socket to enter
1631
+ * a ready to read, write or error condition state.
1632
+ *
1633
+ * @param w Specifies the desired socket state.
1634
+ *
1635
+ * @par Example
1636
+ * Waiting for a socket to become readable.
1637
+ * @code
1638
+ * boost::asio::ip::tcp::socket socket(io_context);
1639
+ * ...
1640
+ * socket.wait(boost::asio::ip::tcp::socket::wait_read);
1641
+ * @endcode
1642
+ */
1643
+ void wait(wait_type w)
1644
+ {
1645
+ boost::system::error_code ec;
1646
+ this->get_service().wait(this->get_implementation(), w, ec);
1647
+ boost::asio::detail::throw_error(ec, "wait");
1648
+ }
1649
+
1650
+ /// Wait for the socket to become ready to read, ready to write, or to have
1651
+ /// pending error conditions.
1652
+ /**
1653
+ * This function is used to perform a blocking wait for a socket to enter
1654
+ * a ready to read, write or error condition state.
1655
+ *
1656
+ * @param w Specifies the desired socket state.
1657
+ *
1658
+ * @param ec Set to indicate what error occurred, if any.
1659
+ *
1660
+ * @par Example
1661
+ * Waiting for a socket to become readable.
1662
+ * @code
1663
+ * boost::asio::ip::tcp::socket socket(io_context);
1664
+ * ...
1665
+ * boost::system::error_code ec;
1666
+ * socket.wait(boost::asio::ip::tcp::socket::wait_read, ec);
1667
+ * @endcode
1668
+ */
1669
+ BOOST_ASIO_SYNC_OP_VOID wait(wait_type w, boost::system::error_code& ec)
1670
+ {
1671
+ this->get_service().wait(this->get_implementation(), w, ec);
1672
+ BOOST_ASIO_SYNC_OP_VOID_RETURN(ec);
1673
+ }
1674
+
1675
+ /// Asynchronously wait for the socket to become ready to read, ready to
1676
+ /// write, or to have pending error conditions.
1677
+ /**
1678
+ * This function is used to perform an asynchronous wait for a socket to enter
1679
+ * a ready to read, write or error condition state.
1680
+ *
1681
+ * @param w Specifies the desired socket state.
1682
+ *
1683
+ * @param handler The handler to be called when the wait operation completes.
1684
+ * Copies will be made of the handler as required. The function signature of
1685
+ * the handler must be:
1686
+ * @code void handler(
1687
+ * const boost::system::error_code& error // Result of operation
1688
+ * ); @endcode
1689
+ * Regardless of whether the asynchronous operation completes immediately or
1690
+ * not, the handler will not be invoked from within this function. Invocation
1691
+ * of the handler will be performed in a manner equivalent to using
1692
+ * boost::asio::io_context::post().
1693
+ *
1694
+ * @par Example
1695
+ * @code
1696
+ * void wait_handler(const boost::system::error_code& error)
1697
+ * {
1698
+ * if (!error)
1699
+ * {
1700
+ * // Wait succeeded.
1701
+ * }
1702
+ * }
1703
+ *
1704
+ * ...
1705
+ *
1706
+ * boost::asio::ip::tcp::socket socket(io_context);
1707
+ * ...
1708
+ * socket.async_wait(boost::asio::ip::tcp::socket::wait_read, wait_handler);
1709
+ * @endcode
1710
+ */
1711
+ template <typename WaitHandler>
1712
+ BOOST_ASIO_INITFN_RESULT_TYPE(WaitHandler,
1713
+ void (boost::system::error_code))
1714
+ async_wait(wait_type w, BOOST_ASIO_MOVE_ARG(WaitHandler) handler)
1715
+ {
1716
+ // If you get an error on the following line it means that your handler does
1717
+ // not meet the documented type requirements for a WaitHandler.
1718
+ BOOST_ASIO_WAIT_HANDLER_CHECK(WaitHandler, handler) type_check;
1719
+
1720
+ #if defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
1721
+ return this->get_service().async_wait(this->get_implementation(),
1722
+ w, BOOST_ASIO_MOVE_CAST(WaitHandler)(handler));
1723
+ #else // defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
1724
+ async_completion<WaitHandler,
1725
+ void (boost::system::error_code)> init(handler);
1726
+
1727
+ this->get_service().async_wait(this->get_implementation(),
1728
+ w, init.completion_handler);
1729
+
1730
+ return init.result.get();
1731
+ #endif // defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
1505
1732
  }
1506
1733
 
1507
1734
  protected:
1508
1735
  /// Protected destructor to prevent deletion through this type.
1736
+ /**
1737
+ * This function destroys the socket, cancelling any outstanding asynchronous
1738
+ * operations associated with the socket as if by calling @c cancel.
1739
+ */
1509
1740
  ~basic_socket()
1510
1741
  {
1511
1742
  }
1743
+
1744
+ private:
1745
+ // Disallow copying and assignment.
1746
+ basic_socket(const basic_socket&) BOOST_ASIO_DELETED;
1747
+ basic_socket& operator=(const basic_socket&) BOOST_ASIO_DELETED;
1512
1748
  };
1513
1749
 
1514
1750
  } // namespace asio
@@ -1516,4 +1752,8 @@ protected:
1516
1752
 
1517
1753
  #include <boost/asio/detail/pop_options.hpp>
1518
1754
 
1755
+ #if !defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
1756
+ # undef BOOST_ASIO_SVC_T
1757
+ #endif // !defined(BOOST_ASIO_ENABLE_OLD_SERVICES)
1758
+
1519
1759
  #endif // BOOST_ASIO_BASIC_SOCKET_HPP