passenger 6.0.23 → 6.0.24

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of passenger might be problematic. Click here for more details.

Files changed (305) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG +26 -1
  3. data/Rakefile +7 -3
  4. data/bin/passenger-install-apache2-module +5 -0
  5. data/bin/passenger-install-nginx-module +17 -2
  6. data/build/apache2.rb +1 -1
  7. data/build/basics.rb +10 -4
  8. data/build/cxx_tests.rb +18 -7
  9. data/build/support/cxx_dependency_map.rb +40 -6
  10. data/build/test_basics.rb +4 -12
  11. data/package.json +1 -1
  12. data/passenger.gemspec +1 -1
  13. data/src/agent/Core/ApplicationPool/Group/InitializationAndShutdown.cpp +8 -0
  14. data/src/agent/Core/ApplicationPool/Group/InternalUtils.cpp +10 -2
  15. data/src/agent/Core/ApplicationPool/Group/LifetimeAndBasics.cpp +8 -0
  16. data/src/agent/Core/ApplicationPool/Group/Miscellaneous.cpp +9 -0
  17. data/src/agent/Core/ApplicationPool/Group/OutOfBandWork.cpp +9 -0
  18. data/src/agent/Core/ApplicationPool/Group/ProcessListManagement.cpp +63 -50
  19. data/src/agent/Core/ApplicationPool/Group/SessionManagement.cpp +19 -9
  20. data/src/agent/Core/ApplicationPool/Group/SpawningAndRestarting.cpp +8 -0
  21. data/src/agent/Core/ApplicationPool/Group/StateInspection.cpp +8 -0
  22. data/src/agent/Core/ApplicationPool/Group/Verification.cpp +8 -0
  23. data/src/agent/Core/ApplicationPool/Group.h +15 -5
  24. data/src/agent/Core/ApplicationPool/Pool/AnalyticsCollection.cpp +5 -0
  25. data/src/agent/Core/ApplicationPool/Pool/GarbageCollection.cpp +5 -0
  26. data/src/agent/Core/ApplicationPool/Pool/GeneralUtils.cpp +5 -0
  27. data/src/agent/Core/ApplicationPool/Pool/GroupUtils.cpp +5 -0
  28. data/src/agent/Core/ApplicationPool/Pool/InitializationAndShutdown.cpp +5 -0
  29. data/src/agent/Core/ApplicationPool/Pool/Miscellaneous.cpp +5 -0
  30. data/src/agent/Core/ApplicationPool/Pool/ProcessUtils.cpp +5 -0
  31. data/src/agent/Core/ApplicationPool/Pool/StateInspection.cpp +11 -1
  32. data/src/agent/Core/ApplicationPool/Pool.h +0 -2
  33. data/src/agent/Core/ApplicationPool/Process.h +22 -6
  34. data/src/agent/Core/ApplicationPool/Session.h +6 -1
  35. data/src/agent/Core/Config.h +7 -3
  36. data/src/agent/Core/Controller/Config.h +1 -1
  37. data/src/agent/Core/CoreMain.cpp +10 -17
  38. data/src/agent/Core/SpawningKit/Handshake/Prepare.h +1 -53
  39. data/src/agent/Core/SpawningKit/Handshake/Session.h +3 -0
  40. data/src/agent/Core/SpawningKit/Handshake/WorkDir.h +5 -2
  41. data/src/agent/Core/SpawningKit/SmartSpawner.h +6 -2
  42. data/src/agent/Core/SpawningKit/Spawner.h +4 -0
  43. data/src/agent/Shared/Fundamentals/AbortHandler.cpp +88 -9
  44. data/src/agent/Shared/Fundamentals/AbortHandler.h +2 -0
  45. data/src/agent/Shared/Fundamentals/Initialization.cpp +9 -3
  46. data/src/agent/Shared/Fundamentals/Initialization.h +3 -3
  47. data/src/agent/SpawnEnvSetupper/SpawnEnvSetupperMain.cpp +6 -7
  48. data/src/agent/Watchdog/Config.h +1 -1
  49. data/src/agent/Watchdog/WatchdogMain.cpp +4 -7
  50. data/src/apache2_module/ConfigGeneral/ManifestGeneration.h +5 -3
  51. data/src/apache2_module/DirConfig/AutoGeneratedStruct.h +3 -0
  52. data/src/apache2_module/DirConfig/AutoGeneratedStruct.h.cxxcodebuilder +3 -0
  53. data/src/apache2_module/ServerConfig/AutoGeneratedStruct.h +2 -1
  54. data/src/apache2_module/ServerConfig/AutoGeneratedStruct.h.cxxcodebuilder +2 -1
  55. data/src/cxx_supportlib/Constants.h +1 -1
  56. data/src/cxx_supportlib/DataStructures/StringMap.h +0 -1
  57. data/src/cxx_supportlib/FileTools/PathManip.cpp +1 -1
  58. data/src/cxx_supportlib/SafeLibev.h +1 -3
  59. data/src/cxx_supportlib/ServerKit/Hooks.h +2 -2
  60. data/src/cxx_supportlib/ServerKit/HttpHeaderParser.h +0 -1
  61. data/src/cxx_supportlib/ServerKit/HttpServer.h +15 -10
  62. data/src/cxx_supportlib/ServerKit/Server.h +0 -6
  63. data/src/cxx_supportlib/Utils/AsyncSignalSafeUtils.h +2 -0
  64. data/src/cxx_supportlib/Utils/SpeedMeter.h +0 -3
  65. data/src/cxx_supportlib/oxt/implementation.cpp +11 -0
  66. data/src/cxx_supportlib/oxt/system_calls.cpp +10 -3
  67. data/src/cxx_supportlib/oxt/thread.hpp +1 -1
  68. data/src/cxx_supportlib/vendor-modified/boost/asio/as_tuple.hpp +35 -9
  69. data/src/cxx_supportlib/vendor-modified/boost/asio/associated_immediate_executor.hpp +3 -2
  70. data/src/cxx_supportlib/vendor-modified/boost/asio/associator.hpp +1 -1
  71. data/src/cxx_supportlib/vendor-modified/boost/asio/async_result.hpp +74 -68
  72. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_datagram_socket.hpp +11 -11
  73. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_deadline_timer.hpp +2 -2
  74. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_random_access_file.hpp +2 -2
  75. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_raw_socket.hpp +10 -10
  76. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_readable_pipe.hpp +1 -1
  77. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_seq_packet_socket.hpp +3 -3
  78. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_serial_port.hpp +2 -2
  79. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_signal_set.hpp +1 -1
  80. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket.hpp +2 -2
  81. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket_acceptor.hpp +9 -9
  82. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_stream_file.hpp +2 -2
  83. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_stream_socket.hpp +6 -6
  84. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_waitable_timer.hpp +2 -2
  85. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_writable_pipe.hpp +1 -1
  86. data/src/cxx_supportlib/vendor-modified/boost/asio/bind_allocator.hpp +88 -22
  87. data/src/cxx_supportlib/vendor-modified/boost/asio/bind_cancellation_slot.hpp +91 -22
  88. data/src/cxx_supportlib/vendor-modified/boost/asio/bind_executor.hpp +105 -23
  89. data/src/cxx_supportlib/vendor-modified/boost/asio/bind_immediate_executor.hpp +90 -23
  90. data/src/cxx_supportlib/vendor-modified/boost/asio/buffer.hpp +2 -2
  91. data/src/cxx_supportlib/vendor-modified/boost/asio/buffer_registration.hpp +1 -1
  92. data/src/cxx_supportlib/vendor-modified/boost/asio/cancel_after.hpp +303 -0
  93. data/src/cxx_supportlib/vendor-modified/boost/asio/cancel_at.hpp +296 -0
  94. data/src/cxx_supportlib/vendor-modified/boost/asio/{experimental/impl/co_composed.hpp → co_composed.hpp} +208 -61
  95. data/src/cxx_supportlib/vendor-modified/boost/asio/completion_condition.hpp +49 -0
  96. data/src/cxx_supportlib/vendor-modified/boost/asio/compose.hpp +10 -201
  97. data/src/cxx_supportlib/vendor-modified/boost/asio/composed.hpp +415 -0
  98. data/src/cxx_supportlib/vendor-modified/boost/asio/connect.hpp +214 -48
  99. data/src/cxx_supportlib/vendor-modified/boost/asio/coroutine.hpp +3 -4
  100. data/src/cxx_supportlib/vendor-modified/boost/asio/default_completion_token.hpp +91 -0
  101. data/src/cxx_supportlib/vendor-modified/boost/asio/deferred.hpp +9 -5
  102. data/src/cxx_supportlib/vendor-modified/boost/asio/detached.hpp +2 -2
  103. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/buffered_stream_storage.hpp +1 -1
  104. data/src/cxx_supportlib/vendor-modified/boost/asio/{experimental/detail/channel_message.hpp → detail/completion_message.hpp} +14 -16
  105. data/src/cxx_supportlib/vendor-modified/boost/asio/{experimental/detail/channel_payload.hpp → detail/completion_payload.hpp} +30 -32
  106. data/src/cxx_supportlib/vendor-modified/boost/asio/{experimental/detail/channel_handler.hpp → detail/completion_payload_handler.hpp} +15 -13
  107. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/config.hpp +26 -32
  108. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/deadline_timer_service.hpp +5 -1
  109. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_alloc_helpers.hpp +14 -118
  110. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/descriptor_ops.ipp +36 -33
  111. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/dev_poll_reactor.ipp +1 -1
  112. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/reactive_descriptor_service.ipp +7 -5
  113. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/reactive_socket_service_base.ipp +6 -4
  114. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/socket_ops.ipp +44 -35
  115. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/socket_select_interrupter.ipp +1 -1
  116. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/initiation_base.hpp +64 -0
  117. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/memory.hpp +0 -11
  118. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_descriptor_service.hpp +20 -16
  119. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_send_op.hpp +0 -1
  120. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_service.hpp +4 -4
  121. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_service_base.hpp +23 -18
  122. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/recycling_allocator.hpp +9 -0
  123. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolve_endpoint_op.hpp +1 -1
  124. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolve_query_op.hpp +1 -1
  125. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread_info_base.hpp +11 -1
  126. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timed_cancel_op.hpp +363 -0
  127. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/wrapped_handler.hpp +29 -51
  128. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/allocator.hpp +1 -1
  129. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/blocking.hpp +1 -1
  130. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/blocking_adaptation.hpp +1 -1
  131. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/context.hpp +1 -1
  132. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/mapping.hpp +1 -1
  133. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/occupancy.hpp +1 -1
  134. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/outstanding_work.hpp +1 -1
  135. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/relationship.hpp +1 -1
  136. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/basic_channel.hpp +2 -1
  137. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/basic_concurrent_channel.hpp +2 -1
  138. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/co_composed.hpp +2 -114
  139. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_receive_op.hpp +2 -3
  140. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_send_functions.hpp +27 -19
  141. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_send_op.hpp +0 -1
  142. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_service.hpp +17 -15
  143. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/coro_promise_allocator.hpp +2 -3
  144. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/impl/channel_service.hpp +4 -2
  145. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/partial_promise.hpp +3 -5
  146. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/as_single.hpp +12 -7
  147. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/coro.hpp +1 -1
  148. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/parallel_group.hpp +38 -40
  149. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/promise.hpp +3 -3
  150. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/use_coro.hpp +5 -5
  151. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/use_promise.hpp +1 -1
  152. data/src/cxx_supportlib/vendor-modified/boost/asio/immediate.hpp +144 -0
  153. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/append.hpp +14 -7
  154. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/as_tuple.hpp +45 -14
  155. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/awaitable.hpp +3 -3
  156. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/cancel_after.hpp +270 -0
  157. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/cancel_at.hpp +270 -0
  158. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/co_spawn.hpp +8 -0
  159. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/connect.hpp +60 -166
  160. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/consign.hpp +14 -7
  161. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/detached.hpp +2 -2
  162. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/prepend.hpp +14 -7
  163. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read.hpp +26 -177
  164. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_at.hpp +16 -82
  165. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_until.hpp +13 -286
  166. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/redirect_error.hpp +55 -18
  167. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/spawn.hpp +1 -1
  168. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/write.hpp +26 -185
  169. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/write_at.hpp +16 -87
  170. data/src/cxx_supportlib/vendor-modified/boost/asio/io_context_strand.hpp +5 -5
  171. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver.hpp +6 -6
  172. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/detail/socket_option.hpp +1 -1
  173. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v6.ipp +1 -1
  174. data/src/cxx_supportlib/vendor-modified/boost/asio/placeholders.hpp +12 -6
  175. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/basic_descriptor.hpp +1 -1
  176. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/basic_stream_descriptor.hpp +2 -2
  177. data/src/cxx_supportlib/vendor-modified/boost/asio/read.hpp +127 -28
  178. data/src/cxx_supportlib/vendor-modified/boost/asio/read_at.hpp +70 -20
  179. data/src/cxx_supportlib/vendor-modified/boost/asio/read_until.hpp +114 -36
  180. data/src/cxx_supportlib/vendor-modified/boost/asio/redirect_error.hpp +43 -3
  181. data/src/cxx_supportlib/vendor-modified/boost/asio/registered_buffer.hpp +2 -2
  182. data/src/cxx_supportlib/vendor-modified/boost/asio/spawn.hpp +0 -1
  183. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/impl/openssl_init.ipp +2 -2
  184. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/context.ipp +10 -7
  185. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/stream.hpp +5 -5
  186. data/src/cxx_supportlib/vendor-modified/boost/asio/this_coro.hpp +2 -2
  187. data/src/cxx_supportlib/vendor-modified/boost/asio/use_awaitable.hpp +2 -2
  188. data/src/cxx_supportlib/vendor-modified/boost/asio/use_future.hpp +1 -1
  189. data/src/cxx_supportlib/vendor-modified/boost/asio/uses_executor.hpp +1 -1
  190. data/src/cxx_supportlib/vendor-modified/boost/asio/version.hpp +1 -1
  191. data/src/cxx_supportlib/vendor-modified/boost/asio/write.hpp +147 -35
  192. data/src/cxx_supportlib/vendor-modified/boost/asio/write_at.hpp +74 -22
  193. data/src/cxx_supportlib/vendor-modified/boost/asio.hpp +6 -0
  194. data/src/cxx_supportlib/vendor-modified/boost/assert/source_location.hpp +4 -1
  195. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/futex.hpp +42 -11
  196. data/src/cxx_supportlib/vendor-modified/boost/bind/bind.hpp +15 -37
  197. data/src/cxx_supportlib/vendor-modified/boost/container/adaptive_pool.hpp +8 -8
  198. data/src/cxx_supportlib/vendor-modified/boost/container/allocator.hpp +1 -1
  199. data/src/cxx_supportlib/vendor-modified/boost/container/allocator_traits.hpp +151 -10
  200. data/src/cxx_supportlib/vendor-modified/boost/container/container_fwd.hpp +11 -9
  201. data/src/cxx_supportlib/vendor-modified/boost/container/deque.hpp +611 -102
  202. data/src/cxx_supportlib/vendor-modified/boost/container/detail/adaptive_node_pool.hpp +1 -1
  203. data/src/cxx_supportlib/vendor-modified/boost/container/detail/adaptive_node_pool_impl.hpp +47 -47
  204. data/src/cxx_supportlib/vendor-modified/boost/container/detail/advanced_insert_int.hpp +25 -24
  205. data/src/cxx_supportlib/vendor-modified/boost/container/detail/allocation_type.hpp +7 -7
  206. data/src/cxx_supportlib/vendor-modified/boost/container/detail/block_list.hpp +2 -2
  207. data/src/cxx_supportlib/vendor-modified/boost/container/detail/block_slist.hpp +2 -2
  208. data/src/cxx_supportlib/vendor-modified/boost/container/detail/construct_in_place.hpp +35 -1
  209. data/src/cxx_supportlib/vendor-modified/boost/container/detail/copy_move_algo.hpp +14 -14
  210. data/src/cxx_supportlib/vendor-modified/boost/container/detail/dispatch_uses_allocator.hpp +1 -1
  211. data/src/cxx_supportlib/vendor-modified/boost/container/detail/flat_tree.hpp +55 -23
  212. data/src/cxx_supportlib/vendor-modified/boost/container/detail/function_detector.hpp +1 -1
  213. data/src/cxx_supportlib/vendor-modified/boost/container/detail/is_container.hpp +2 -2
  214. data/src/cxx_supportlib/vendor-modified/boost/container/detail/is_contiguous_container.hpp +1 -1
  215. data/src/cxx_supportlib/vendor-modified/boost/container/detail/is_pair.hpp +4 -4
  216. data/src/cxx_supportlib/vendor-modified/boost/container/detail/iterators.hpp +8 -8
  217. data/src/cxx_supportlib/vendor-modified/boost/container/detail/math_functions.hpp +9 -9
  218. data/src/cxx_supportlib/vendor-modified/boost/container/detail/mpl.hpp +4 -4
  219. data/src/cxx_supportlib/vendor-modified/boost/container/detail/multiallocation_chain.hpp +96 -10
  220. data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_alloc_holder.hpp +19 -4
  221. data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_pool.hpp +1 -1
  222. data/src/cxx_supportlib/vendor-modified/boost/container/detail/pair.hpp +17 -17
  223. data/src/cxx_supportlib/vendor-modified/boost/container/detail/pool_common.hpp +1 -1
  224. data/src/cxx_supportlib/vendor-modified/boost/container/detail/pool_common_alloc.hpp +2 -2
  225. data/src/cxx_supportlib/vendor-modified/boost/container/detail/pool_resource.hpp +4 -4
  226. data/src/cxx_supportlib/vendor-modified/boost/container/detail/tree.hpp +86 -52
  227. data/src/cxx_supportlib/vendor-modified/boost/container/detail/version_type.hpp +4 -4
  228. data/src/cxx_supportlib/vendor-modified/boost/container/detail/workaround.hpp +12 -0
  229. data/src/cxx_supportlib/vendor-modified/boost/container/devector.hpp +145 -65
  230. data/src/cxx_supportlib/vendor-modified/boost/container/flat_map.hpp +105 -22
  231. data/src/cxx_supportlib/vendor-modified/boost/container/flat_set.hpp +2 -2
  232. data/src/cxx_supportlib/vendor-modified/boost/container/list.hpp +30 -22
  233. data/src/cxx_supportlib/vendor-modified/boost/container/map.hpp +19 -2
  234. data/src/cxx_supportlib/vendor-modified/boost/container/new_allocator.hpp +1 -1
  235. data/src/cxx_supportlib/vendor-modified/boost/container/node_allocator.hpp +15 -8
  236. data/src/cxx_supportlib/vendor-modified/boost/container/node_handle.hpp +6 -5
  237. data/src/cxx_supportlib/vendor-modified/boost/container/options.hpp +15 -15
  238. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/memory_resource.hpp +1 -1
  239. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/monotonic_buffer_resource.hpp +1 -1
  240. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/resource_adaptor.hpp +3 -3
  241. data/src/cxx_supportlib/vendor-modified/boost/container/scoped_allocator.hpp +1 -1
  242. data/src/cxx_supportlib/vendor-modified/boost/container/set.hpp +2 -2
  243. data/src/cxx_supportlib/vendor-modified/boost/container/slist.hpp +31 -24
  244. data/src/cxx_supportlib/vendor-modified/boost/container/small_vector.hpp +45 -43
  245. data/src/cxx_supportlib/vendor-modified/boost/container/stable_vector.hpp +45 -33
  246. data/src/cxx_supportlib/vendor-modified/boost/container/static_vector.hpp +5 -7
  247. data/src/cxx_supportlib/vendor-modified/boost/container/string.hpp +55 -47
  248. data/src/cxx_supportlib/vendor-modified/boost/container/uses_allocator.hpp +3 -3
  249. data/src/cxx_supportlib/vendor-modified/boost/container/vector.hpp +222 -73
  250. data/src/cxx_supportlib/vendor-modified/boost/core/detail/minstd_rand.hpp +58 -0
  251. data/src/cxx_supportlib/vendor-modified/boost/core/detail/string_view.hpp +13 -13
  252. data/src/cxx_supportlib/vendor-modified/boost/core/empty_value.hpp +53 -5
  253. data/src/cxx_supportlib/vendor-modified/boost/core/lightweight_test.hpp +1 -0
  254. data/src/cxx_supportlib/vendor-modified/boost/core/pointer_in_range.hpp +49 -0
  255. data/src/cxx_supportlib/vendor-modified/boost/core/span.hpp +2 -0
  256. data/src/cxx_supportlib/vendor-modified/boost/core/type_name.hpp +7 -2
  257. data/src/cxx_supportlib/vendor-modified/boost/function/function_base.hpp +22 -34
  258. data/src/cxx_supportlib/vendor-modified/boost/function/function_template.hpp +141 -38
  259. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/algorithm.hpp +8 -8
  260. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hash.hpp +1 -1
  261. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hook_traits.hpp +8 -6
  262. data/src/cxx_supportlib/vendor-modified/boost/intrusive/pointer_traits.hpp +18 -18
  263. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical_streams.hpp +22 -17
  264. data/src/cxx_supportlib/vendor-modified/boost/libs/random/src/random_device.cpp +3 -1
  265. data/src/cxx_supportlib/vendor-modified/boost/move/detail/config_begin.hpp +0 -1
  266. data/src/cxx_supportlib/vendor-modified/boost/move/detail/launder.hpp +53 -0
  267. data/src/cxx_supportlib/vendor-modified/boost/move/detail/type_traits.hpp +9 -1
  268. data/src/cxx_supportlib/vendor-modified/boost/move/detail/workaround.hpp +6 -1
  269. data/src/cxx_supportlib/vendor-modified/boost/mp11/version.hpp +1 -1
  270. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/integral_wrapper.hpp +2 -1
  271. data/src/cxx_supportlib/vendor-modified/boost/predef/version.h +1 -1
  272. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/requires_cxx11.hpp +1 -1
  273. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_has_gcc_intrinsics.hpp +4 -1
  274. data/src/cxx_supportlib/vendor-modified/boost/system/detail/generic_category_message.hpp +13 -1
  275. data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_flat_map.hpp +13 -1
  276. data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_flat_map_fwd.hpp +15 -0
  277. data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_flat_set.hpp +13 -1
  278. data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_flat_set_fwd.hpp +15 -0
  279. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/fca.hpp +22 -6
  280. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/concurrent_table.hpp +38 -10
  281. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/core.hpp +111 -2
  282. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/cumulative_stats.hpp +177 -0
  283. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/table.hpp +11 -1
  284. data/src/cxx_supportlib/vendor-modified/boost/unordered/hash_traits.hpp +33 -7
  285. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_map.hpp +12 -0
  286. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_map_fwd.hpp +15 -0
  287. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_set.hpp +12 -0
  288. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_set_fwd.hpp +14 -0
  289. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_map_fwd.hpp +19 -0
  290. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_map.hpp +12 -0
  291. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_map_fwd.hpp +15 -0
  292. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_set.hpp +12 -0
  293. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_set_fwd.hpp +14 -0
  294. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_set_fwd.hpp +17 -0
  295. data/src/cxx_supportlib/vendor-modified/boost/utility/detail/minstd_rand.hpp +1 -43
  296. data/src/cxx_supportlib/vendor-modified/boost/version.hpp +2 -2
  297. data/src/ruby_supportlib/phusion_passenger/config/compile_nginx_engine_command.rb +6 -2
  298. data/src/ruby_supportlib/phusion_passenger/config/install_standalone_runtime_command.rb +10 -0
  299. data/src/ruby_supportlib/phusion_passenger/config/nginx_engine_compiler.rb +12 -4
  300. data/src/ruby_supportlib/phusion_passenger/platform_info/compiler.rb +32 -5
  301. data/src/ruby_supportlib/phusion_passenger/standalone/start_command.rb +0 -4
  302. data/src/ruby_supportlib/phusion_passenger/utils/json.rb +5 -1
  303. data/src/ruby_supportlib/phusion_passenger/utils.rb +5 -15
  304. data/src/ruby_supportlib/phusion_passenger.rb +5 -5
  305. metadata +21 -8
