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
@@ -1,6 +1,6 @@
1
1
  //
2
- // experimental/detail/channel_message.hpp
3
- // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2
+ // detail/completion_message.hpp
3
+ // ~~~~~~~~~~~~~~~~~~~~~~~~~~
4
4
  //
5
5
  // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6
6
  //
@@ -8,8 +8,8 @@
8
8
  // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9
9
  //
10
10
 
11
- #ifndef BOOST_ASIO_EXPERIMENTAL_DETAIL_CHANNEL_MESSAGE_HPP
12
- #define BOOST_ASIO_EXPERIMENTAL_DETAIL_CHANNEL_MESSAGE_HPP
11
+ #ifndef BOOST_ASIO_DETAIL_COMPLETION_MESSAGE_HPP
12
+ #define BOOST_ASIO_DETAIL_COMPLETION_MESSAGE_HPP
13
13
 
14
14
  #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15
15
  # pragma once
@@ -24,17 +24,16 @@
24
24
 
25
25
  namespace boost {
26
26
  namespace asio {
27
- namespace experimental {
28
27
  namespace detail {
29
28
 
30
29
  template <typename Signature>
31
- class channel_message;
30
+ class completion_message;
32
31
 
33
32
  template <typename R>
34
- class channel_message<R()>
33
+ class completion_message<R()>
35
34
  {
36
35
  public:
37
- channel_message(int)
36
+ completion_message(int)
38
37
  {
39
38
  }
40
39
 
@@ -46,11 +45,11 @@ public:
46
45
  };
47
46
 
48
47
  template <typename R, typename Arg0>
49
- class channel_message<R(Arg0)>
48
+ class completion_message<R(Arg0)>
50
49
  {
51
50
  public:
52
51
  template <typename T0>
53
- channel_message(int, T0&& t0)
52
+ completion_message(int, T0&& t0)
54
53
  : arg0_(static_cast<T0&&>(t0))
55
54
  {
56
55
  }
@@ -68,11 +67,11 @@ private:
68
67
  };
69
68
 
70
69
  template <typename R, typename Arg0, typename Arg1>
71
- class channel_message<R(Arg0, Arg1)>
70
+ class completion_message<R(Arg0, Arg1)>
72
71
  {
73
72
  public:
74
73
  template <typename T0, typename T1>
75
- channel_message(int, T0&& t0, T1&& t1)
74
+ completion_message(int, T0&& t0, T1&& t1)
76
75
  : arg0_(static_cast<T0&&>(t0)),
77
76
  arg1_(static_cast<T1&&>(t1))
78
77
  {
@@ -94,11 +93,11 @@ private:
94
93
  };
95
94
 
96
95
  template <typename R, typename... Args>
97
- class channel_message<R(Args...)>
96
+ class completion_message<R(Args...)>
98
97
  {
99
98
  public:
100
99
  template <typename... T>
101
- channel_message(int, T&&... t)
100
+ completion_message(int, T&&... t)
102
101
  : args_(static_cast<T&&>(t)...)
103
102
  {
104
103
  }
@@ -122,10 +121,9 @@ private:
122
121
  };
123
122
 
124
123
  } // namespace detail
125
- } // namespace experimental
126
124
  } // namespace asio
127
125
  } // namespace boost
128
126
 
129
127
  #include <boost/asio/detail/pop_options.hpp>
130
128
 
131
- #endif // BOOST_ASIO_EXPERIMENTAL_DETAIL_CHANNEL_MESSAGE_HPP
129
+ #endif // BOOST_ASIO_DETAIL_COMPLETION_MESSAGE_HPP
@@ -1,6 +1,6 @@
1
1
  //
2
- // experimental/detail/channel_payload.hpp
3
- // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2
+ // detail/completion_payload.hpp
3
+ // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4
4
  //
5
5
  // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6
6
  //
@@ -8,8 +8,8 @@
8
8
  // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9
9
  //
10
10
 
11
- #ifndef BOOST_ASIO_EXPERIMENTAL_DETAIL_CHANNEL_PAYLOAD_HPP
12
- #define BOOST_ASIO_EXPERIMENTAL_DETAIL_CHANNEL_PAYLOAD_HPP
11
+ #ifndef BOOST_ASIO_DETAIL_COMPLETION_PAYLOAD_HPP
12
+ #define BOOST_ASIO_DETAIL_COMPLETION_PAYLOAD_HPP
13
13
 
14
14
  #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15
15
  # pragma once
@@ -18,7 +18,7 @@
18
18
  #include <boost/asio/detail/config.hpp>
19
19
  #include <boost/asio/detail/type_traits.hpp>
20
20
  #include <boost/system/error_code.hpp>
21
- #include <boost/asio/experimental/detail/channel_message.hpp>
21
+ #include <boost/asio/detail/completion_message.hpp>
22
22
 
23
23
  #if defined(BOOST_ASIO_HAS_STD_VARIANT)
24
24
  # include <variant>
@@ -30,17 +30,16 @@
30
30
 
31
31
  namespace boost {
32
32
  namespace asio {
33
- namespace experimental {
34
33
  namespace detail {
35
34
 
36
35
  template <typename... Signatures>
37
- class channel_payload;
36
+ class completion_payload;
38
37
 
39
38
  template <typename R>
40
- class channel_payload<R()>
39
+ class completion_payload<R()>
41
40
  {
42
41
  public:
43
- explicit channel_payload(channel_message<R()>)
42
+ explicit completion_payload(completion_message<R()>)
44
43
  {
45
44
  }
46
45
 
@@ -52,11 +51,11 @@ public:
52
51
  };
53
52
 
54
53
  template <typename Signature>
55
- class channel_payload<Signature>
54
+ class completion_payload<Signature>
56
55
  {
57
56
  public:
58
- channel_payload(channel_message<Signature>&& m)
59
- : message_(static_cast<channel_message<Signature>&&>(m))
57
+ completion_payload(completion_message<Signature>&& m)
58
+ : message_(static_cast<completion_message<Signature>&&>(m))
60
59
  {
61
60
  }
62
61
 
@@ -67,18 +66,18 @@ public:
67
66
  }
68
67
 
69
68
  private:
70
- channel_message<Signature> message_;
69
+ completion_message<Signature> message_;
71
70
  };
72
71
 
73
72
  #if defined(BOOST_ASIO_HAS_STD_VARIANT)
74
73
 
75
74
  template <typename... Signatures>
76
- class channel_payload
75
+ class completion_payload
77
76
  {
78
77
  public:
79
78
  template <typename Signature>
80
- channel_payload(channel_message<Signature>&& m)
81
- : message_(static_cast<channel_message<Signature>&&>(m))
79
+ completion_payload(completion_message<Signature>&& m)
80
+ : message_(static_cast<completion_message<Signature>&&>(m))
82
81
  {
83
82
  }
84
83
 
@@ -93,25 +92,25 @@ public:
93
92
  }
94
93
 
95
94
  private:
96
- std::variant<channel_message<Signatures>...> message_;
95
+ std::variant<completion_message<Signatures>...> message_;
97
96
  };
98
97
 
99
98
  #else // defined(BOOST_ASIO_HAS_STD_VARIANT)
100
99
 
101
100
  template <typename R1, typename R2>
102
- class channel_payload<R1(), R2(boost::system::error_code)>
101
+ class completion_payload<R1(), R2(boost::system::error_code)>
103
102
  {
104
103
  public:
105
- typedef channel_message<R1()> void_message_type;
106
- typedef channel_message<R2(boost::system::error_code)> error_message_type;
104
+ typedef completion_message<R1()> void_message_type;
105
+ typedef completion_message<R2(boost::system::error_code)> error_message_type;
107
106
 
108
- channel_payload(void_message_type&&)
107
+ completion_payload(void_message_type&&)
109
108
  : message_(0, boost::system::error_code()),
110
109
  empty_(true)
111
110
  {
112
111
  }
113
112
 
114
- channel_payload(error_message_type&& m)
113
+ completion_payload(error_message_type&& m)
115
114
  : message_(static_cast<error_message_type&&>(m)),
116
115
  empty_(false)
117
116
  {
@@ -121,7 +120,7 @@ public:
121
120
  void receive(Handler& handler)
122
121
  {
123
122
  if (empty_)
124
- channel_message<R1()>(0).receive(handler);
123
+ completion_message<R1()>(0).receive(handler);
125
124
  else
126
125
  message_.receive(handler);
127
126
  }
@@ -132,25 +131,25 @@ private:
132
131
  };
133
132
 
134
133
  template <typename Sig1, typename Sig2>
135
- class channel_payload<Sig1, Sig2>
134
+ class completion_payload<Sig1, Sig2>
136
135
  {
137
136
  public:
138
- typedef channel_message<Sig1> message_1_type;
139
- typedef channel_message<Sig2> message_2_type;
137
+ typedef completion_message<Sig1> message_1_type;
138
+ typedef completion_message<Sig2> message_2_type;
140
139
 
141
- channel_payload(message_1_type&& m)
140
+ completion_payload(message_1_type&& m)
142
141
  : index_(1)
143
142
  {
144
143
  new (&storage_.message_1_) message_1_type(static_cast<message_1_type&&>(m));
145
144
  }
146
145
 
147
- channel_payload(message_2_type&& m)
146
+ completion_payload(message_2_type&& m)
148
147
  : index_(2)
149
148
  {
150
149
  new (&storage_.message_2_) message_2_type(static_cast<message_2_type&&>(m));
151
150
  }
152
151
 
153
- channel_payload(channel_payload&& other)
152
+ completion_payload(completion_payload&& other)
154
153
  : index_(other.index_)
155
154
  {
156
155
  switch (index_)
@@ -168,7 +167,7 @@ public:
168
167
  }
169
168
  }
170
169
 
171
- ~channel_payload()
170
+ ~completion_payload()
172
171
  {
173
172
  switch (index_)
174
173
  {
@@ -215,10 +214,9 @@ private:
215
214
  #endif // defined(BOOST_ASIO_HAS_STD_VARIANT)
216
215
 
217
216
  } // namespace detail
218
- } // namespace experimental
219
217
  } // namespace asio
220
218
  } // namespace boost
221
219
 
222
220
  #include <boost/asio/detail/pop_options.hpp>
223
221
 
224
- #endif // BOOST_ASIO_EXPERIMENTAL_DETAIL_CHANNEL_PAYLOAD_HPP
222
+ #endif // BOOST_ASIO_DETAIL_COMPLETION_PAYLOAD_HPP
@@ -1,6 +1,6 @@
1
1
  //
2
- // experimental/detail/channel_handler.hpp
3
- // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2
+ // detail/completion_payload_handler.hpp
3
+ // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4
4
  //
5
5
  // Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6
6
  //
@@ -8,8 +8,8 @@
8
8
  // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9
9
  //
10
10
 
11
- #ifndef BOOST_ASIO_EXPERIMENTAL_DETAIL_CHANNEL_HANDLER_HPP
12
- #define BOOST_ASIO_EXPERIMENTAL_DETAIL_CHANNEL_HANDLER_HPP
11
+ #ifndef BOOST_ASIO_DETAIL_COMPLETION_PAYLOAD_HANDLER_HPP
12
+ #define BOOST_ASIO_DETAIL_COMPLETION_PAYLOAD_HANDLER_HPP
13
13
 
14
14
  #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15
15
  # pragma once
@@ -17,20 +17,18 @@
17
17
 
18
18
  #include <boost/asio/detail/config.hpp>
19
19
  #include <boost/asio/associator.hpp>
20
- #include <boost/asio/experimental/detail/channel_payload.hpp>
21
20
 
22
21
  #include <boost/asio/detail/push_options.hpp>
23
22
 
24
23
  namespace boost {
25
24
  namespace asio {
26
- namespace experimental {
27
25
  namespace detail {
28
26
 
29
27
  template <typename Payload, typename Handler>
30
- class channel_handler
28
+ class completion_payload_handler
31
29
  {
32
30
  public:
33
- channel_handler(Payload&& p, Handler& h)
31
+ completion_payload_handler(Payload&& p, Handler& h)
34
32
  : payload_(static_cast<Payload&&>(p)),
35
33
  handler_(static_cast<Handler&&>(h))
36
34
  {
@@ -41,29 +39,33 @@ public:
41
39
  payload_.receive(handler_);
42
40
  }
43
41
 
42
+ Handler& handler()
43
+ {
44
+ return handler_;
45
+ }
46
+
44
47
  //private:
45
48
  Payload payload_;
46
49
  Handler handler_;
47
50
  };
48
51
 
49
52
  } // namespace detail
50
- } // namespace experimental
51
53
 
52
54
  template <template <typename, typename> class Associator,
53
55
  typename Payload, typename Handler, typename DefaultCandidate>
54
56
  struct associator<Associator,
55
- experimental::detail::channel_handler<Payload, Handler>,
57
+ detail::completion_payload_handler<Payload, Handler>,
56
58
  DefaultCandidate>
57
59
  : Associator<Handler, DefaultCandidate>
58
60
  {
59
61
  static typename Associator<Handler, DefaultCandidate>::type get(
60
- const experimental::detail::channel_handler<Payload, Handler>& h) noexcept
62
+ const detail::completion_payload_handler<Payload, Handler>& h) noexcept
61
63
  {
62
64
  return Associator<Handler, DefaultCandidate>::get(h.handler_);
63
65
  }
64
66
 
65
67
  static auto get(
66
- const experimental::detail::channel_handler<Payload, Handler>& h,
68
+ const detail::completion_payload_handler<Payload, Handler>& h,
67
69
  const DefaultCandidate& c) noexcept
68
70
  -> decltype(Associator<Handler, DefaultCandidate>::get(h.handler_, c))
69
71
  {
@@ -76,4 +78,4 @@ struct associator<Associator,
76
78
 
77
79
  #include <boost/asio/detail/pop_options.hpp>
78
80
 
79
- #endif // BOOST_ASIO_EXPERIMENTAL_DETAIL_CHANNEL_HANDLER_HPP
81
+ #endif // BOOST_ASIO_DETAIL_COMPLETION_PAYLOAD_HANDLER_HPP
@@ -127,29 +127,7 @@
127
127
  # define BOOST_ASIO_HAS_USER_DEFINED_LITERALS 1
128
128
  # define BOOST_ASIO_HAS_ALIGNOF 1
129
129
  # define BOOST_ASIO_ALIGNOF(T) alignof(T)
130
- // Standard library support for std::align.
131
- #if !defined(BOOST_ASIO_HAS_STD_ALIGN)
132
- # if !defined(BOOST_ASIO_DISABLE_STD_ALIGN)
133
- # if defined(__clang__)
134
- # if defined(BOOST_ASIO_HAS_CLANG_LIBCXX)
135
- # define BOOST_ASIO_HAS_STD_ALIGN 1
136
- # elif (__cplusplus >= 201103)
137
- # define BOOST_ASIO_HAS_STD_ALIGN 1
138
- # endif // (__cplusplus >= 201103)
139
- # elif defined(__GNUC__)
140
- # if (__GNUC__ >= 6)
141
- # if (__cplusplus >= 201103) || defined(__GXX_EXPERIMENTAL_CXX0X__)
142
- # define BOOST_ASIO_HAS_STD_ALIGN 1
143
- # endif // (__cplusplus >= 201103) || defined(__GXX_EXPERIMENTAL_CXX0X__)
144
- # endif // (__GNUC__ >= 6)
145
- # endif // defined(__GNUC__)
146
- # if defined(BOOST_ASIO_MSVC)
147
- # if (_MSC_VER >= 1700)
148
- # define BOOST_ASIO_HAS_STD_ALIGN 1
149
- # endif // (_MSC_VER >= 1700)
150
- # endif // defined(BOOST_ASIO_MSVC)
151
- # endif // !defined(BOOST_ASIO_DISABLE_STD_ALIGN)
152
- #endif // !defined(BOOST_ASIO_HAS_STD_ALIGN)
130
+ # define BOOST_ASIO_HAS_STD_ALIGN 1
153
131
  # define BOOST_ASIO_HAS_STD_SYSTEM_ERROR 1
154
132
  # define BOOST_ASIO_ERROR_CATEGORY_NOEXCEPT noexcept(true)
155
133
  # define BOOST_ASIO_HAS_STD_ARRAY 1
@@ -363,6 +341,19 @@
363
341
  # endif // !defined(BOOST_ASIO_DISABLE_VARIADIC_LAMBDA_CAPTURES)
364
342
  #endif // !defined(BOOST_ASIO_HAS_VARIADIC_LAMBDA_CAPTURES)
365
343
 
344
+ // Support for inline variables.
345
+ #if !defined(BOOST_ASIO_HAS_INLINE_VARIABLES)
346
+ # if !defined(BOOST_ASIO_DISABLE_INLINE_VARIABLES)
347
+ # if (__cplusplus >= 201703) && (__cpp_inline_variables >= 201606)
348
+ # define BOOST_ASIO_HAS_INLINE_VARIABLES 1
349
+ # define BOOST_ASIO_INLINE_VARIABLE inline
350
+ # endif // (__cplusplus >= 201703) && (__cpp_inline_variables >= 201606)
351
+ # endif // !defined(BOOST_ASIO_DISABLE_INLINE_VARIABLES)
352
+ #endif // !defined(BOOST_ASIO_HAS_INLINE_VARIABLES)
353
+ #if !defined(BOOST_ASIO_INLINE_VARIABLE)
354
+ # define BOOST_ASIO_INLINE_VARIABLE
355
+ #endif // !defined(BOOST_ASIO_INLINE_VARIABLE)
356
+
366
357
  // Default alignment.
367
358
  #if defined(__STDCPP_DEFAULT_NEW_ALIGNMENT__)
368
359
  # define BOOST_ASIO_DEFAULT_ALIGN __STDCPP_DEFAULT_NEW_ALIGNMENT__
@@ -384,7 +375,9 @@
384
375
  # if defined(BOOST_ASIO_HAS_CLANG_LIBCXX)
385
376
  # if (_LIBCPP_STD_VER > 14) && defined(_LIBCPP_HAS_ALIGNED_ALLOC) \
386
377
  && !defined(_LIBCPP_MSVCRT) && !defined(__MINGW32__)
387
- # if defined(__APPLE__)
378
+ # if defined(__ANDROID__) && (__ANDROID_API__ >= 28)
379
+ # define BOOST_ASIO_HAS_STD_ALIGNED_ALLOC 1
380
+ # elif defined(__APPLE__)
388
381
  # if defined(__MAC_OS_X_VERSION_MIN_REQUIRED)
389
382
  # if (__MAC_OS_X_VERSION_MIN_REQUIRED >= 101500)
390
383
  # define BOOST_ASIO_HAS_STD_ALIGNED_ALLOC 1
@@ -554,9 +547,9 @@
554
547
  # define BOOST_ASIO_HAS_STD_INVOKE_RESULT 1
555
548
  # endif // (_MSC_VER >= 1911 && _MSVC_LANG >= 201703)
556
549
  # else // defined(BOOST_ASIO_MSVC)
557
- # if (__cplusplus >= 201703)
550
+ # if (__cplusplus >= 201703) && (__cpp_lib_is_invocable >= 201703)
558
551
  # define BOOST_ASIO_HAS_STD_INVOKE_RESULT 1
559
- # endif // (__cplusplus >= 201703)
552
+ # endif // (__cplusplus >= 201703) && (__cpp_lib_is_invocable >= 201703)
560
553
  # endif // defined(BOOST_ASIO_MSVC)
561
554
  # endif // !defined(BOOST_ASIO_DISABLE_STD_INVOKE_RESULT)
562
555
  #endif // !defined(BOOST_ASIO_HAS_STD_INVOKE_RESULT)
@@ -1297,7 +1290,10 @@
1297
1290
  // Support the co_await keyword on compilers known to allow it.
1298
1291
  #if !defined(BOOST_ASIO_HAS_CO_AWAIT)
1299
1292
  # if !defined(BOOST_ASIO_DISABLE_CO_AWAIT)
1300
- # if defined(BOOST_ASIO_MSVC)
1293
+ # if (__cplusplus >= 202002) \
1294
+ && (__cpp_impl_coroutine >= 201902) && (__cpp_lib_coroutine >= 201902)
1295
+ # define BOOST_ASIO_HAS_CO_AWAIT 1
1296
+ # elif defined(BOOST_ASIO_MSVC)
1301
1297
  # if (_MSC_VER >= 1928) && (_MSVC_LANG >= 201705) && !defined(__clang__)
1302
1298
  # define BOOST_ASIO_HAS_CO_AWAIT 1
1303
1299
  # elif (_MSC_FULL_VER >= 190023506)
@@ -1408,11 +1404,9 @@
1408
1404
  // Standard library support for snprintf.
1409
1405
  #if !defined(BOOST_ASIO_HAS_SNPRINTF)
1410
1406
  # if !defined(BOOST_ASIO_DISABLE_SNPRINTF)
1411
- # if defined(__apple_build_version__)
1412
- # if (__clang_major__ >= 14)
1413
- # define BOOST_ASIO_HAS_SNPRINTF 1
1414
- # endif // (__clang_major__ >= 14)
1415
- # endif // defined(__apple_build_version__)
1407
+ # if defined(__APPLE__)
1408
+ # define BOOST_ASIO_HAS_SNPRINTF 1
1409
+ # endif // defined(__APPLE__)
1416
1410
  # endif // !defined(BOOST_ASIO_DISABLE_SNPRINTF)
1417
1411
  #endif // !defined(BOOST_ASIO_HAS_SNPRINTF)
1418
1412
 
@@ -104,7 +104,11 @@ public:
104
104
  void move_construct(implementation_type& impl,
105
105
  implementation_type& other_impl)
106
106
  {
107
- scheduler_.move_timer(timer_queue_, impl.timer_data, other_impl.timer_data);
107
+ if (other_impl.might_have_pending_waits)
108
+ {
109
+ scheduler_.move_timer(timer_queue_,
110
+ impl.timer_data, other_impl.timer_data);
111
+ }
108
112
 
109
113
  impl.expiry = other_impl.expiry;
110
114
  other_impl.expiry = time_type();
@@ -17,121 +17,12 @@
17
17
 
18
18
  #include <boost/asio/detail/config.hpp>
19
19
  #include <boost/asio/detail/memory.hpp>
20
- #include <boost/asio/detail/noncopyable.hpp>
21
20
  #include <boost/asio/detail/recycling_allocator.hpp>
22
- #include <boost/asio/detail/thread_info_base.hpp>
23
21
  #include <boost/asio/associated_allocator.hpp>
24
22
 
25
23
  #include <boost/asio/detail/push_options.hpp>
26
24
 
27
- namespace boost {
28
- namespace asio {
29
- namespace detail {
30
-
31
- inline void* default_allocate(std::size_t s,
32
- std::size_t align = BOOST_ASIO_DEFAULT_ALIGN)
33
- {
34
- #if !defined(BOOST_ASIO_DISABLE_SMALL_BLOCK_RECYCLING)
35
- return boost::asio::detail::thread_info_base::allocate(
36
- boost::asio::detail::thread_context::top_of_thread_call_stack(),
37
- s, align);
38
- #else // !defined(BOOST_ASIO_DISABLE_SMALL_BLOCK_RECYCLING)
39
- return boost::asio::aligned_new(align, s);
40
- #endif // !defined(BOOST_ASIO_DISABLE_SMALL_BLOCK_RECYCLING)
41
- }
42
-
43
- inline void default_deallocate(void* p, std::size_t s)
44
- {
45
- #if !defined(BOOST_ASIO_DISABLE_SMALL_BLOCK_RECYCLING)
46
- boost::asio::detail::thread_info_base::deallocate(
47
- boost::asio::detail::thread_context::top_of_thread_call_stack(), p, s);
48
- #else // !defined(BOOST_ASIO_DISABLE_SMALL_BLOCK_RECYCLING)
49
- (void)s;
50
- boost::asio::aligned_delete(p);
51
- #endif // !defined(BOOST_ASIO_DISABLE_SMALL_BLOCK_RECYCLING)
52
- }
53
-
54
- template <typename T>
55
- class default_allocator
56
- {
57
- public:
58
- typedef T value_type;
59
-
60
- template <typename U>
61
- struct rebind
62
- {
63
- typedef default_allocator<U> other;
64
- };
65
-
66
- default_allocator() noexcept
67
- {
68
- }
69
-
70
- template <typename U>
71
- default_allocator(const default_allocator<U>&) noexcept
72
- {
73
- }
74
-
75
- T* allocate(std::size_t n)
76
- {
77
- return static_cast<T*>(default_allocate(sizeof(T) * n, alignof(T)));
78
- }
79
-
80
- void deallocate(T* p, std::size_t n)
81
- {
82
- default_deallocate(p, sizeof(T) * n);
83
- }
84
- };
85
-
86
- template <>
87
- class default_allocator<void>
88
- {
89
- public:
90
- typedef void value_type;
91
-
92
- template <typename U>
93
- struct rebind
94
- {
95
- typedef default_allocator<U> other;
96
- };
97
-
98
- default_allocator() noexcept
99
- {
100
- }
101
-
102
- template <typename U>
103
- default_allocator(const default_allocator<U>&) noexcept
104
- {
105
- }
106
- };
107
-
108
- template <typename Allocator>
109
- struct get_default_allocator
110
- {
111
- typedef Allocator type;
112
-
113
- static type get(const Allocator& a)
114
- {
115
- return a;
116
- }
117
- };
118
-
119
- template <typename T>
120
- struct get_default_allocator<std::allocator<T>>
121
- {
122
- typedef default_allocator<T> type;
123
-
124
- static type get(const std::allocator<T>&)
125
- {
126
- return type();
127
- }
128
- };
129
-
130
- } // namespace detail
131
- } // namespace asio
132
- } // namespace boost
133
-
134
- #define BOOST_ASIO_DEFINE_HANDLER_PTR(op) \
25
+ #define BOOST_ASIO_DEFINE_TAGGED_HANDLER_PTR(purpose, op) \
135
26
  struct ptr \
136
27
  { \
137
28
  Handler* h; \
@@ -145,11 +36,11 @@ struct get_default_allocator<std::allocator<T>>
145
36
  { \
146
37
  typedef typename ::boost::asio::associated_allocator< \
147
38
  Handler>::type associated_allocator_type; \
148
- typedef typename ::boost::asio::detail::get_default_allocator< \
149
- associated_allocator_type>::type default_allocator_type; \
39
+ typedef typename ::boost::asio::detail::get_recycling_allocator< \
40
+ associated_allocator_type, purpose>::type default_allocator_type; \
150
41
  BOOST_ASIO_REBIND_ALLOC(default_allocator_type, op) a( \
151
- ::boost::asio::detail::get_default_allocator< \
152
- associated_allocator_type>::get( \
42
+ ::boost::asio::detail::get_recycling_allocator< \
43
+ associated_allocator_type, purpose>::get( \
153
44
  ::boost::asio::get_associated_allocator(handler))); \
154
45
  return a.allocate(1); \
155
46
  } \
@@ -164,11 +55,11 @@ struct get_default_allocator<std::allocator<T>>
164
55
  { \
165
56
  typedef typename ::boost::asio::associated_allocator< \
166
57
  Handler>::type associated_allocator_type; \
167
- typedef typename ::boost::asio::detail::get_default_allocator< \
168
- associated_allocator_type>::type default_allocator_type; \
58
+ typedef typename ::boost::asio::detail::get_recycling_allocator< \
59
+ associated_allocator_type, purpose>::type default_allocator_type; \
169
60
  BOOST_ASIO_REBIND_ALLOC(default_allocator_type, op) a( \
170
- ::boost::asio::detail::get_default_allocator< \
171
- associated_allocator_type>::get( \
61
+ ::boost::asio::detail::get_recycling_allocator< \
62
+ associated_allocator_type, purpose>::get( \
172
63
  ::boost::asio::get_associated_allocator(*h))); \
173
64
  a.deallocate(static_cast<op*>(v), 1); \
174
65
  v = 0; \
@@ -177,6 +68,11 @@ struct get_default_allocator<std::allocator<T>>
177
68
  } \
178
69
  /**/
179
70
 
71
+ #define BOOST_ASIO_DEFINE_HANDLER_PTR(op) \
72
+ BOOST_ASIO_DEFINE_TAGGED_HANDLER_PTR( \
73
+ ::boost::asio::detail::thread_info_base::default_tag, op ) \
74
+ /**/
75
+
180
76
  #define BOOST_ASIO_DEFINE_TAGGED_HANDLER_ALLOCATOR_PTR(purpose, op) \
181
77
  struct ptr \
182
78
  { \