passenger 6.0.16 → 6.0.17

Sign up to get free protection for your applications and to get access to all the features.
Files changed (286) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG +22 -1
  3. data/build/integration_tests.rb +6 -6
  4. data/build/ruby_tests.rb +1 -1
  5. data/build/test_basics.rb +0 -1
  6. data/src/agent/Core/Config.h +1 -1
  7. data/src/agent/Core/Controller/Config.h +1 -1
  8. data/src/agent/Core/SpawningKit/PipeWatcher.h +18 -3
  9. data/src/agent/Watchdog/Config.h +1 -1
  10. data/src/cxx_supportlib/Constants.h +1 -1
  11. data/src/cxx_supportlib/vendor-modified/boost/align/aligned_alloc.hpp +1 -1
  12. data/src/cxx_supportlib/vendor-modified/boost/array.hpp +1 -1
  13. data/src/cxx_supportlib/vendor-modified/boost/asio/any_completion_executor.hpp +344 -0
  14. data/src/cxx_supportlib/vendor-modified/boost/asio/any_completion_handler.hpp +686 -0
  15. data/src/cxx_supportlib/vendor-modified/boost/asio/any_io_executor.hpp +56 -0
  16. data/src/cxx_supportlib/vendor-modified/boost/asio/associated_allocator.hpp +81 -25
  17. data/src/cxx_supportlib/vendor-modified/boost/asio/associated_cancellation_slot.hpp +68 -8
  18. data/src/cxx_supportlib/vendor-modified/boost/asio/associated_executor.hpp +46 -11
  19. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_datagram_socket.hpp +4 -4
  20. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_deadline_timer.hpp +2 -2
  21. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_file.hpp +1 -1
  22. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_random_access_file.hpp +2 -2
  23. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_raw_socket.hpp +4 -4
  24. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_readable_pipe.hpp +2 -2
  25. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_seq_packet_socket.hpp +2 -2
  26. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_serial_port.hpp +3 -3
  27. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_signal_set.hpp +2 -2
  28. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket.hpp +3 -3
  29. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket_acceptor.hpp +4 -4
  30. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_stream_file.hpp +2 -2
  31. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_stream_socket.hpp +2 -2
  32. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_waitable_timer.hpp +2 -2
  33. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_writable_pipe.hpp +2 -2
  34. data/src/cxx_supportlib/vendor-modified/boost/asio/bind_allocator.hpp +13 -3
  35. data/src/cxx_supportlib/vendor-modified/boost/asio/bind_cancellation_slot.hpp +14 -3
  36. data/src/cxx_supportlib/vendor-modified/boost/asio/bind_executor.hpp +13 -3
  37. data/src/cxx_supportlib/vendor-modified/boost/asio/compose.hpp +30 -305
  38. data/src/cxx_supportlib/vendor-modified/boost/asio/consign.hpp +90 -0
  39. data/src/cxx_supportlib/vendor-modified/boost/asio/defer.hpp +17 -18
  40. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/bind_handler.hpp +98 -24
  41. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/composed_work.hpp +330 -0
  42. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/config.hpp +81 -15
  43. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_alloc_helpers.hpp +4 -4
  44. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_work.hpp +19 -11
  45. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/descriptor_ops.ipp +37 -0
  46. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/handler_tracking.ipp +3 -1
  47. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/select_reactor.ipp +1 -1
  48. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/socket_ops.ipp +10 -2
  49. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_executor_service.hpp +14 -1
  50. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/memory.hpp +18 -0
  51. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/utility.hpp +1 -2
  52. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/work_dispatcher.hpp +7 -3
  53. data/src/cxx_supportlib/vendor-modified/boost/asio/dispatch.hpp +4 -14
  54. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/allocator.hpp +22 -3
  55. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/any_executor.hpp +447 -142
  56. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/blocking.hpp +57 -8
  57. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/blocking_adaptation.hpp +51 -6
  58. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/bulk_execute.hpp +5 -0
  59. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/bulk_guarantee.hpp +41 -4
  60. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/connect.hpp +5 -0
  61. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/context.hpp +13 -2
  62. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/context_as.hpp +13 -2
  63. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/detail/as_operation.hpp +4 -0
  64. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/execute.hpp +9 -2
  65. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/executor.hpp +11 -1
  66. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/mapping.hpp +52 -8
  67. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/occupancy.hpp +13 -2
  68. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/operation_state.hpp +5 -0
  69. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/outstanding_work.hpp +39 -6
  70. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/receiver.hpp +5 -0
  71. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/relationship.hpp +39 -6
  72. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/schedule.hpp +5 -0
  73. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/scheduler.hpp +5 -0
  74. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/sender.hpp +5 -0
  75. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/set_done.hpp +5 -0
  76. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/set_error.hpp +5 -0
  77. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/set_value.hpp +5 -0
  78. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/start.hpp +5 -0
  79. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/submit.hpp +5 -0
  80. data/src/cxx_supportlib/vendor-modified/boost/asio/executor_work_guard.hpp +6 -9
  81. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/basic_channel.hpp +3 -3
  82. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/basic_concurrent_channel.hpp +3 -3
  83. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/channel_traits.hpp +70 -0
  84. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/co_composed.hpp +146 -0
  85. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/coro.hpp +35 -5
  86. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_handler.hpp +13 -3
  87. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_operation.hpp +7 -0
  88. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_service.hpp +180 -0
  89. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/coro_completion_handler.hpp +171 -0
  90. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/coro_promise_allocator.hpp +89 -66
  91. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/partial_promise.hpp +66 -45
  92. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/as_single.hpp +13 -3
  93. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/co_composed.hpp +1134 -0
  94. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/coro.hpp +130 -106
  95. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/parallel_group.hpp +377 -3
  96. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/promise.hpp +168 -29
  97. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/use_coro.hpp +149 -203
  98. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/use_promise.hpp +68 -0
  99. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/parallel_group.hpp +256 -0
  100. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/promise.hpp +76 -80
  101. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/use_coro.hpp +40 -14
  102. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/use_promise.hpp +113 -0
  103. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/any_completion_executor.ipp +132 -0
  104. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/any_io_executor.ipp +12 -0
  105. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/append.hpp +12 -3
  106. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/as_tuple.hpp +12 -3
  107. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/buffered_read_stream.hpp +25 -6
  108. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/buffered_write_stream.hpp +25 -6
  109. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/co_spawn.hpp +34 -45
  110. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/connect.hpp +28 -6
  111. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/consign.hpp +204 -0
  112. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/defer.hpp +33 -1
  113. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/deferred.hpp +13 -3
  114. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/dispatch.hpp +21 -9
  115. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/handler_alloc_hook.ipp +1 -1
  116. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/post.hpp +33 -1
  117. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/prepend.hpp +12 -3
  118. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read.hpp +40 -9
  119. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_at.hpp +27 -6
  120. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_until.hpp +104 -24
  121. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/redirect_error.hpp +12 -3
  122. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/spawn.hpp +70 -15
  123. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/src.hpp +1 -0
  124. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/use_future.hpp +25 -0
  125. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/write.hpp +38 -30
  126. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/write_at.hpp +27 -6
  127. data/src/cxx_supportlib/vendor-modified/boost/asio/io_context.hpp +0 -13
  128. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/network_v4.ipp +3 -1
  129. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/network_v6.ipp +3 -1
  130. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/basic_descriptor.hpp +2 -2
  131. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/basic_stream_descriptor.hpp +2 -2
  132. data/src/cxx_supportlib/vendor-modified/boost/asio/post.hpp +17 -18
  133. data/src/cxx_supportlib/vendor-modified/boost/asio/spawn.hpp +3 -1
  134. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/io.hpp +13 -3
  135. data/src/cxx_supportlib/vendor-modified/boost/asio/strand.hpp +11 -7
  136. data/src/cxx_supportlib/vendor-modified/boost/asio/system_executor.hpp +0 -13
  137. data/src/cxx_supportlib/vendor-modified/boost/asio/thread_pool.hpp +23 -18
  138. data/src/cxx_supportlib/vendor-modified/boost/asio/version.hpp +1 -1
  139. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_object_handle.hpp +2 -2
  140. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_overlapped_handle.hpp +1 -1
  141. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_random_access_handle.hpp +2 -2
  142. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_stream_handle.hpp +2 -2
  143. data/src/cxx_supportlib/vendor-modified/boost/asio.hpp +4 -0
  144. data/src/cxx_supportlib/vendor-modified/boost/bind/bind.hpp +1 -1
  145. data/src/cxx_supportlib/vendor-modified/boost/chrono/config.hpp +1 -0
  146. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/mac/chrono.hpp +4 -4
  147. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/scan_keyword.hpp +4 -2
  148. data/src/cxx_supportlib/vendor-modified/boost/chrono/duration.hpp +2 -2
  149. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/duration_io.hpp +3 -3
  150. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/duration_put.hpp +5 -5
  151. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/duration_units.hpp +2 -2
  152. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/time_point_io.hpp +2 -2
  153. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/utility/ios_base_state_ptr.hpp +7 -7
  154. data/src/cxx_supportlib/vendor-modified/boost/chrono/time_point.hpp +1 -1
  155. data/src/cxx_supportlib/vendor-modified/boost/circular_buffer/details.hpp +5 -1
  156. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/clang.hpp +10 -3
  157. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/clang_version.hpp +9 -3
  158. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/gcc.hpp +9 -3
  159. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/sunpro_cc.hpp +6 -0
  160. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/visualc.hpp +8 -0
  161. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/xlcpp.hpp +4 -0
  162. data/src/cxx_supportlib/vendor-modified/boost/config/detail/suffix.hpp +33 -0
  163. data/src/cxx_supportlib/vendor-modified/boost/config/header_deprecated.hpp +1 -1
  164. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libcpp.hpp +9 -0
  165. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libstdcpp3.hpp +4 -2
  166. data/src/cxx_supportlib/vendor-modified/boost/container/allocator.hpp +1 -1
  167. data/src/cxx_supportlib/vendor-modified/boost/container/container_fwd.hpp +29 -0
  168. data/src/cxx_supportlib/vendor-modified/boost/container/deque.hpp +13 -13
  169. data/src/cxx_supportlib/vendor-modified/boost/container/detail/advanced_insert_int.hpp +80 -95
  170. data/src/cxx_supportlib/vendor-modified/boost/container/detail/config_begin.hpp +10 -0
  171. data/src/cxx_supportlib/vendor-modified/boost/container/detail/config_end.hpp +3 -0
  172. data/src/cxx_supportlib/vendor-modified/boost/container/detail/copy_move_algo.hpp +738 -34
  173. data/src/cxx_supportlib/vendor-modified/boost/container/detail/destroyers.hpp +38 -10
  174. data/src/cxx_supportlib/vendor-modified/boost/container/detail/flat_tree.hpp +1 -0
  175. data/src/cxx_supportlib/vendor-modified/boost/container/detail/iterator.hpp +2 -0
  176. data/src/cxx_supportlib/vendor-modified/boost/container/detail/workaround.hpp +3 -4
  177. data/src/cxx_supportlib/vendor-modified/boost/container/devector.hpp +1150 -1213
  178. data/src/cxx_supportlib/vendor-modified/boost/container/node_allocator.hpp +1 -1
  179. data/src/cxx_supportlib/vendor-modified/boost/container/options.hpp +104 -12
  180. data/src/cxx_supportlib/vendor-modified/boost/container/stable_vector.hpp +1 -0
  181. data/src/cxx_supportlib/vendor-modified/boost/container/string.hpp +11 -1
  182. data/src/cxx_supportlib/vendor-modified/boost/container/vector.hpp +31 -331
  183. data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/hash_mix.hpp +113 -0
  184. data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/hash_range.hpp +173 -0
  185. data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/hash_tuple.hpp +133 -0
  186. data/src/cxx_supportlib/vendor-modified/boost/container_hash/hash.hpp +461 -566
  187. data/src/cxx_supportlib/vendor-modified/boost/container_hash/hash_fwd.hpp +24 -24
  188. data/src/cxx_supportlib/vendor-modified/boost/container_hash/is_contiguous_range.hpp +91 -0
  189. data/src/cxx_supportlib/vendor-modified/boost/container_hash/is_described_class.hpp +38 -0
  190. data/src/cxx_supportlib/vendor-modified/boost/container_hash/is_range.hpp +73 -0
  191. data/src/cxx_supportlib/vendor-modified/boost/container_hash/is_unordered_range.hpp +39 -0
  192. data/src/cxx_supportlib/vendor-modified/boost/core/bit.hpp +32 -4
  193. data/src/cxx_supportlib/vendor-modified/boost/core/detail/string_view.hpp +16 -0
  194. data/src/cxx_supportlib/vendor-modified/boost/core/empty_value.hpp +16 -16
  195. data/src/cxx_supportlib/vendor-modified/boost/core/fclose_deleter.hpp +46 -0
  196. data/src/cxx_supportlib/vendor-modified/boost/date_time/date.hpp +1 -1
  197. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/formatters.hpp +3 -3
  198. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/formatters_limited.hpp +3 -3
  199. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_date.hpp +12 -13
  200. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/parsers.hpp +2 -2
  201. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian_calendar.ipp +2 -2
  202. data/src/cxx_supportlib/vendor-modified/boost/date_time/iso_format.hpp +13 -13
  203. data/src/cxx_supportlib/vendor-modified/boost/date_time/local_time/local_date_time.hpp +2 -2
  204. data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/time_formatters.hpp +4 -4
  205. data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/time_formatters_limited.hpp +2 -2
  206. data/src/cxx_supportlib/vendor-modified/boost/date_time/special_values_parser.hpp +1 -1
  207. data/src/cxx_supportlib/vendor-modified/boost/date_time/time_facet.hpp +1 -1
  208. data/src/cxx_supportlib/vendor-modified/boost/date_time/time_parsing.hpp +2 -2
  209. data/src/cxx_supportlib/vendor-modified/boost/describe/bases.hpp +50 -0
  210. data/src/cxx_supportlib/vendor-modified/boost/describe/detail/config.hpp +40 -0
  211. data/src/cxx_supportlib/vendor-modified/boost/describe/detail/cx_streq.hpp +30 -0
  212. data/src/cxx_supportlib/vendor-modified/boost/describe/detail/void_t.hpp +32 -0
  213. data/src/cxx_supportlib/vendor-modified/boost/describe/members.hpp +159 -0
  214. data/src/cxx_supportlib/vendor-modified/boost/describe/modifiers.hpp +33 -0
  215. data/src/cxx_supportlib/vendor-modified/boost/intrusive/avltree_algorithms.hpp +9 -9
  216. data/src/cxx_supportlib/vendor-modified/boost/intrusive/bstree_algorithms.hpp +45 -45
  217. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/any_node_and_algorithms.hpp +8 -8
  218. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/bstree_algorithms_base.hpp +37 -38
  219. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/iterator.hpp +16 -0
  220. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/workaround.hpp +1 -1
  221. data/src/cxx_supportlib/vendor-modified/boost/intrusive/hashtable.hpp +145 -90
  222. data/src/cxx_supportlib/vendor-modified/boost/intrusive/pack_options.hpp +2 -0
  223. data/src/cxx_supportlib/vendor-modified/boost/intrusive/rbtree_algorithms.hpp +7 -7
  224. data/src/cxx_supportlib/vendor-modified/boost/intrusive/sgtree_algorithms.hpp +5 -5
  225. data/src/cxx_supportlib/vendor-modified/boost/intrusive/splaytree_algorithms.hpp +11 -9
  226. data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap_algorithms.hpp +7 -7
  227. data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_facade.hpp +106 -25
  228. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical_streams.hpp +1 -1
  229. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_numeric.hpp +8 -5
  230. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_unsigned_converters.hpp +1 -1
  231. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/adaptive_sort_merge.hpp +4 -2
  232. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/pdqsort.hpp +2 -1
  233. data/src/cxx_supportlib/vendor-modified/boost/move/detail/type_traits.hpp +8 -4
  234. data/src/cxx_supportlib/vendor-modified/boost/mp11/bind.hpp +111 -0
  235. data/src/cxx_supportlib/vendor-modified/boost/mp11/version.hpp +1 -1
  236. data/src/cxx_supportlib/vendor-modified/boost/numeric/conversion/detail/int_float_mixture.hpp +5 -5
  237. data/src/cxx_supportlib/vendor-modified/boost/numeric/conversion/detail/sign_mixture.hpp +5 -5
  238. data/src/cxx_supportlib/vendor-modified/boost/numeric/conversion/detail/udt_builtin_mixture.hpp +5 -5
  239. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/variadic/has_opt.hpp +6 -2
  240. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock_gcc_atomic.hpp +11 -2
  241. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/intrusive_ptr.hpp +1 -1
  242. data/src/cxx_supportlib/vendor-modified/boost/system/detail/config.hpp +7 -1
  243. data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_category.hpp +2 -2
  244. data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_category_impl.hpp +10 -1
  245. data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_code.hpp +38 -43
  246. data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_condition.hpp +52 -0
  247. data/src/cxx_supportlib/vendor-modified/boost/throw_exception.hpp +1 -1
  248. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_function_ptr_helper.hpp +27 -27
  249. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp +27 -27
  250. data/src/cxx_supportlib/vendor-modified/boost/type_traits/intrinsics.hpp +22 -8
  251. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/fca.hpp +37 -7
  252. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa.hpp +1921 -0
  253. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/implementation.hpp +66 -82
  254. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/prime_fmod.hpp +6 -0
  255. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/type_traits.hpp +109 -0
  256. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/xmx.hpp +75 -0
  257. data/src/cxx_supportlib/vendor-modified/boost/unordered/hash_traits.hpp +45 -0
  258. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_map.hpp +732 -0
  259. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_map_fwd.hpp +49 -0
  260. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_set.hpp +586 -0
  261. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_set_fwd.hpp +49 -0
  262. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_map.hpp +166 -66
  263. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_set.hpp +145 -28
  264. data/src/cxx_supportlib/vendor-modified/boost/version.hpp +2 -2
  265. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/md5.hpp +1 -1
  266. data/src/ruby_native_extension/extconf.rb +1 -1
  267. data/src/ruby_supportlib/phusion_passenger/platform_info/operating_system.rb +1 -1
  268. data/src/ruby_supportlib/phusion_passenger.rb +5 -5
  269. metadata +36 -19
  270. data/src/cxx_supportlib/vendor-modified/boost/align/align.hpp +0 -19
  271. data/src/cxx_supportlib/vendor-modified/boost/align/alignment_of.hpp +0 -54
  272. data/src/cxx_supportlib/vendor-modified/boost/align/alignment_of_forward.hpp +0 -20
  273. data/src/cxx_supportlib/vendor-modified/boost/align/detail/align_cxx11.hpp +0 -21
  274. data/src/cxx_supportlib/vendor-modified/boost/align/detail/aligned_alloc.hpp +0 -52
  275. data/src/cxx_supportlib/vendor-modified/boost/align/detail/alignment_of.hpp +0 -31
  276. data/src/cxx_supportlib/vendor-modified/boost/align/detail/alignment_of_cxx11.hpp +0 -23
  277. data/src/cxx_supportlib/vendor-modified/boost/align/detail/element_type.hpp +0 -91
  278. data/src/cxx_supportlib/vendor-modified/boost/align/detail/integral_constant.hpp +0 -53
  279. data/src/cxx_supportlib/vendor-modified/boost/align/detail/min_size.hpp +0 -26
  280. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/completion_handler_erasure.hpp +0 -196
  281. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/compose.hpp +0 -709
  282. data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/float_functions.hpp +0 -336
  283. data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/hash_float.hpp +0 -271
  284. data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/limits.hpp +0 -62
  285. data/src/cxx_supportlib/vendor-modified/boost/container_hash/extensions.hpp +0 -361
  286. data/src/cxx_supportlib/vendor-modified/boost/detail/container_fwd.hpp +0 -157