@@ -734,7 +734,7 @@ const T other_t<I>::static_query_v;
734
734
 
735
735
  typedef detail::mapping_t<> mapping_t;
736
736
 
737
- constexpr mapping_t mapping;
737
+ BOOST_ASIO_INLINE_VARIABLE constexpr mapping_t mapping;
738
738
 
739
739
  } // namespace execution
740
740
 
@@ -132,7 +132,7 @@ const T occupancy_t<I>::static_query_v;
132
132
 
133
133
  typedef detail::occupancy_t<> occupancy_t;
134
134
 
135
- constexpr occupancy_t occupancy;
135
+ BOOST_ASIO_INLINE_VARIABLE constexpr occupancy_t occupancy;
136
136
 
137
137
  } // namespace execution
138
138
 
@@ -545,7 +545,7 @@ const T tracked_t<I>::static_query_v;
545
545
 
546
546
  typedef detail::outstanding_work_t<> outstanding_work_t;
547
547
 
548
- constexpr outstanding_work_t outstanding_work;
548
+ BOOST_ASIO_INLINE_VARIABLE constexpr outstanding_work_t outstanding_work;
549
549
 
550
550
  } // namespace execution
551
551
 
@@ -543,7 +543,7 @@ const T continuation_t<I>::static_query_v;
543
543
 
