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
@@ -63,6 +63,9 @@ inline std::size_t write(SyncWriteStream& s, const ConstBufferSequence& buffers,
63
63
  CompletionCondition completion_condition, boost::system::error_code& ec,
64
64
  constraint_t<
65
65
  is_const_buffer_sequence<ConstBufferSequence>::value
66
+ >,
67
+ constraint_t<
68
+ is_completion_condition<CompletionCondition>::value
66
69
  >)
67
70
  {
68
71
  return detail::write(s, buffers,
@@ -98,6 +101,9 @@ inline std::size_t write(SyncWriteStream& s, const ConstBufferSequence& buffers,
98
101
  CompletionCondition completion_condition,
99
102
  constraint_t<
100
103
  is_const_buffer_sequence<ConstBufferSequence>::value
104
+ >,
105
+ constraint_t<
106
+ is_completion_condition<CompletionCondition>::value
101
107
  >)
102
108
  {
103
109
  boost::system::error_code ec;
@@ -119,6 +125,9 @@ std::size_t write(SyncWriteStream& s,
119
125
  >,
120
126
  constraint_t<
121
127
  !is_dynamic_buffer_v2<decay_t<DynamicBuffer_v1>>::value
128
+ >,
129
+ constraint_t<
130
+ is_completion_condition<CompletionCondition>::value
122
131
  >)
123
132
  {
124
133
  decay_t<DynamicBuffer_v1> b(
@@ -173,6 +182,9 @@ inline std::size_t write(SyncWriteStream& s,
173
182
  >,
174
183
  constraint_t<
175
184
  !is_dynamic_buffer_v2<decay_t<DynamicBuffer_v1>>::value
185
+ >,
186
+ constraint_t<
187
+ is_completion_condition<CompletionCondition>::value
176
188
  >)
177
189
  {
178
190
  boost::system::error_code ec;
@@ -190,7 +202,10 @@ template <typename SyncWriteStream, typename Allocator,
190
202
  typename CompletionCondition>
191
203
  inline std::size_t write(SyncWriteStream& s,
192
204
  boost::asio::basic_streambuf<Allocator>& b,
193
- CompletionCondition completion_condition, boost::system::error_code& ec)
205
+ CompletionCondition completion_condition, boost::system::error_code& ec,
206
+ constraint_t<
207
+ is_completion_condition<CompletionCondition>::value
208
+ >)
194
209
  {
195
210
  return write(s, basic_streambuf_ref<Allocator>(b),
196
211
  static_cast<CompletionCondition&&>(completion_condition), ec);
@@ -215,7 +230,10 @@ template <typename SyncWriteStream, typename Allocator,
215
230
  typename CompletionCondition>
216
231
  inline std::size_t write(SyncWriteStream& s,
217
232
  boost::asio::basic_streambuf<Allocator>& b,
218
- CompletionCondition completion_condition)
233
+ CompletionCondition completion_condition,
234
+ constraint_t<
235
+ is_completion_condition<CompletionCondition>::value
236
+ >)
219
237
  {
220
238
  return write(s, basic_streambuf_ref<Allocator>(b),
221
239
  static_cast<CompletionCondition&&>(completion_condition));
@@ -231,6 +249,9 @@ std::size_t write(SyncWriteStream& s, DynamicBuffer_v2 buffers,
231
249
  CompletionCondition completion_condition, boost::system::error_code& ec,
232
250
  constraint_t<
233
251
  is_dynamic_buffer_v2<DynamicBuffer_v2>::value
252
+ >,
253
+ constraint_t<
254
+ is_completion_condition<CompletionCondition>::value
234
255
  >)
235
256
  {
236
257
  std::size_t bytes_transferred = write(s, buffers.data(0, buffers.size()),
@@ -270,6 +291,9 @@ inline std::size_t write(SyncWriteStream& s, DynamicBuffer_v2 buffers,
270
291
  CompletionCondition completion_condition,
271
292
  constraint_t<
272
293
  is_dynamic_buffer_v2<DynamicBuffer_v2>::value
294
+ >,
295
+ constraint_t<
296
+ is_completion_condition<CompletionCondition>::value
273
297
  >)
274
298
  {
275
299
  boost::system::error_code ec;
@@ -463,49 +487,6 @@ struct associator<Associator,
463
487
 
464
488
  #endif // !defined(GENERATING_DOCUMENTATION)
465
489
 
466
- template <typename AsyncWriteStream,
467
- typename ConstBufferSequence, typename CompletionCondition,
468
- BOOST_ASIO_COMPLETION_TOKEN_FOR(void (boost::system::error_code,
469
- std::size_t)) WriteToken>
470
- inline auto async_write(AsyncWriteStream& s, const ConstBufferSequence& buffers,
471
- CompletionCondition completion_condition, WriteToken&& token,
472
- constraint_t<
473
- is_const_buffer_sequence<ConstBufferSequence>::value
474
- >)
475
- -> decltype(
476
- async_initiate<WriteToken,
477
- void (boost::system::error_code, std::size_t)>(
478
- declval<detail::initiate_async_write<AsyncWriteStream>>(),
479
- token, buffers,
480
- static_cast<CompletionCondition&&>(completion_condition)))
481
- {
482
- return async_initiate<WriteToken,
483
- void (boost::system::error_code, std::size_t)>(
484
- detail::initiate_async_write<AsyncWriteStream>(s),
485
- token, buffers,
486
- static_cast<CompletionCondition&&>(completion_condition));
487
- }
488
-
489
- template <typename AsyncWriteStream, typename ConstBufferSequence,
490
- BOOST_ASIO_COMPLETION_TOKEN_FOR(void (boost::system::error_code,
491
- std::size_t)) WriteToken>
492
- inline auto async_write(AsyncWriteStream& s,
493
- const ConstBufferSequence& buffers, WriteToken&& token,
494
- constraint_t<
495
- is_const_buffer_sequence<ConstBufferSequence>::value
496
- >)
497
- -> decltype(
498
- async_initiate<WriteToken,
499
- void (boost::system::error_code, std::size_t)>(
500
- declval<detail::initiate_async_write<AsyncWriteStream>>(),
501
- token, buffers, transfer_all()))
502
- {
503
- return async_initiate<WriteToken,
504
- void (boost::system::error_code, std::size_t)>(
505
- detail::initiate_async_write<AsyncWriteStream>(s),
506
- token, buffers, transfer_all());
507
- }
508
-
509
490
  #if !defined(BOOST_ASIO_NO_DYNAMIC_BUFFER_V1)
510
491
 
511
492
  namespace detail
@@ -650,101 +631,6 @@ struct associator<Associator,
650
631
 
651
632
  #endif // !defined(GENERATING_DOCUMENTATION)
652
633
 
653
- template <typename AsyncWriteStream, typename DynamicBuffer_v1,
654
- BOOST_ASIO_COMPLETION_TOKEN_FOR(void (boost::system::error_code,
655
- std::size_t)) WriteToken>
656
- inline auto async_write(AsyncWriteStream& s,
657
- DynamicBuffer_v1&& buffers, WriteToken&& token,
658
- constraint_t<
659
- is_dynamic_buffer_v1<decay_t<DynamicBuffer_v1>>::value
660
- >,
661
- constraint_t<
662
- !is_dynamic_buffer_v2<decay_t<DynamicBuffer_v1>>::value
663
- >)
664
- -> decltype(
665
- async_initiate<WriteToken,
666
- void (boost::system::error_code, std::size_t)>(
667
- declval<detail::initiate_async_write_dynbuf_v1<AsyncWriteStream>>(),
668
- token, static_cast<DynamicBuffer_v1&&>(buffers),
669
- transfer_all()))
670
- {
671
- return async_initiate<WriteToken,
672
- void (boost::system::error_code, std::size_t)>(
673
- detail::initiate_async_write_dynbuf_v1<AsyncWriteStream>(s),
674
- token, static_cast<DynamicBuffer_v1&&>(buffers),
675
- transfer_all());
676
- }
677
-
678
- template <typename AsyncWriteStream,
679
- typename DynamicBuffer_v1, typename CompletionCondition,
680
- BOOST_ASIO_COMPLETION_TOKEN_FOR(void (boost::system::error_code,
681
- std::size_t)) WriteToken>
682
- inline auto async_write(AsyncWriteStream& s, DynamicBuffer_v1&& buffers,
683
- CompletionCondition completion_condition, WriteToken&& token,
684
- constraint_t<
685
- is_dynamic_buffer_v1<decay_t<DynamicBuffer_v1>>::value
686
- >,
687
- constraint_t<
688
- !is_dynamic_buffer_v2<decay_t<DynamicBuffer_v1>>::value
689
- >)
690
- -> decltype(
691
- async_initiate<WriteToken,
692
- void (boost::system::error_code, std::size_t)>(
693
- declval<detail::initiate_async_write_dynbuf_v1<AsyncWriteStream>>(),
694
- token, static_cast<DynamicBuffer_v1&&>(buffers),
695
- static_cast<CompletionCondition&&>(completion_condition)))
696
- {
697
- return async_initiate<WriteToken,
698
- void (boost::system::error_code, std::size_t)>(
699
- detail::initiate_async_write_dynbuf_v1<AsyncWriteStream>(s),
700
- token, static_cast<DynamicBuffer_v1&&>(buffers),
701
- static_cast<CompletionCondition&&>(completion_condition));
702
- }
703
-
704
- #if !defined(BOOST_ASIO_NO_EXTENSIONS)
705
- #if !defined(BOOST_ASIO_NO_IOSTREAM)
706
-
707
- template <typename AsyncWriteStream, typename Allocator,
708
- BOOST_ASIO_COMPLETION_TOKEN_FOR(void (boost::system::error_code,
709
- std::size_t)) WriteToken>
710
- inline auto async_write(AsyncWriteStream& s,
711
- boost::asio::basic_streambuf<Allocator>& b,
712
- WriteToken&& token)
713
- -> decltype(
714
- async_initiate<WriteToken,
715
- void (boost::system::error_code, std::size_t)>(
716
- declval<detail::initiate_async_write_dynbuf_v1<AsyncWriteStream>>(),
717
- token, basic_streambuf_ref<Allocator>(b), transfer_all()))
718
- {
719
- return async_initiate<WriteToken,
720
- void (boost::system::error_code, std::size_t)>(
721
- detail::initiate_async_write_dynbuf_v1<AsyncWriteStream>(s),
722
- token, basic_streambuf_ref<Allocator>(b), transfer_all());
723
- }
724
-
725
- template <typename AsyncWriteStream,
726
- typename Allocator, typename CompletionCondition,
727
- BOOST_ASIO_COMPLETION_TOKEN_FOR(void (boost::system::error_code,
728
- std::size_t)) WriteToken>
729
- inline auto async_write(AsyncWriteStream& s,
730
- boost::asio::basic_streambuf<Allocator>& b,
731
- CompletionCondition completion_condition, WriteToken&& token)
732
- -> decltype(
733
- async_initiate<WriteToken,
734
- void (boost::system::error_code, std::size_t)>(
735
- declval<detail::initiate_async_write_dynbuf_v1<AsyncWriteStream>>(),
736
- token, basic_streambuf_ref<Allocator>(b),
737
- static_cast<CompletionCondition&&>(completion_condition)))
738
- {
739
- return async_initiate<WriteToken,
740
- void (boost::system::error_code, std::size_t)>(
741
- detail::initiate_async_write_dynbuf_v1<AsyncWriteStream>(s),
742
- token, basic_streambuf_ref<Allocator>(b),
743
- static_cast<CompletionCondition&&>(completion_condition));
744
- }
745
-
746
- #endif // !defined(BOOST_ASIO_NO_IOSTREAM)
747
- #endif // !defined(BOOST_ASIO_NO_EXTENSIONS)
748
634
  #endif // !defined(BOOST_ASIO_NO_DYNAMIC_BUFFER_V1)
749
635
 
750
636
  namespace detail
@@ -888,51 +774,6 @@ struct associator<Associator,
888
774
 
889
775
  #endif // !defined(GENERATING_DOCUMENTATION)
890
776
 
891
- template <typename AsyncWriteStream, typename DynamicBuffer_v2,
892
- BOOST_ASIO_COMPLETION_TOKEN_FOR(void (boost::system::error_code,
893
- std::size_t)) WriteToken>
894
- inline auto async_write(AsyncWriteStream& s,
895
- DynamicBuffer_v2 buffers, WriteToken&& token,
896
- constraint_t<
897
- is_dynamic_buffer_v2<DynamicBuffer_v2>::value
898
- >)
899
- -> decltype(
900
- async_initiate<WriteToken,
901
- void (boost::system::error_code, std::size_t)>(
902
- declval<detail::initiate_async_write_dynbuf_v2<AsyncWriteStream>>(),
903
- token, static_cast<DynamicBuffer_v2&&>(buffers),
904
- transfer_all()))
905
- {
906
- return async_initiate<WriteToken,
907
- void (boost::system::error_code, std::size_t)>(
908
- detail::initiate_async_write_dynbuf_v2<AsyncWriteStream>(s),
909
- token, static_cast<DynamicBuffer_v2&&>(buffers),
910
- transfer_all());
911
- }
912
-
913
- template <typename AsyncWriteStream,
914
- typename DynamicBuffer_v2, typename CompletionCondition,
915
- BOOST_ASIO_COMPLETION_TOKEN_FOR(void (boost::system::error_code,
916
- std::size_t)) WriteToken>
917
- inline auto async_write(AsyncWriteStream& s, DynamicBuffer_v2 buffers,
918
- CompletionCondition completion_condition, WriteToken&& token,
919
- constraint_t<
920
- is_dynamic_buffer_v2<DynamicBuffer_v2>::value
921
- >)
922
- -> decltype(
923
- async_initiate<WriteToken,
924
- void (boost::system::error_code, std::size_t)>(
925
- declval<detail::initiate_async_write_dynbuf_v2<AsyncWriteStream>>(),
926
- token, static_cast<DynamicBuffer_v2&&>(buffers),
927
- static_cast<CompletionCondition&&>(completion_condition)))
928
- {
929
- return async_initiate<WriteToken,
930
- void (boost::system::error_code, std::size_t)>(
931
- detail::initiate_async_write_dynbuf_v2<AsyncWriteStream>(s),
932
- token, static_cast<DynamicBuffer_v2&&>(buffers),
933
- static_cast<CompletionCondition&&>(completion_condition));
934
- }
935
-
936
777
  } // namespace asio
937
778
  } // namespace boost
938
779
 
@@ -65,7 +65,10 @@ template <typename SyncRandomAccessWriteDevice, typename ConstBufferSequence,
65
65
  typename CompletionCondition>
66
66
  std::size_t write_at(SyncRandomAccessWriteDevice& d,
67
67
  uint64_t offset, const ConstBufferSequence& buffers,
68
- CompletionCondition completion_condition, boost::system::error_code& ec)
68
+ CompletionCondition completion_condition, boost::system::error_code& ec,
69
+ constraint_t<
70
+ is_completion_condition<CompletionCondition>::value
71
+ >)
69
72
  {
70
73
  return detail::write_at_buffer_sequence(d, offset, buffers,
71
74
  boost::asio::buffer_sequence_begin(buffers),
@@ -95,7 +98,10 @@ template <typename SyncRandomAccessWriteDevice, typename ConstBufferSequence,
95
98
  typename CompletionCondition>
96
99
  inline std::size_t write_at(SyncRandomAccessWriteDevice& d,
97
100
  uint64_t offset, const ConstBufferSequence& buffers,
98
- CompletionCondition completion_condition)
101
+ CompletionCondition completion_condition,
102
+ constraint_t<
103
+ is_completion_condition<CompletionCondition>::value
104
+ >)
99
105
  {
100
106
  boost::system::error_code ec;
101
107
  std::size_t bytes_transferred = write_at(d, offset, buffers,
@@ -111,7 +117,10 @@ template <typename SyncRandomAccessWriteDevice, typename Allocator,
111
117
  typename CompletionCondition>
112
118
  std::size_t write_at(SyncRandomAccessWriteDevice& d,
113
119
  uint64_t offset, boost::asio::basic_streambuf<Allocator>& b,
114
- CompletionCondition completion_condition, boost::system::error_code& ec)
120
+ CompletionCondition completion_condition, boost::system::error_code& ec,
121
+ constraint_t<
122
+ is_completion_condition<CompletionCondition>::value
123
+ >)
115
124
  {
116
125
  std::size_t bytes_transferred = write_at(d, offset, b.data(),
117
126
  static_cast<CompletionCondition&&>(completion_condition), ec);
@@ -141,7 +150,10 @@ template <typename SyncRandomAccessWriteDevice, typename Allocator,
141
150
  typename CompletionCondition>
142
151
  inline std::size_t write_at(SyncRandomAccessWriteDevice& d,
143
152
  uint64_t offset, boost::asio::basic_streambuf<Allocator>& b,
144
- CompletionCondition completion_condition)
153
+ CompletionCondition completion_condition,
154
+ constraint_t<
155
+ is_completion_condition<CompletionCondition>::value
156
+ >)
145
157
  {
146
158
  boost::system::error_code ec;
147
159
  std::size_t bytes_transferred = write_at(d, offset, b,
@@ -345,46 +357,6 @@ struct associator<Associator,
345
357
 
346
358
  #endif // !defined(GENERATING_DOCUMENTATION)
347
359
 
348
- template <typename AsyncRandomAccessWriteDevice,
349
- typename ConstBufferSequence, typename CompletionCondition,
350
- BOOST_ASIO_COMPLETION_TOKEN_FOR(void (boost::system::error_code,
351
- std::size_t)) WriteToken>
352
- inline auto async_write_at(AsyncRandomAccessWriteDevice& d,
353
- uint64_t offset, const ConstBufferSequence& buffers,
354
- CompletionCondition completion_condition, WriteToken&& token)
355
- -> decltype(
356
- async_initiate<WriteToken,
357
- void (boost::system::error_code, std::size_t)>(
358
- declval<detail::initiate_async_write_at<
359
- AsyncRandomAccessWriteDevice>>(),
360
- token, offset, buffers,
361
- static_cast<CompletionCondition&&>(completion_condition)))
362
- {
363
- return async_initiate<WriteToken,
364
- void (boost::system::error_code, std::size_t)>(
365
- detail::initiate_async_write_at<AsyncRandomAccessWriteDevice>(d),
366
- token, offset, buffers,
367
- static_cast<CompletionCondition&&>(completion_condition));
368
- }
369
-
370
- template <typename AsyncRandomAccessWriteDevice, typename ConstBufferSequence,
371
- BOOST_ASIO_COMPLETION_TOKEN_FOR(void (boost::system::error_code,
372
- std::size_t)) WriteToken>
373
- inline auto async_write_at(AsyncRandomAccessWriteDevice& d,
374
- uint64_t offset, const ConstBufferSequence& buffers, WriteToken&& token)
375
- -> decltype(
376
- async_initiate<WriteToken,
377
- void (boost::system::error_code, std::size_t)>(
378
- declval<detail::initiate_async_write_at<
379
- AsyncRandomAccessWriteDevice>>(),
380
- token, offset, buffers, transfer_all()))
381
- {
382
- return async_initiate<WriteToken,
383
- void (boost::system::error_code, std::size_t)>(
384
- detail::initiate_async_write_at<AsyncRandomAccessWriteDevice>(d),
385
- token, offset, buffers, transfer_all());
386
- }
387
-
388
360
  #if !defined(BOOST_ASIO_NO_EXTENSIONS)
389
361
  #if !defined(BOOST_ASIO_NO_IOSTREAM)
390
362
 
@@ -499,49 +471,6 @@ struct associator<Associator,
499
471
 
500
472
  #endif // !defined(GENERATING_DOCUMENTATION)
501
473
 
502
- template <typename AsyncRandomAccessWriteDevice,
503
- typename Allocator, typename CompletionCondition,
504
- BOOST_ASIO_COMPLETION_TOKEN_FOR(void (boost::system::error_code,
505
- std::size_t)) WriteToken>
506
- inline auto async_write_at(AsyncRandomAccessWriteDevice& d,
507
- uint64_t offset, boost::asio::basic_streambuf<Allocator>& b,
508
- CompletionCondition completion_condition, WriteToken&& token)
509
- -> decltype(
510
- async_initiate<WriteToken,
511
- void (boost::system::error_code, std::size_t)>(
512
- declval<detail::initiate_async_write_at_streambuf<
513
- AsyncRandomAccessWriteDevice>>(),
514
- token, offset, &b,
515
- static_cast<CompletionCondition&&>(completion_condition)))
516
- {
517
- return async_initiate<WriteToken,
518
- void (boost::system::error_code, std::size_t)>(
519
- detail::initiate_async_write_at_streambuf<
520
- AsyncRandomAccessWriteDevice>(d),
521
- token, offset, &b,
522
- static_cast<CompletionCondition&&>(completion_condition));
523
- }
524
-
525
- template <typename AsyncRandomAccessWriteDevice, typename Allocator,
526
- BOOST_ASIO_COMPLETION_TOKEN_FOR(void (boost::system::error_code,
527
- std::size_t)) WriteToken>
528
- inline auto async_write_at(AsyncRandomAccessWriteDevice& d,
529
- uint64_t offset, boost::asio::basic_streambuf<Allocator>& b,
530
- WriteToken&& token)
531
- -> decltype(
532
- async_initiate<WriteToken,
533
- void (boost::system::error_code, std::size_t)>(
534
- declval<detail::initiate_async_write_at_streambuf<
535
- AsyncRandomAccessWriteDevice>>(),
536
- token, offset, &b, transfer_all()))
537
- {
538
- return async_initiate<WriteToken,
539
- void (boost::system::error_code, std::size_t)>(
540
- detail::initiate_async_write_at_streambuf<
541
- AsyncRandomAccessWriteDevice>(d),
542
- token, offset, &b, transfer_all());
543
- }
544
-
545
474
  #endif // !defined(BOOST_ASIO_NO_IOSTREAM)
546
475
  #endif // !defined(BOOST_ASIO_NO_EXTENSIONS)
547
476
 
@@ -55,18 +55,18 @@ namespace asio {
55
55
  * if any of the following conditions are true:
56
56
  *
57
57
  * @li @c s.post(a) happens-before @c s.post(b)
58
- *
58
+ *
59
59
  * @li @c s.post(a) happens-before @c s.dispatch(b), where the latter is
60
60
  * performed outside the strand
61
- *
61
+ *
62
62
  * @li @c s.dispatch(a) happens-before @c s.post(b), where the former is
63
63
  * performed outside the strand
64
- *
64
+ *
65
65
  * @li @c s.dispatch(a) happens-before @c s.dispatch(b), where both are
66
66
  * performed outside the strand
67
- *
67
+ *
68
68
  * then @c a() happens-before @c b()
69
- *
69
+ *
70
70
  * Note that in the following case:
71
71
  * @code async_op_1(..., s.wrap(a));
72
72
  * async_op_2(..., s.wrap(b)); @endcode
@@ -663,7 +663,7 @@ public:
663
663
  * Regardless of whether the asynchronous operation completes immediately or
664
664
  * not, the completion handler will not be invoked from within this function.
665
665
  * On immediate completion, invocation of the handler will be performed in a
666
- * manner equivalent to using boost::asio::post().
666
+ * manner equivalent to using boost::asio::async_immediate().
667
667
  *
668
668
  * A successful resolve operation is guaranteed to pass a non-empty range to
669
669
  * the handler.
@@ -715,7 +715,7 @@ public:
715
715
  * Regardless of whether the asynchronous operation completes immediately or
716
716
  * not, the completion handler will not be invoked from within this function.
717
717
  * On immediate completion, invocation of the handler will be performed in a
718
- * manner equivalent to using boost::asio::post().
718
+ * manner equivalent to using boost::asio::async_immediate().
719
719
  *
720
720
  * A successful resolve operation is guaranteed to pass a non-empty range to
721
721
  * the handler.
@@ -784,7 +784,7 @@ public:
784
784
  * Regardless of whether the asynchronous operation completes immediately or
785
785
  * not, the completion handler will not be invoked from within this function.
786
786
  * On immediate completion, invocation of the handler will be performed in a
787
- * manner equivalent to using boost::asio::post().
787
+ * manner equivalent to using boost::asio::async_immediate().
788
788
  *
789
789
  * A successful resolve operation is guaranteed to pass a non-empty range to
790
790
  * the handler.
@@ -855,7 +855,7 @@ public:
855
855
  * Regardless of whether the asynchronous operation completes immediately or
856
856
  * not, the completion handler will not be invoked from within this function.
857
857
  * On immediate completion, invocation of the handler will be performed in a
858
- * manner equivalent to using boost::asio::post().
858
+ * manner equivalent to using boost::asio::async_immediate().
859
859
  *
860
860
  * A successful resolve operation is guaranteed to pass a non-empty range to
861
861
  * the handler.
@@ -927,7 +927,7 @@ public:
927
927
  * Regardless of whether the asynchronous operation completes immediately or
928
928
  * not, the completion handler will not be invoked from within this function.
929
929
  * On immediate completion, invocation of the handler will be performed in a
930
- * manner equivalent to using boost::asio::post().
930
+ * manner equivalent to using boost::asio::async_immediate().
931
931
  *
932
932
  * A successful resolve operation is guaranteed to pass a non-empty range to
933
933
  * the handler.
@@ -1032,7 +1032,7 @@ public:
1032
1032
  * Regardless of whether the asynchronous operation completes immediately or
1033
1033
  * not, the completion handler will not be invoked from within this function.
1034
1034
  * On immediate completion, invocation of the handler will be performed in a
1035
- * manner equivalent to using boost::asio::post().
1035
+ * manner equivalent to using boost::asio::async_immediate().
1036
1036
  *
1037
1037
  * A successful resolve operation is guaranteed to pass a non-empty range to
1038
1038
  * the handler.
@@ -40,7 +40,7 @@ public:
40
40
  #if defined(__sun) || defined(__osf__)
41
41
  typedef unsigned char ipv4_value_type;
42
42
  typedef unsigned char ipv6_value_type;
43
- #elif defined(_AIX) || defined(__hpux) || defined(__QNXNTO__)
43
+ #elif defined(_AIX) || defined(__hpux) || defined(__QNXNTO__)
44
44
  typedef unsigned char ipv4_value_type;
45
45
  typedef unsigned int ipv6_value_type;
46
46
  #else
@@ -282,7 +282,7 @@ address_v6 make_address_v6(const char* str,
282
282
  if (boost::asio::detail::socket_ops::inet_pton(
283
283
  BOOST_ASIO_OS_DEF(AF_INET6), str, &bytes[0], &scope_id, ec) <= 0)
284
284
  return address_v6();
285
- return address_v6(bytes, scope_id);
285
+ return address_v6(bytes, static_cast<scope_id_type>(scope_id));
286
286
  }
287
287
 
288
288
  address_v6 make_address_v6(const std::string& str)
@@ -59,12 +59,18 @@ unspecified signal_number;
59
59
 
60
60
  #else
61
61
 
62
- static constexpr auto& error = std::placeholders::_1;
63
- static constexpr auto& bytes_transferred = std::placeholders::_2;
64
- static constexpr auto& iterator = std::placeholders::_2;
65
- static constexpr auto& results = std::placeholders::_2;
66
- static constexpr auto& endpoint = std::placeholders::_2;
67
- static constexpr auto& signal_number = std::placeholders::_2;
62
+ static BOOST_ASIO_INLINE_VARIABLE constexpr auto& error
63
+ = std::placeholders::_1;
64
+ static BOOST_ASIO_INLINE_VARIABLE constexpr auto& bytes_transferred
65
+ = std::placeholders::_2;
66
+ static BOOST_ASIO_INLINE_VARIABLE constexpr auto& iterator
67
+ = std::placeholders::_2;
68
+ static BOOST_ASIO_INLINE_VARIABLE constexpr auto& results
69
+ = std::placeholders::_2;
70
+ static BOOST_ASIO_INLINE_VARIABLE constexpr auto& endpoint
71
+ = std::placeholders::_2;
72
+ static BOOST_ASIO_INLINE_VARIABLE constexpr auto& signal_number
73
+ = std::placeholders::_2;
68
74
 
69
75
  #endif
70
76
 
@@ -661,7 +661,7 @@ public:
661
661
  * Regardless of whether the asynchronous operation completes immediately or
662
662
  * not, the completion handler will not be invoked from within this function.
663
663
  * On immediate completion, invocation of the handler will be performed in a
664
- * manner equivalent to using boost::asio::post().
664
+ * manner equivalent to using boost::asio::async_immediate().
665
665
  *
666
666
  * @par Completion Signature
667
667
  * @code void(boost::system::error_code) @endcode
@@ -308,7 +308,7 @@ public:
308
308
  * Regardless of whether the asynchronous operation completes immediately or
309
309
  * not, the completion handler will not be invoked from within this function.
310
310
  * On immediate completion, invocation of the handler will be performed in a
311
- * manner equivalent to using boost::asio::post().
311
+ * manner equivalent to using boost::asio::async_immediate().
312
312
  *
313
313
  * @par Completion Signature
314
314
  * @code void(boost::system::error_code, std::size_t) @endcode
@@ -437,7 +437,7 @@ public:
437
437
  * Regardless of whether the asynchronous operation completes immediately or
438
438
  * not, the completion handler will not be invoked from within this function.
439
439
  * On immediate completion, invocation of the handler will be performed in a
440
- * manner equivalent to using boost::asio::post().
440
+ * manner equivalent to using boost::asio::async_immediate().
441
441
  *
442
442
  * @par Completion Signature
443
443
  * @code void(boost::system::error_code, std::size_t) @endcode