@@ -0,0 +1,113 @@
1
+ //
2
+ // experimental/use_promise.hpp
3
+ // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4
+ //
5
+ // Copyright (c) 2022 Klemens D. Morgenstern
6
+ // (klemens dot morgenstern at gmx dot net)
7
+ //
8
+ // Distributed under the Boost Software License, Version 1.0. (See accompanying
9
+ // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
10
+ //
11
+
12
+ #ifndef BOOST_ASIO_EXPERIMENTAL_USE_PROMISE_HPP
13
+ #define BOOST_ASIO_EXPERIMENTAL_USE_PROMISE_HPP
14
+
15
+ #if defined(_MSC_VER) && (_MSC_VER >= 1200)
16
+ # pragma once
17
+ #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
18
+
19
+ #include <boost/asio/detail/config.hpp>
20
+ #include <memory>
21
+ #include <boost/asio/detail/type_traits.hpp>
22
+
23
+ #include <boost/asio/detail/push_options.hpp>
24
+
25
+ namespace boost {
26
+ namespace asio {
27
+ namespace experimental {
28
+
29
+ template <typename Allocator = std::allocator<void>>
30
+ struct use_promise_t
31
+ {
32
+ /// The allocator type. The allocator is used when constructing the
33
+ /// @c promise object for a given asynchronous operation.
34
+ typedef Allocator allocator_type;
35
+
36
+ /// Construct using default-constructed allocator.
37
+ BOOST_ASIO_CONSTEXPR use_promise_t()
38
+ {
39
+ }
40
+
41
+ /// Construct using specified allocator.
42
+ explicit use_promise_t(const Allocator& allocator)
43
+ : allocator_(allocator)
44
+ {
45
+ }
46
+
47
+ /// Obtain allocator.
48
+ allocator_type get_allocator() const BOOST_ASIO_NOEXCEPT
49
+ {
50
+ return allocator_;
51
+ }
52
+
53
+ /// Adapts an executor to add the @c use_promise_t completion token as the
54
+ /// default.
55
+ template <typename InnerExecutor>
56
+ struct executor_with_default : InnerExecutor
57
+ {
58
+ /// Specify @c use_promise_t as the default completion token type.
59
+ typedef use_promise_t<Allocator> default_completion_token_type;
60
+
61
+ /// Construct the adapted executor from the inner executor type.
62
+ executor_with_default(const InnerExecutor& ex) BOOST_ASIO_NOEXCEPT
63
+ : InnerExecutor(ex)
64
+ {
65
+ }
66
+
67
+ /// Convert the specified executor to the inner executor type, then use
68
+ /// that to construct the adapted executor.
69
+ template <typename OtherExecutor>
70
+ executor_with_default(const OtherExecutor& ex,
71
+ typename constraint<
72
+ is_convertible<OtherExecutor, InnerExecutor>::value
73
+ >::type = 0) BOOST_ASIO_NOEXCEPT
74
+ : InnerExecutor(ex)
75
+ {
76
+ }
77
+ };
78
+
79
+ /// Function helper to adapt an I/O object to use @c use_promise_t as its
80
+ /// default completion token type.
81
+ template <typename T>
82
+ static typename decay<T>::type::template rebind_executor<
83
+ executor_with_default<typename decay<T>::type::executor_type>
84
+ >::other
85
+ as_default_on(BOOST_ASIO_MOVE_ARG(T) object)
86
+ {
87
+ return typename decay<T>::type::template rebind_executor<
88
+ executor_with_default<typename decay<T>::type::executor_type>
89
+ >::other(BOOST_ASIO_MOVE_CAST(T)(object));
90
+ }
91
+
92
+ /// Specify an alternate allocator.
93
+ template <typename OtherAllocator>
94
+ use_promise_t<OtherAllocator> rebind(const OtherAllocator& allocator) const
95
+ {
96
+ return use_promise_t<OtherAllocator>(allocator);
97
+ }
98
+
99
+ private:
100
+ Allocator allocator_;
101
+ };
102
+
103
+ constexpr use_promise_t<> use_promise;
104
+
105
+ } // namespace experimental
106
+ } // namespace asio
107
+ } // namespace boost
108
+
109
+ #include <boost/asio/detail/pop_options.hpp>
110
+
111
+ #include <boost/asio/experimental/impl/use_promise.hpp>
112
+
113
+ #endif // BOOST_ASIO_EXPERIMENTAL_USE_CORO_HPP
@@ -0,0 +1,132 @@
1
+ //
2
+ // impl/any_completion_executor.ipp
3
+ // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4
+ //
5
+ // Copyright (c) 2003-2022 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6
+ //
7
+ // Distributed under the Boost Software License, Version 1.0. (See accompanying
8
+ // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9
+ //
10
+
11
+ #ifndef BOOST_ASIO_IMPL_ANY_COMPLETION_EXECUTOR_IPP
12
+ #define BOOST_ASIO_IMPL_ANY_COMPLETION_EXECUTOR_IPP
13
+
14
+ #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15
+ # pragma once
16
+ #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17
+
18
+ #include <boost/asio/detail/config.hpp>
19
+
20
+ #if !defined(BOOST_ASIO_USE_TS_EXECUTOR_AS_DEFAULT)
21
+
22
+ #include <boost/asio/any_completion_executor.hpp>
23
+
24
+ #include <boost/asio/detail/push_options.hpp>
25
+
26
+ namespace boost {
27
+ namespace asio {
28
+
29
+ any_completion_executor::any_completion_executor() BOOST_ASIO_NOEXCEPT
30
+ : base_type()
31
+ {
32
+ }
33
+
34
+ any_completion_executor::any_completion_executor(nullptr_t) BOOST_ASIO_NOEXCEPT
35
+ : base_type(nullptr_t())
36
+ {
37
+ }
38
+
39
+ any_completion_executor::any_completion_executor(
40
+ const any_completion_executor& e) BOOST_ASIO_NOEXCEPT
41
+ : base_type(static_cast<const base_type&>(e))
42
+ {
43
+ }
44
+
45
+ any_completion_executor::any_completion_executor(std::nothrow_t,
46
+ const any_completion_executor& e) BOOST_ASIO_NOEXCEPT
47
+ : base_type(static_cast<const base_type&>(e))
48
+ {
49
+ }
50
+
51
+ #if defined(BOOST_ASIO_HAS_MOVE)
52
+ any_completion_executor::any_completion_executor(
53
+ any_completion_executor&& e) BOOST_ASIO_NOEXCEPT
54
+ : base_type(static_cast<base_type&&>(e))
55
+ {
56
+ }
57
+
58
+ any_completion_executor::any_completion_executor(std::nothrow_t,
59
+ any_completion_executor&& e) BOOST_ASIO_NOEXCEPT
60
+ : base_type(static_cast<base_type&&>(e))
61
+ {
62
+ }
63
+ #endif // defined(BOOST_ASIO_HAS_MOVE)
64
+
65
+ any_completion_executor& any_completion_executor::operator=(
66
+ const any_completion_executor& e) BOOST_ASIO_NOEXCEPT
67
+ {
68
+ base_type::operator=(static_cast<const base_type&>(e));
69
+ return *this;
70
+ }
71
+
72
+ #if defined(BOOST_ASIO_HAS_MOVE)
73
+ any_completion_executor& any_completion_executor::operator=(
74
+ any_completion_executor&& e) BOOST_ASIO_NOEXCEPT
75
+ {
76
+ base_type::operator=(static_cast<base_type&&>(e));
77
+ return *this;
78
+ }
79
+ #endif // defined(BOOST_ASIO_HAS_MOVE)
80
+
81
+ any_completion_executor& any_completion_executor::operator=(nullptr_t)
82
+ {
83
+ base_type::operator=(nullptr_t());
84
+ return *this;
85
+ }
86
+
87
+ any_completion_executor::~any_completion_executor()
88
+ {
89
+ }
90
+
91
+ void any_completion_executor::swap(
92
+ any_completion_executor& other) BOOST_ASIO_NOEXCEPT
93
+ {
94
+ static_cast<base_type&>(*this).swap(static_cast<base_type&>(other));
95
+ }
96
+
97
+ template <>
98
+ any_completion_executor any_completion_executor::prefer(
99
+ const execution::outstanding_work_t::tracked_t& p, int) const
100
+ {
101
+ return static_cast<const base_type&>(*this).prefer(p);
102
+ }
103
+
104
+ template <>
105
+ any_completion_executor any_completion_executor::prefer(
106
+ const execution::outstanding_work_t::untracked_t& p, int) const
107
+ {
108
+ return static_cast<const base_type&>(*this).prefer(p);
109
+ }
110
+
111
+ template <>
112
+ any_completion_executor any_completion_executor::prefer(
113
+ const execution::relationship_t::fork_t& p, int) const
114
+ {
115
+ return static_cast<const base_type&>(*this).prefer(p);
116
+ }
117
+
118
+ template <>
119
+ any_completion_executor any_completion_executor::prefer(
120
+ const execution::relationship_t::continuation_t& p, int) const
121
+ {
122
+ return static_cast<const base_type&>(*this).prefer(p);
123
+ }
124
+
125
+ } // namespace asio
126
+ } // namespace boost
127
+
128
+ #include <boost/asio/detail/pop_options.hpp>
129
+
130
+ #endif // !defined(BOOST_ASIO_USE_TS_EXECUTOR_AS_DEFAULT)
131
+
132
+ #endif // BOOST_ASIO_IMPL_ANY_COMPLETION_EXECUTOR_IPP
@@ -41,11 +41,23 @@ any_io_executor::any_io_executor(const any_io_executor& e) BOOST_ASIO_NOEXCEPT
41
41
  {
42
42
  }