544
544
  typedef detail::relationship_t<> relationship_t;
545
545
 
546
- constexpr relationship_t relationship;
546
+ BOOST_ASIO_INLINE_VARIABLE constexpr relationship_t relationship;
547
547
 
548
548
  } // namespace execution
549
549
 
@@ -111,7 +111,8 @@ private:
111
111
 
112
112
  template <typename... PayloadSignatures,
113
113
  BOOST_ASIO_COMPLETION_TOKEN_FOR(PayloadSignatures...) CompletionToken>
114
- auto do_async_receive(detail::channel_payload<PayloadSignatures...>*,
114
+ auto do_async_receive(
115
+ boost::asio::detail::completion_payload<PayloadSignatures...>*,
115
116
  CompletionToken&& token)
116
117
  -> decltype(
117
118
  async_initiate<CompletionToken, PayloadSignatures...>(
@@ -111,7 +111,8 @@ private:
111
111
 
112
112
  template <typename... PayloadSignatures,
113
113
  BOOST_ASIO_COMPLETION_TOKEN_FOR(PayloadSignatures...) CompletionToken>
114
- auto do_async_receive(detail::channel_payload<PayloadSignatures...>*,
114
+ auto do_async_receive(
115
+ boost::asio::detail::completion_payload<PayloadSignatures...>*,
115
116
  CompletionToken&& token)
116
117
  -> decltype(
117
118
  async_initiate<CompletionToken, PayloadSignatures...>(
@@ -16,7 +16,7 @@
16
16
  #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17
17
 
18
18
  #include <boost/asio/detail/config.hpp>
19
- #include <boost/asio/async_result.hpp>
19
+ #include <boost/asio/co_composed.hpp>
20
20
 
21
21
  #include <boost/asio/detail/push_options.hpp>
22
22
 
@@ -24,117 +24,7 @@ namespace boost {
24
24
  namespace asio {
25
25
  namespace experimental {
26
26
 
27
- /// Creates an initiation function object that may be used to launch a
28
- /// coroutine-based composed asynchronous operation.
29
- /**
30
- * The experimental::co_composed utility simplifies the implementation of
31
- * composed asynchronous operations by automatically adapting a coroutine to be
32
- * an initiation function object for use with @c async_initiate. When awaiting
33
- * asynchronous operations, the coroutine automatically uses a conforming
34
- * intermediate completion handler.
35
- *
36
- * @param implementation A function object that contains the coroutine-based
37
- * implementation of the composed asynchronous operation. The first argument to
38
- * the function object represents the state of the operation, and may be used
39
- * to test for cancellation. The remaining arguments are those passed to @c
40
- * async_initiate after the completion token.
41
- *
42
- * @param io_objects_or_executors Zero or more I/O objects or I/O executors for
43
- * which outstanding work must be maintained while the operation is incomplete.
44
- *
45
- * @par Per-Operation Cancellation
46
- * By default, terminal per-operation cancellation is enabled for composed
47
- * operations that use experimental::co_composed. To disable cancellation for
48
- * the composed operation, or to alter its supported cancellation types, call
49
- * the state's @c reset_cancellation_state function.
50
- *
51
- * @par Examples
52
- * The following example illustrates manual error handling and explicit checks
53
- * for cancellation. The completion handler is invoked via a @c co_yield to the
54
- * state's @c complete function, which never returns.
55
- *
56
- * @code template <typename CompletionToken>
57
- * auto async_echo(tcp::socket& socket,
58
- * CompletionToken&& token)
59
- * {
60
- * return boost::asio::async_initiate<
61
- * CompletionToken, void(boost::system::error_code)>(
62
- * boost::asio::experimental::co_composed(
63
- * [](auto state, tcp::socket& socket) -> void
64
- * {
65
- * state.reset_cancellation_state(
66
- * boost::asio::enable_terminal_cancellation());
67
- *
68
- * while (!state.cancelled())
69
- * {
70
- * char data[1024];
71
- * auto [e1, n1] =
72
- * co_await socket.async_read_some(
73
- * boost::asio::buffer(data),
74
- * boost::asio::as_tuple(boost::asio::deferred));
75
- *
76
- * if (e1)
77
- * co_yield state.complete(e1);
78
- *
79
- * if (!!state.cancelled())
80
- * co_yield state.complete(
81
- * make_error_code(boost::asio::error::operation_aborted));
82
- *
83
- * auto [e2, n2] =
84
- * co_await boost::asio::async_write(socket,
85
- * boost::asio::buffer(data, n1),
86
- * boost::asio::as_tuple(boost::asio::deferred));
87
- *
88
- * if (e2)
89
- * co_yield state.complete(e2);
90
- * }
91
- * }, socket),
92
- * token, std::ref(socket));
93
- * } @endcode
94
- *
95
- * This next example shows exception-based error handling and implicit checks
96
- * for cancellation. The completion handler is invoked after returning from the
97
- * coroutine via @c co_return. Valid @c co_return values are specified using
98
- * completion signatures passed to the @c co_composed function.
99
- *
100
- * @code template <typename CompletionToken>
101
- * auto async_echo(tcp::socket& socket,
102
- * CompletionToken&& token)
103
- * {
104
- * return boost::asio::async_initiate<
105
- * CompletionToken, void(boost::system::error_code)>(
106
- * boost::asio::experimental::co_composed<
107
- * void(boost::system::error_code)>(
108
- * [](auto state, tcp::socket& socket) -> void
109
- * {
110
- * try
111
- * {
112
- * state.throw_if_cancelled(true);
113
- * state.reset_cancellation_state(
114
- * boost::asio::enable_terminal_cancellation());
115
- *
116
- * for (;;)
117
- * {
118
- * char data[1024];
119
- * std::size_t n = co_await socket.async_read_some(
120
- * boost::asio::buffer(data), boost::asio::deferred);
121
- *
122
- * co_await boost::asio::async_write(socket,
123
- * boost::asio::buffer(data, n), boost::asio::deferred);
124
- * }
125
- * }
126
- * catch (const boost::system::system_error& e)
127
- * {
128
- * co_return {e.code()};
129
- * }
130
- * }, socket),
131
- * token, std::ref(socket));
132
- * } @endcode
133
- */
134
- template <completion_signature... Signatures,
135
- typename Implementation, typename... IoObjectsOrExecutors>
136
- auto co_composed(Implementation&& implementation,
137
- IoObjectsOrExecutors&&... io_objects_or_executors);
27
+ using boost::asio::co_composed;
138
28
 
139
29
  } // namespace experimental
140
30
  } // namespace asio
@@ -142,6 +32,4 @@ auto co_composed(Implementation&& implementation,
142
32
 
143
33
  #include <boost/asio/detail/pop_options.hpp>
144
34
 
145
- #include <boost/asio/experimental/impl/co_composed.hpp>
146
-
147
35
  #endif // BOOST_ASIO_EXPERIMENTAL_CO_COMPOSED_HPP
@@ -17,11 +17,10 @@
17
17
 
18
18
  #include <boost/asio/detail/config.hpp>
19
19
  #include <boost/asio/detail/bind_handler.hpp>
20
+ #include <boost/asio/detail/completion_handler.hpp>
20
21
  #include <boost/asio/detail/handler_alloc_helpers.hpp>
21
22
  #include <boost/asio/error.hpp>
22
- #include <boost/asio/experimental/detail/channel_handler.hpp>
23
23
  #include <boost/asio/experimental/detail/channel_operation.hpp>
24
- #include <boost/asio/experimental/detail/channel_payload.hpp>
25
24
 
26
25
  #include <boost/asio/detail/push_options.hpp>
27
26
 
@@ -93,7 +92,7 @@ public:
93
92
  if (a != channel_operation::destroy_op)
94
93
  {
95
94
  Payload* payload = static_cast<Payload*>(v);
96
- channel_handler<Payload, Handler> handler(
95
+ boost::asio::detail::completion_payload_handler<Payload, Handler> handler(
97
96
  static_cast<Payload&&>(*payload), o->handler_);
98
97
  p.h = boost::asio::detail::addressof(handler.handler_);
99
98
  p.reset();
@@ -17,9 +17,9 @@
17
17
 
18
18
  #include <boost/asio/detail/config.hpp>
19
19
  #include <boost/asio/async_result.hpp>
20
+ #include <boost/asio/detail/completion_message.hpp>
20
21
  #include <boost/asio/detail/type_traits.hpp>
21
22
  #include <boost/system/error_code.hpp>
22
- #include <boost/asio/experimental/detail/channel_message.hpp>
23
23
 
24
24
  #include <boost/asio/detail/push_options.hpp>
25
25
 
@@ -37,11 +37,12 @@ class channel_send_functions<Derived, Executor, R(Args...)>
37
37
  public:
38
38
  template <typename... Args2>
39
39
  enable_if_t<
40
- is_constructible<detail::channel_message<R(Args...)>, int, Args2...>::value,
40
+ is_constructible<boost::asio::detail::completion_message<R(Args...)>,
41
+ int, Args2...>::value,
41
42
  bool
42
43
  > try_send(Args2&&... args)
43
44
  {
44
- typedef typename detail::channel_message<R(Args...)> message_type;
45
+ typedef boost::asio::detail::completion_message<R(Args...)> message_type;
45
46
  Derived* self = static_cast<Derived*>(this);
46
47
  return self->service_->template try_send<message_type>(
47
48
  self->impl_, false, static_cast<Args2&&>(args)...);
@@ -49,11 +50,12 @@ public:
49
50
 
50
51
  template <typename... Args2>
51
52
  enable_if_t<
52
- is_constructible<detail::channel_message<R(Args...)>, int, Args2...>::value,
53
+ is_constructible<boost::asio::detail::completion_message<R(Args...)>,
54
+ int, Args2...>::value,
53
55
  bool
54
56
  > try_send_via_dispatch(Args2&&... args)
55
57
  {
56
- typedef typename detail::channel_message<R(Args...)> message_type;
58
+ typedef boost::asio::detail::completion_message<R(Args...)> message_type;
57
59
  Derived* self = static_cast<Derived*>(this);
58
60
  return self->service_->template try_send<message_type>(
59
61
  self->impl_, true, static_cast<Args2&&>(args)...);
@@ -61,11 +63,12 @@ public:
61
63
 
62
64
  template <typename... Args2>
63
65
  enable_if_t<
64
- is_constructible<detail::channel_message<R(Args...)>, int, Args2...>::value,
66
+ is_constructible<boost::asio::detail::completion_message<R(Args...)>,
67
+ int, Args2...>::value,
65
68
  std::size_t
66
69
  > try_send_n(std::size_t count, Args2&&... args)
67
70
  {
68
- typedef typename detail::channel_message<R(Args...)> message_type;
71
+ typedef boost::asio::detail::completion_message<R(Args...)> message_type;
69
72
  Derived* self = static_cast<Derived*>(this);
70
73
  return self->service_->template try_send_n<message_type>(
71
74
  self->impl_, count, false, static_cast<Args2&&>(args)...);
@@ -73,11 +76,12 @@ public:
73
76
 
74
77
  template <typename... Args2>
75
78
  enable_if_t<
76
- is_constructible<detail::channel_message<R(Args...)>, int, Args2...>::value,
79
+ is_constructible<boost::asio::detail::completion_message<R(Args...)>,
80
+ int, Args2...>::value,
77
81
  std::size_t
78
82
  > try_send_n_via_dispatch(std::size_t count, Args2&&... args)
79
83
  {
80
- typedef typename detail::channel_message<R(Args...)> message_type;
84
+ typedef boost::asio::detail::completion_message<R(Args...)> message_type;
81
85
  Derived* self = static_cast<Derived*>(this);
82
86
  return self->service_->template try_send_n<message_type>(
83
87
  self->impl_, count, true, static_cast<Args2&&>(args)...);
@@ -97,7 +101,7 @@ public:
97
101
  Derived>::payload_type>()))
98
102
  {
99
103
  typedef typename Derived::payload_type payload_type;
100
- typedef typename detail::channel_message<R(Args...)> message_type;
104
+ typedef boost::asio::detail::completion_message<R(Args...)> message_type;
101
105
  Derived* self = static_cast<Derived*>(this);
102
106
  return async_initiate<CompletionToken, void (boost::system::error_code)>(
103
107
  typename Derived::initiate_async_send(self), token,
@@ -116,11 +120,12 @@ public:
116
120
 
117
121
  template <typename... Args2>
118
122
  enable_if_t<
119
- is_constructible<detail::channel_message<R(Args...)>, int, Args2...>::value,
123
+ is_constructible<boost::asio::detail::completion_message<R(Args...)>,
124
+ int, Args2...>::value,
120
125
  bool
121
126
  > try_send(Args2&&... args)
122
127
  {
123
- typedef typename detail::channel_message<R(Args...)> message_type;
128
+ typedef boost::asio::detail::completion_message<R(Args...)> message_type;
124
129
  Derived* self = static_cast<Derived*>(this);
125
130
  return self->service_->template try_send<message_type>(
126
131
  self->impl_, false, static_cast<Args2&&>(args)...);
@@ -128,11 +133,12 @@ public:
128
133
 
129
134
  template <typename... Args2>
130
135
  enable_if_t<
131
- is_constructible<detail::channel_message<R(Args...)>, int, Args2...>::value,
136
+ is_constructible<boost::asio::detail::completion_message<R(Args...)>,
137
+ int, Args2...>::value,
132
138
  bool
133
139
  > try_send_via_dispatch(Args2&&... args)
134
140
  {
135
- typedef typename detail::channel_message<R(Args...)> message_type;
141
+ typedef boost::asio::detail::completion_message<R(Args...)> message_type;
136
142
  Derived* self = static_cast<Derived*>(this);
137
143
  return self->service_->template try_send<message_type>(
138
144
  self->impl_, true, static_cast<Args2&&>(args)...);
@@ -140,11 +146,12 @@ public:
140
146
 
141
147
  template <typename... Args2>
142
148
  enable_if_t<
143
- is_constructible<detail::channel_message<R(Args...)>, int, Args2...>::value,
149
+ is_constructible<boost::asio::detail::completion_message<R(Args...)>,
150
+ int, Args2...>::value,
144
151
  std::size_t
145
152
  > try_send_n(std::size_t count, Args2&&... args)
146
153
  {
147
- typedef typename detail::channel_message<R(Args...)> message_type;
154
+ typedef boost::asio::detail::completion_message<R(Args...)> message_type;
148
155
  Derived* self = static_cast<Derived*>(this);
149
156
  return self->service_->template try_send_n<message_type>(
150
157
  self->impl_, count, false, static_cast<Args2&&>(args)...);
@@ -152,11 +159,12 @@ public:
152
159
 
153
160
  template <typename... Args2>
154
161
  enable_if_t<
155
- is_constructible<detail::channel_message<R(Args...)>, int, Args2...>::value,
162
+ is_constructible<boost::asio::detail::completion_message<R(Args...)>,
163
+ int, Args2...>::value,
156
164
  std::size_t
157
165
  > try_send_n_via_dispatch(std::size_t count, Args2&&... args)
158
166
  {
159
- typedef typename detail::channel_message<R(Args...)> message_type;
167
+ typedef boost::asio::detail::completion_message<R(Args...)> message_type;
160
168
  Derived* self = static_cast<Derived*>(this);
161
169
  return self->service_->template try_send_n<message_type>(
162
170
  self->impl_, count, true, static_cast<Args2&&>(args)...);
@@ -176,7 +184,7 @@ public:
176
184
  Derived>::payload_type>()))
177
185
  {
178
186
  typedef typename Derived::payload_type payload_type;
179
- typedef typename detail::channel_message<R(Args...)> message_type;
187
+ typedef boost::asio::detail::completion_message<R(Args...)> message_type;
180
188
  Derived* self = static_cast<Derived*>(this);
181
189
  return async_initiate<CompletionToken, void (boost::system::error_code)>(
182
190
  typename Derived::initiate_async_send(self), token,
@@ -21,7 +21,6 @@
21
21
  #include <boost/asio/error.hpp>
22
22
  #include <boost/asio/experimental/channel_error.hpp>
23
23
  #include <boost/asio/experimental/detail/channel_operation.hpp>
24
- #include <boost/asio/experimental/detail/channel_payload.hpp>
25
24
 
26
25
  #include <boost/asio/detail/push_options.hpp>
27
26
 
@@ -18,10 +18,12 @@
18
18
  #include <boost/asio/detail/config.hpp>
19
19
  #include <boost/asio/associated_cancellation_slot.hpp>
20
20
  #include <boost/asio/cancellation_type.hpp>
21
+ #include <boost/asio/detail/completion_message.hpp>
22
+ #include <boost/asio/detail/completion_payload.hpp>
23
+ #include <boost/asio/detail/completion_payload_handler.hpp>
21
24
  #include <boost/asio/detail/mutex.hpp>
22
25
  #include <boost/asio/detail/op_queue.hpp>
23
26
  #include <boost/asio/execution_context.hpp>
24
- #include <boost/asio/experimental/detail/channel_message.hpp>
25
27
  #include <boost/asio/experimental/detail/channel_receive_op.hpp>
26
28
  #include <boost/asio/experimental/detail/channel_send_op.hpp>
27
29
  #include <boost/asio/experimental/detail/has_signature.hpp>
@@ -232,7 +234,7 @@ private:
232
234
  void operator()(Args&&... args)
233
235
  {
234
236
  op_->post(
235
- channel_message<Signature>(0,
237
+ boost::asio::detail::completion_message<Signature>(0,
236
238
  static_cast<Args&&>(args)...));
237
239
  }
238
240
 
@@ -308,8 +310,8 @@ struct channel_service<Mutex>::implementation_type : base_implementation_type
308
310
  typename traits_type::receive_closed_signature,
309
311
  Signatures...
310
312
  >::value,
311
- channel_payload<Signatures...>,
312
- channel_payload<
313
+ boost::asio::detail::completion_payload<Signatures...>,
314
+ boost::asio::detail::completion_payload<
313
315
  Signatures...,
314
316
  typename traits_type::receive_closed_signature
315
317
  >
@@ -320,11 +322,11 @@ struct channel_service<Mutex>::implementation_type : base_implementation_type
320
322
  Signatures...,
321
323
  typename traits_type::receive_cancelled_signature
322
324
  >::value,
323
- channel_payload<
325
+ boost::asio::detail::completion_payload<
324
326
  Signatures...,
325
327
  typename traits_type::receive_cancelled_signature
326
328
  >,
327
- channel_payload<
329
+ boost::asio::detail::completion_payload<
328
330
  Signatures...,
329
331
  typename traits_type::receive_cancelled_signature,
330
332
  typename traits_type::receive_closed_signature
@@ -405,8 +407,8 @@ struct channel_service<Mutex>::implementation_type<Traits, R()>
405
407
  typename traits_type::receive_closed_signature,
406
408
  R()
407
409
  >::value,
408
- channel_payload<R()>,
409
- channel_payload<
410
+ boost::asio::detail::completion_payload<R()>,
411
+ boost::asio::detail::completion_payload<
410
412
  R(),
411
413
  typename traits_type::receive_closed_signature
412
414
  >
@@ -417,11 +419,11 @@ struct channel_service<Mutex>::implementation_type<Traits, R()>
417
419
  R(),
418
420
  typename traits_type::receive_cancelled_signature
419
421
  >::value,
420
- channel_payload<
422
+ boost::asio::detail::completion_payload<
421
423
  R(),
422
424
  typename traits_type::receive_cancelled_signature
423
425
  >,
424
- channel_payload<
426
+ boost::asio::detail::completion_payload<
425
427
  R(),
426
428
  typename traits_type::receive_cancelled_signature,
427
429
  typename traits_type::receive_closed_signature
@@ -466,7 +468,7 @@ struct channel_service<Mutex>::implementation_type<Traits, R()>
466
468
  // Get the element at the front of the buffer.
467
469
  payload_type buffer_front()
468
470
  {
469
- return payload_type(channel_message<R()>(0));
471
+ return payload_type(boost::asio::detail::completion_message<R()>(0));
470
472
  }
471
473
 
472
474
  // Pop a value from the front of the buffer.
@@ -508,8 +510,8 @@ struct channel_service<Mutex>::implementation_type<
508
510
  typename traits_type::receive_closed_signature,
509
511
  R(boost::system::error_code)
510
512
  >::value,
511
- channel_payload<R(boost::system::error_code)>,
512
- channel_payload<
513
+ boost::asio::detail::completion_payload<R(boost::system::error_code)>,
514
+ boost::asio::detail::completion_payload<
513
515
  R(boost::system::error_code),
514
516
  typename traits_type::receive_closed_signature
515
517
  >
@@ -520,11 +522,11 @@ struct channel_service<Mutex>::implementation_type<
520
522
  R(boost::system::error_code),
521
523
  typename traits_type::receive_cancelled_signature
522
524
  >::value,
523
- channel_payload<
525
+ boost::asio::detail::completion_payload<
524
526
  R(boost::system::error_code),
525
527
  typename traits_type::receive_cancelled_signature
526
528
  >,
527
- channel_payload<
529
+ boost::asio::detail::completion_payload<
528
530
  R(boost::system::error_code),
529
531
  typename traits_type::receive_cancelled_signature,
530
532
  typename traits_type::receive_closed_signature
@@ -65,7 +65,6 @@ constexpr std::size_t variadic_first(std::size_t = 0u)
65
65
  return std::numeric_limits<std::size_t>::max();
66
66
  }
67
67
 
68
-
69
68
  template <typename T, typename First, typename... Args>
70
69
  constexpr std::size_t variadic_first(std::size_t pos = 0u)
71
70
  {
@@ -95,14 +94,14 @@ struct coro_promise_allocator
95
94
  allocator_type get_allocator() const {return alloc_;}
96
95
 
97
96
  template <typename... Args>
98
- void* operator new(const std::size_t size, Args & ... args)
97
+ void* operator new(std::size_t size, Args & ... args)
99
98
  {
100
99
  return allocate_coroutine(size,
101
100
  get_variadic<variadic_first<std::allocator_arg_t,
102
101
  std::decay_t<Args>...>() + 1u>(args...));
103
102
  }
104
103
 
105
- void operator delete(void* raw, const std::size_t size)
104
+ void operator delete(void* raw, std::size_t size)
106
105
  {
107
106
  deallocate_coroutine<allocator_type>(raw, size);
108
107
  }
@@ -518,7 +518,8 @@ bool channel_service<Mutex>::try_receive(
518
518
  }
519
519
  lock.unlock();
520
520
  boost::asio::detail::non_const_lvalue<Handler> handler2(handler);
521
- channel_handler<payload_type, decay_t<Handler>>(
521
+ boost::asio::detail::completion_payload_handler<
522
+ payload_type, decay_t<Handler>>(
522
523
  static_cast<payload_type&&>(payload), handler2.value)();
523
524
  return true;
524
525
  }
@@ -533,7 +534,8 @@ bool channel_service<Mutex>::try_receive(
533
534
  send_op->post();
534
535
  lock.unlock();
535
536
  boost::asio::detail::non_const_lvalue<Handler> handler2(handler);
536
- channel_handler<payload_type, decay_t<Handler>>(
537
+ boost::asio::detail::completion_payload_handler<
538
+ payload_type, decay_t<Handler>>(
537
539
  static_cast<payload_type&&>(payload), handler2.value)();
538
540
  return true;
539
541
  }
@@ -55,12 +55,12 @@ template <typename Allocator>
55
55
  struct partial_promise_base
56
56
  {
57
57
  template <typename Executor, typename Token, typename... Args>
58
- void* operator new(const std::size_t size, Executor&, Token& tk, Args&...)
58
+ void* operator new(std::size_t size, Executor&, Token& tk, Args&...)
59
59
  {
60
60
  return allocate_coroutine<Allocator>(size, get_associated_allocator(tk));
61
61
  }
62
62
 
63
- void operator delete(void* raw, const std::size_t size)
63
+ void operator delete(void* raw, std::size_t size)
64
64
  {
65
65
  deallocate_coroutine<Allocator>(raw, size);
66
66
  }
@@ -111,9 +111,7 @@ struct partial_promise : partial_promise_base<Allocator>
111
111
  }
112
112
  };
113
113
 
114
-
115
-
116
- }; // namespace detail
114
+ } // namespace detail
117
115
  } // namespace experimental
118
116
  } // namespace asio
119
117
  } // namespace boost
@@ -20,6 +20,7 @@
20
20
  #include <boost/asio/associator.hpp>
21
21
  #include <boost/asio/async_result.hpp>
22
22
  #include <boost/asio/detail/handler_cont_helpers.hpp>
23
+ #include <boost/asio/detail/initiation_base.hpp>
23
24
  #include <boost/asio/detail/type_traits.hpp>
24
25
 
25
26
  #include <boost/asio/detail/push_options.hpp>
@@ -111,23 +112,27 @@ template <typename CompletionToken, typename Signature>
111
112
  struct async_result<experimental::as_single_t<CompletionToken>, Signature>
112
113
  {
113
114
  template <typename Initiation>
114
- struct init_wrapper
115
+ struct init_wrapper : detail::initiation_base<Initiation>
115
116
  {
116
- init_wrapper(Initiation init)
117
- : initiation_(static_cast<Initiation&&>(init))
117
+ using detail::initiation_base<Initiation>::initiation_base;
118
+
119
+ template <typename Handler, typename... Args>
120
+ void operator()(Handler&& handler, Args&&... args) &&
118
121
  {
122
+ static_cast<Initiation&&>(*this)(
123
+ experimental::detail::as_single_handler<decay_t<Handler>>(
124
+ static_cast<Handler&&>(handler)),
125
+ static_cast<Args&&>(args)...);
119
126
  }
120
127
 
121
128
  template <typename Handler, typename... Args>
122
- void operator()(Handler&& handler, Args&&... args)
129
+ void operator()(Handler&& handler, Args&&... args) const &
123
130
  {
124
- static_cast<Initiation&&>(initiation_)(
131
+ static_cast<const Initiation&>(*this)(
125
132
  experimental::detail::as_single_handler<decay_t<Handler>>(
126
133
  static_cast<Handler&&>(handler)),
127
134
  static_cast<Args&&>(args)...);
128
135
  }
129
-
130
- Initiation initiation_;
131
136
  };
132
137
 
133
138
  template <typename Initiation, typename RawCompletionToken, typename... Args>
@@ -601,7 +601,7 @@ struct coro_promise final :
601
601
 
602
602
  cancellation_slot_type get_cancellation_slot() const noexcept
603
603
  {
604
- return cancel ? cancel->slot : cancellation_slot_type{};
604
+ return cancel ? cancel->state.slot() : cancellation_slot_type{};
605
605
  }
606
606
 
607
607
  using allocator_type =