43
43
 
44
+ any_io_executor::any_io_executor(std::nothrow_t,
45
+ const any_io_executor& e) BOOST_ASIO_NOEXCEPT
46
+ : base_type(static_cast<const base_type&>(e))
47
+ {
48
+ }
49
+
44
50
  #if defined(BOOST_ASIO_HAS_MOVE)
45
51
  any_io_executor::any_io_executor(any_io_executor&& e) BOOST_ASIO_NOEXCEPT
46
52
  : base_type(static_cast<base_type&&>(e))
47
53
  {
48
54
  }
55
+
56
+ any_io_executor::any_io_executor(std::nothrow_t,
57
+ any_io_executor&& e) BOOST_ASIO_NOEXCEPT
58
+ : base_type(static_cast<base_type&&>(e))
59
+ {
60
+ }
49
61
  #endif // defined(BOOST_ASIO_HAS_MOVE)
50
62
 
51
63
  any_io_executor& any_io_executor::operator=(
@@ -200,9 +200,18 @@ struct associator<Associator,
200
200
  detail::append_handler<Handler, Values...>, DefaultCandidate>
201
201
  : Associator<Handler, DefaultCandidate>
202
202
  {
203
- static typename Associator<Handler, DefaultCandidate>::type get(
204
- const detail::append_handler<Handler, Values...>& h,
205
- const DefaultCandidate& c = DefaultCandidate()) BOOST_ASIO_NOEXCEPT
203
+ static typename Associator<Handler, DefaultCandidate>::type
204
+ get(const detail::append_handler<Handler, Values...>& h) BOOST_ASIO_NOEXCEPT
205
+ {
206
+ return Associator<Handler, DefaultCandidate>::get(h.handler_);
207
+ }
208
+
209
+ static BOOST_ASIO_AUTO_RETURN_TYPE_PREFIX2(
210
+ typename Associator<Handler, DefaultCandidate>::type)
211
+ get(const detail::append_handler<Handler, Values...>& h,
212
+ const DefaultCandidate& c) BOOST_ASIO_NOEXCEPT
213
+ BOOST_ASIO_AUTO_RETURN_TYPE_SUFFIX((
214
+ Associator<Handler, DefaultCandidate>::get(h.handler_, c)))
206
215
  {
207
216
  return Associator<Handler, DefaultCandidate>::get(h.handler_, c);
208
217
  }
@@ -228,9 +228,18 @@ struct associator<Associator,
228
228
  detail::as_tuple_handler<Handler>, DefaultCandidate>
229
229
  : Associator<Handler, DefaultCandidate>
230
230
  {
231
- static typename Associator<Handler, DefaultCandidate>::type get(
232
- const detail::as_tuple_handler<Handler>& h,
233
- const DefaultCandidate& c = DefaultCandidate()) BOOST_ASIO_NOEXCEPT
231
+ static typename Associator<Handler, DefaultCandidate>::type
232
+ get(const detail::as_tuple_handler<Handler>& h) BOOST_ASIO_NOEXCEPT
233
+ {
234
+ return Associator<Handler, DefaultCandidate>::get(h.handler_);
235
+ }
236
+
237
+ static BOOST_ASIO_AUTO_RETURN_TYPE_PREFIX2(
238
+ typename Associator<Handler, DefaultCandidate>::type)
239
+ get(const detail::as_tuple_handler<Handler>& h,
240
+ const DefaultCandidate& c) BOOST_ASIO_NOEXCEPT
241
+ BOOST_ASIO_AUTO_RETURN_TYPE_SUFFIX((
242
+ Associator<Handler, DefaultCandidate>::get(h.handler_, c)))
234
243
  {
235
244
  return Associator<Handler, DefaultCandidate>::get(h.handler_, c);
236
245
  }
@@ -209,9 +209,18 @@ struct associator<Associator,
209
209
  DefaultCandidate>
210
210
  : Associator<ReadHandler, DefaultCandidate>
211
211
  {
212
- static typename Associator<ReadHandler, DefaultCandidate>::type get(
213
- const detail::buffered_fill_handler<ReadHandler>& h,
214
- const DefaultCandidate& c = DefaultCandidate()) BOOST_ASIO_NOEXCEPT
212
+ static typename Associator<ReadHandler, DefaultCandidate>::type
213
+ get(const detail::buffered_fill_handler<ReadHandler>& h) BOOST_ASIO_NOEXCEPT
214
+ {
215
+ return Associator<ReadHandler, DefaultCandidate>::get(h.handler_);
216
+ }
217
+
218
+ static BOOST_ASIO_AUTO_RETURN_TYPE_PREFIX2(
219
+ typename Associator<ReadHandler, DefaultCandidate>::type)
220
+ get(const detail::buffered_fill_handler<ReadHandler>& h,
221
+ const DefaultCandidate& c) BOOST_ASIO_NOEXCEPT
222
+ BOOST_ASIO_AUTO_RETURN_TYPE_SUFFIX((
223
+ Associator<ReadHandler, DefaultCandidate>::get(h.handler_, c)))
215
224
  {
216
225
  return Associator<ReadHandler, DefaultCandidate>::get(h.handler_, c);
217
226
  }
@@ -449,10 +458,20 @@ struct associator<Associator,
449
458
  DefaultCandidate>
450
459
  : Associator<ReadHandler, DefaultCandidate>
451
460
  {
452
- static typename Associator<ReadHandler, DefaultCandidate>::type get(
453
- const detail::buffered_read_some_handler<
461
+ static typename Associator<ReadHandler, DefaultCandidate>::type
462
+ get(const detail::buffered_read_some_handler<
463
+ MutableBufferSequence, ReadHandler>& h) BOOST_ASIO_NOEXCEPT
464
+ {
465
+ return Associator<ReadHandler, DefaultCandidate>::get(h.handler_);
466
+ }
467
+
468
+ static BOOST_ASIO_AUTO_RETURN_TYPE_PREFIX2(
469
+ typename Associator<ReadHandler, DefaultCandidate>::type)
470
+ get(const detail::buffered_read_some_handler<
454
471
  MutableBufferSequence, ReadHandler>& h,
455
- const DefaultCandidate& c = DefaultCandidate()) BOOST_ASIO_NOEXCEPT
472
+ const DefaultCandidate& c) BOOST_ASIO_NOEXCEPT
473
+ BOOST_ASIO_AUTO_RETURN_TYPE_SUFFIX((
474
+ Associator<ReadHandler, DefaultCandidate>::get(h.handler_, c)))
456
475
  {
457
476
  return Associator<ReadHandler, DefaultCandidate>::get(h.handler_, c);
458
477
  }
@@ -189,9 +189,18 @@ struct associator<Associator,
189
189
  DefaultCandidate>
190
190
  : Associator<WriteHandler, DefaultCandidate>
191
191
  {
192
- static typename Associator<WriteHandler, DefaultCandidate>::type get(
193
- const detail::buffered_flush_handler<WriteHandler>& h,
194
- const DefaultCandidate& c = DefaultCandidate()) BOOST_ASIO_NOEXCEPT
192
+ static typename Associator<WriteHandler, DefaultCandidate>::type
193
+ get(const detail::buffered_flush_handler<WriteHandler>& h) BOOST_ASIO_NOEXCEPT
194
+ {
195
+ return Associator<WriteHandler, DefaultCandidate>::get(h.handler_);
196
+ }
197
+
198
+ static BOOST_ASIO_AUTO_RETURN_TYPE_PREFIX2(
199
+ typename Associator<WriteHandler, DefaultCandidate>::type)
200
+ get(const detail::buffered_flush_handler<WriteHandler>& h,
201
+ const DefaultCandidate& c) BOOST_ASIO_NOEXCEPT
202
+ BOOST_ASIO_AUTO_RETURN_TYPE_SUFFIX((
203
+ Associator<WriteHandler, DefaultCandidate>::get(h.handler_, c)))
195
204
  {
196
205
  return Associator<WriteHandler, DefaultCandidate>::get(h.handler_, c);
197
206
  }
@@ -435,10 +444,20 @@ struct associator<Associator,
435
444
  DefaultCandidate>
436
445
  : Associator<WriteHandler, DefaultCandidate>
437
446
  {
438
- static typename Associator<WriteHandler, DefaultCandidate>::type get(
439
- const detail::buffered_write_some_handler<
447
+ static typename Associator<WriteHandler, DefaultCandidate>::type
448
+ get(const detail::buffered_write_some_handler<
449
+ ConstBufferSequence, WriteHandler>& h) BOOST_ASIO_NOEXCEPT
450
+ {
451
+ return Associator<WriteHandler, DefaultCandidate>::get(h.handler_);
452
+ }
453
+
454
+ static BOOST_ASIO_AUTO_RETURN_TYPE_PREFIX2(
455
+ typename Associator<WriteHandler, DefaultCandidate>::type)
456
+ get(const detail::buffered_write_some_handler<
440
457
  ConstBufferSequence, WriteHandler>& h,
441
- const DefaultCandidate& c = DefaultCandidate()) BOOST_ASIO_NOEXCEPT
458
+ const DefaultCandidate& c) BOOST_ASIO_NOEXCEPT
459
+ BOOST_ASIO_AUTO_RETURN_TYPE_SUFFIX((
460
+ Associator<WriteHandler, DefaultCandidate>::get(h.handler_, c)))
442
461
  {
443
462
  return Associator<WriteHandler, DefaultCandidate>::get(h.handler_, c);
444
463
  }
@@ -97,23 +97,20 @@ awaitable<awaitable_thread_entry_point, Executor> co_spawn_entry_point(
97
97
 
98
98
  done = true;
99
99
 
100
- if (co_await awaitable_thread_has_context_switched{})
100
+ bool switched = (co_await awaitable_thread_has_context_switched{});
101
+ if (!switched)
101
102
  {
102
- (dispatch)(handler_work.get_executor(),
103
- [handler = std::move(handler), t = std::move(t)]() mutable
104
- {
105
- std::move(handler)(std::exception_ptr(), std::move(t));
106
- });
107
- }
108
- else
109
- {
110
- (post)(handler_work.get_executor(),
111
- [handler = std::move(handler), t = std::move(t)]() mutable
112
- {
113
- std::move(handler)(std::exception_ptr(), std::move(t));
114
- });
103
+ (void) co_await (post)(
104
+ use_awaitable_t<Executor>{__FILE__,
105
+ __LINE__, "co_spawn_entry_point"});
115
106
  }
116
107
 
108
+ (dispatch)(handler_work.get_executor(),
109
+ [handler = std::move(handler), t = std::move(t)]() mutable
110
+ {
111
+ std::move(handler)(std::exception_ptr(), std::move(t));
112
+ });
113
+
117
114
  co_return;
118
115
  }
119
116
  catch (...)
@@ -124,22 +121,18 @@ awaitable<awaitable_thread_entry_point, Executor> co_spawn_entry_point(
124
121
  e = std::current_exception();
125
122
  }
126
123
 
127
- if (co_await awaitable_thread_has_context_switched{})
124
+ bool switched = (co_await awaitable_thread_has_context_switched{});
125
+ if (!switched)
128
126
  {
129
- (dispatch)(handler_work.get_executor(),
130
- [handler = std::move(handler), e]() mutable
131
- {
132
- std::move(handler)(e, T());
133
- });
134
- }
135
- else
136
- {
137
- (post)(handler_work.get_executor(),
138
- [handler = std::move(handler), e]() mutable
139
- {
140
- std::move(handler)(e, T());
141
- });
127
+ (void) co_await (post)(
128
+ use_awaitable_t<Executor>{__FILE__, __LINE__, "co_spawn_entry_point"});
142
129
  }
130
+
131
+ (dispatch)(handler_work.get_executor(),
132
+ [handler = std::move(handler), e]() mutable
133
+ {
134
+ std::move(handler)(e, T());
135
+ });
143
136
  }
144
137
 
145
138
  template <typename Executor, typename F, typename Handler>
@@ -164,22 +157,18 @@ awaitable<awaitable_thread_entry_point, Executor> co_spawn_entry_point(
164
157
  e = std::current_exception();
165
158
  }
166
159
 
167
- if (co_await awaitable_thread_has_context_switched{})
168
- {
169
- (dispatch)(handler_work.get_executor(),
170
- [handler = std::move(handler), e]() mutable
171
- {
172
- std::move(handler)(e);
173
- });
174
- }
175
- else
160
+ bool switched = (co_await awaitable_thread_has_context_switched{});
161
+ if (!switched)
176
162
  {
177
- (post)(handler_work.get_executor(),
178
- [handler = std::move(handler), e]() mutable
179
- {
180
- std::move(handler)(e);
181
- });
163
+ (void) co_await (post)(
164
+ use_awaitable_t<Executor>{__FILE__, __LINE__, "co_spawn_entry_point"});
182
165
  }
166
+
167
+ (dispatch)(handler_work.get_executor(),
168
+ [handler = std::move(handler), e]() mutable
169
+ {
170
+ std::move(handler)(e);
171
+ });
183
172
  }
184
173
 
185
174
  template <typename T, typename Executor>
@@ -204,8 +193,8 @@ template <typename Handler, typename Executor, typename = void>
204
193
  class co_spawn_cancellation_handler
205
194
  {
206
195
  public:
207
- co_spawn_cancellation_handler(const Handler& handler, const Executor& ex)
208
- : ex_(boost::asio::get_associated_executor(handler, ex))
196
+ co_spawn_cancellation_handler(const Handler&, const Executor& ex)
197
+ : ex_(ex)
209
198
  {
210
199
  }
211
200
 
@@ -222,7 +211,7 @@ public:
222
211
 
223
212
  private:
224
213
  cancellation_signal signal_;
225
- typename associated_executor<Handler, Executor>::type ex_;
214
+ Executor ex_;
226
215
  };
227
216
 
228
217
 
@@ -765,10 +765,21 @@ struct associator<Associator,
765
765
  DefaultCandidate>
766
766
  : Associator<RangeConnectHandler, DefaultCandidate>
767
767
  {
768
- static typename Associator<RangeConnectHandler, DefaultCandidate>::type get(
769
- const detail::range_connect_op<Protocol, Executor,
768
+ static typename Associator<RangeConnectHandler, DefaultCandidate>::type
769
+ get(const detail::range_connect_op<Protocol, Executor, EndpointSequence,
770
+ ConnectCondition, RangeConnectHandler>& h) BOOST_ASIO_NOEXCEPT
771
+ {
772
+ return Associator<RangeConnectHandler, DefaultCandidate>::get(h.handler_);
773
+ }
774
+
775
+ static BOOST_ASIO_AUTO_RETURN_TYPE_PREFIX2(
776
+ typename Associator<RangeConnectHandler, DefaultCandidate>::type)
777
+ get(const detail::range_connect_op<Protocol, Executor,
770
778
  EndpointSequence, ConnectCondition, RangeConnectHandler>& h,
771
- const DefaultCandidate& c = DefaultCandidate()) BOOST_ASIO_NOEXCEPT
779
+ const DefaultCandidate& c) BOOST_ASIO_NOEXCEPT
780
+ BOOST_ASIO_AUTO_RETURN_TYPE_SUFFIX((
781
+ Associator<RangeConnectHandler, DefaultCandidate>::get(
782
+ h.handler_, c)))
772
783
  {
773
784
  return Associator<RangeConnectHandler, DefaultCandidate>::get(
774
785
  h.handler_, c);
@@ -786,10 +797,21 @@ struct associator<Associator,
786
797
  : Associator<IteratorConnectHandler, DefaultCandidate>
787
798
  {
788
799
  static typename Associator<IteratorConnectHandler, DefaultCandidate>::type
789
- get(
790
- const detail::iterator_connect_op<Protocol, Executor,
800
+ get(const detail::iterator_connect_op<Protocol, Executor, Iterator,
801
+ ConnectCondition, IteratorConnectHandler>& h) BOOST_ASIO_NOEXCEPT
802
+ {
803
+ return Associator<IteratorConnectHandler, DefaultCandidate>::get(
804
+ h.handler_);
805
+ }
806
+
807
+ static BOOST_ASIO_AUTO_RETURN_TYPE_PREFIX2(
808
+ typename Associator<IteratorConnectHandler, DefaultCandidate>::type)
809
+ get(const detail::iterator_connect_op<Protocol, Executor,
791
810
  Iterator, ConnectCondition, IteratorConnectHandler>& h,
792
- const DefaultCandidate& c = DefaultCandidate()) BOOST_ASIO_NOEXCEPT
811
+ const DefaultCandidate& c) BOOST_ASIO_NOEXCEPT
812
+ BOOST_ASIO_AUTO_RETURN_TYPE_SUFFIX((
813
+ Associator<IteratorConnectHandler, DefaultCandidate>::get(
814
+ h.handler_, c)))
793
815
  {
794
816
  return Associator<IteratorConnectHandler, DefaultCandidate>::get(
795
817
  h.handler_, c);