passenger 6.0.11 → 6.0.12

Sign up to get free protection for your applications and to get access to all the features.
Files changed (280) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG +24 -1
  3. data/CONTRIBUTORS +3 -0
  4. data/src/agent/Core/Config.h +1 -1
  5. data/src/agent/Core/Controller/CheckoutSession.cpp +24 -13
  6. data/src/agent/Core/Controller/Config.h +1 -1
  7. data/src/agent/Core/Controller/InternalUtils.cpp +32 -6
  8. data/src/agent/Core/Controller.h +4 -1
  9. data/src/agent/Watchdog/Config.h +1 -1
  10. data/src/cxx_supportlib/Constants.h +1 -1
  11. data/src/cxx_supportlib/IOTools/IOUtils.cpp +4 -4
  12. data/src/cxx_supportlib/vendor-modified/boost/align/aligned_alloc.hpp +47 -0
  13. data/src/cxx_supportlib/vendor-modified/boost/align/detail/aligned_alloc_posix.hpp +41 -0
  14. data/src/cxx_supportlib/vendor-modified/boost/align/detail/is_alignment.hpp +28 -0
  15. data/src/cxx_supportlib/vendor-modified/boost/asio/associated_allocator.hpp +53 -1
  16. data/src/cxx_supportlib/vendor-modified/boost/asio/associated_cancellation_slot.hpp +179 -0
  17. data/src/cxx_supportlib/vendor-modified/boost/asio/associated_executor.hpp +57 -1
  18. data/src/cxx_supportlib/vendor-modified/boost/asio/associator.hpp +37 -0
  19. data/src/cxx_supportlib/vendor-modified/boost/asio/async_result.hpp +789 -106
  20. data/src/cxx_supportlib/vendor-modified/boost/asio/awaitable.hpp +1 -1
  21. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_datagram_socket.hpp +80 -0
  22. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_deadline_timer.hpp +10 -0
  23. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_raw_socket.hpp +80 -0
  24. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_seq_packet_socket.hpp +30 -0
  25. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket.hpp +20 -0
  26. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket_acceptor.hpp +90 -0
  27. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_stream_socket.hpp +60 -0
  28. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_waitable_timer.hpp +10 -0
  29. data/src/cxx_supportlib/vendor-modified/boost/asio/bind_cancellation_slot.hpp +723 -0
  30. data/src/cxx_supportlib/vendor-modified/boost/asio/bind_executor.hpp +191 -12
  31. data/src/cxx_supportlib/vendor-modified/boost/asio/cancellation_signal.hpp +361 -0
  32. data/src/cxx_supportlib/vendor-modified/boost/asio/cancellation_state.hpp +237 -0
  33. data/src/cxx_supportlib/vendor-modified/boost/asio/cancellation_type.hpp +176 -0
  34. data/src/cxx_supportlib/vendor-modified/boost/asio/co_spawn.hpp +30 -2
  35. data/src/cxx_supportlib/vendor-modified/boost/asio/connect.hpp +60 -0
  36. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/base_from_cancellation_state.hpp +165 -0
  37. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/bind_handler.hpp +209 -76
  38. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/config.hpp +149 -60
  39. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/deadline_timer_service.hpp +40 -0
  40. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/dev_poll_reactor.hpp +8 -4
  41. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/epoll_reactor.hpp +14 -4
  42. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/functional.hpp +6 -0
  43. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_alloc_helpers.hpp +14 -10
  44. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_type_requirements.hpp +21 -18
  45. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_work.hpp +30 -19
  46. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/dev_poll_reactor.hpp +8 -0
  47. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/dev_poll_reactor.ipp +14 -0
  48. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/epoll_reactor.hpp +20 -0
  49. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/epoll_reactor.ipp +30 -0
  50. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/kqueue_reactor.hpp +20 -0
  51. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/kqueue_reactor.ipp +29 -0
  52. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/select_reactor.hpp +24 -0
  53. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/select_reactor.ipp +19 -0
  54. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_executor_service.hpp +3 -1
  55. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/timer_queue_ptime.ipp +6 -0
  56. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/kqueue_reactor.hpp +15 -5
  57. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/memory.hpp +60 -0
  58. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/pop_options.hpp +8 -0
  59. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/push_options.hpp +27 -0
  60. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_descriptor_service.hpp +93 -0
  61. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_service.hpp +77 -0
  62. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_service_base.hpp +111 -0
  63. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor_op.hpp +4 -0
  64. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor_op_queue.hpp +44 -0
  65. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/recycling_allocator.hpp +2 -1
  66. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolve_endpoint_op.hpp +2 -2
  67. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/select_reactor.hpp +14 -4
  68. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread_info_base.hpp +90 -24
  69. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue.hpp +30 -1
  70. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue_ptime.hpp +4 -0
  71. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/wait_op.hpp +5 -1
  72. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/work_dispatcher.hpp +5 -2
  73. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/any_executor.hpp +12 -12
  74. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/bulk_execute.hpp +10 -8
  75. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/connect.hpp +8 -8
  76. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/execute.hpp +7 -7
  77. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/schedule.hpp +7 -7
  78. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/set_done.hpp +7 -7
  79. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/set_error.hpp +7 -7
  80. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/set_value.hpp +13 -13
  81. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/start.hpp +7 -7
  82. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/submit.hpp +8 -8
  83. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/append.hpp +73 -0
  84. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/as_tuple.hpp +133 -0
  85. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/awaitable_operators.hpp +538 -0
  86. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/cancellation_condition.hpp +157 -0
  87. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/coro.hpp +1057 -0
  88. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/deferred.hpp +607 -0
  89. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/completion_handler_erasure.hpp +160 -0
  90. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/coro_promise_allocator.hpp +120 -0
  91. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/coro_traits.hpp +185 -0
  92. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/partial_promise.hpp +181 -0
  93. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/append.hpp +219 -0
  94. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/as_single.hpp +14 -28
  95. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/as_tuple.hpp +248 -0
  96. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/deferred.hpp +106 -0
  97. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/parallel_group.hpp +434 -0
  98. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/prepend.hpp +219 -0
  99. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/promise.hpp +100 -0
  100. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/parallel_group.hpp +217 -0
  101. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/prepend.hpp +73 -0
  102. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/promise.hpp +608 -0
  103. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/use_coro.hpp +284 -0
  104. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/awaitable.hpp +344 -20
  105. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/buffered_read_stream.hpp +23 -54
  106. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/buffered_write_stream.hpp +23 -54
  107. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/co_spawn.hpp +66 -18
  108. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/compose.hpp +55 -5
  109. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/connect.hpp +68 -80
  110. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/defer.hpp +8 -4
  111. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/dispatch.hpp +8 -4
  112. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/handler_alloc_hook.ipp +3 -2
  113. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/post.hpp +8 -4
  114. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read.hpp +98 -113
  115. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_at.hpp +71 -82
  116. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_until.hpp +210 -266
  117. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/redirect_error.hpp +248 -30
  118. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/spawn.hpp +11 -21
  119. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/use_awaitable.hpp +15 -3
  120. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/write.hpp +71 -87
  121. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/write_at.hpp +46 -68
  122. data/src/cxx_supportlib/vendor-modified/boost/asio/io_context.hpp +4 -4
  123. data/src/cxx_supportlib/vendor-modified/boost/asio/local/detail/impl/endpoint.ipp +2 -7
  124. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/basic_descriptor.hpp +10 -0
  125. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/basic_stream_descriptor.hpp +23 -3
  126. data/src/cxx_supportlib/vendor-modified/boost/asio/prefer.hpp +21 -21
  127. data/src/cxx_supportlib/vendor-modified/boost/asio/query.hpp +9 -9
  128. data/src/cxx_supportlib/vendor-modified/boost/asio/read.hpp +88 -0
  129. data/src/cxx_supportlib/vendor-modified/boost/asio/read_at.hpp +44 -0
  130. data/src/cxx_supportlib/vendor-modified/boost/asio/read_until.hpp +132 -0
  131. data/src/cxx_supportlib/vendor-modified/boost/asio/require.hpp +21 -21
  132. data/src/cxx_supportlib/vendor-modified/boost/asio/require_concept.hpp +9 -9
  133. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/buffered_handshake_op.hpp +1 -1
  134. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/engine.hpp +5 -0
  135. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/handshake_op.hpp +1 -1
  136. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/impl/engine.ipp +14 -0
  137. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/io.hpp +36 -27
  138. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/read_op.hpp +1 -1
  139. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/shutdown_op.hpp +2 -2
  140. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/stream_core.hpp +37 -0
  141. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/write_op.hpp +1 -1
  142. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/context.ipp +14 -7
  143. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/stream.hpp +73 -1
  144. data/src/cxx_supportlib/vendor-modified/boost/asio/system_executor.hpp +4 -4
  145. data/src/cxx_supportlib/vendor-modified/boost/asio/this_coro.hpp +235 -0
  146. data/src/cxx_supportlib/vendor-modified/boost/asio/thread_pool.hpp +4 -4
  147. data/src/cxx_supportlib/vendor-modified/boost/asio/use_awaitable.hpp +7 -10
  148. data/src/cxx_supportlib/vendor-modified/boost/asio/version.hpp +1 -1
  149. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_random_access_handle.hpp +20 -0
  150. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_stream_handle.hpp +20 -0
  151. data/src/cxx_supportlib/vendor-modified/boost/asio/write.hpp +88 -0
  152. data/src/cxx_supportlib/vendor-modified/boost/asio/write_at.hpp +44 -0
  153. data/src/cxx_supportlib/vendor-modified/boost/asio.hpp +6 -0
  154. data/src/cxx_supportlib/vendor-modified/boost/atomic/atomic_ref.hpp +14 -1
  155. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/config.hpp +17 -13
  156. data/src/cxx_supportlib/vendor-modified/boost/atomic/ipc_atomic_ref.hpp +14 -1
  157. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx03.hpp +2 -5
  158. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx11.hpp +2 -5
  159. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx14.hpp +2 -2
  160. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx17.hpp +2 -2
  161. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx20.hpp +56 -0
  162. data/src/cxx_supportlib/vendor-modified/boost/config/auto_link.hpp +1 -5
  163. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/common_edg.hpp +31 -11
  164. data/src/cxx_supportlib/vendor-modified/boost/config/detail/cxx_composite.hpp +20 -4
  165. data/src/cxx_supportlib/vendor-modified/boost/config/detail/select_platform_config.hpp +5 -0
  166. data/src/cxx_supportlib/vendor-modified/boost/config/detail/suffix.hpp +81 -0
  167. data/src/cxx_supportlib/vendor-modified/boost/config/platform/bsd.hpp +5 -8
  168. data/src/cxx_supportlib/vendor-modified/boost/config/platform/wasm.hpp +17 -0
  169. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/dinkumware.hpp +26 -0
  170. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libcpp.hpp +49 -0
  171. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libstdcpp3.hpp +46 -4
  172. data/src/cxx_supportlib/vendor-modified/boost/container/adaptive_pool.hpp +2 -2
  173. data/src/cxx_supportlib/vendor-modified/boost/container/allocator.hpp +1 -1
  174. data/src/cxx_supportlib/vendor-modified/boost/container/detail/adaptive_node_pool.hpp +2 -2
  175. data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_pool.hpp +2 -2
  176. data/src/cxx_supportlib/vendor-modified/boost/container/detail/std_fwd.hpp +3 -0
  177. data/src/cxx_supportlib/vendor-modified/boost/container/devector.hpp +2 -2
  178. data/src/cxx_supportlib/vendor-modified/boost/container/new_allocator.hpp +1 -1
  179. data/src/cxx_supportlib/vendor-modified/boost/container/node_allocator.hpp +1 -1
  180. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/polymorphic_allocator.hpp +6 -6
  181. data/src/cxx_supportlib/vendor-modified/boost/container/static_vector.hpp +4 -4
  182. data/src/cxx_supportlib/vendor-modified/boost/container/throw_exception.hpp +45 -38
  183. data/src/cxx_supportlib/vendor-modified/boost/container/vector.hpp +24 -0
  184. data/src/cxx_supportlib/vendor-modified/boost/core/ignore_unused.hpp +32 -2
  185. data/src/cxx_supportlib/vendor-modified/boost/core/uncaught_exceptions.hpp +7 -7
  186. data/src/cxx_supportlib/vendor-modified/boost/date_time/compiler_config.hpp +0 -24
  187. data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/time_parsers.hpp +4 -0
  188. data/src/cxx_supportlib/vendor-modified/boost/intrusive/any_hook.hpp +4 -4
  189. data/src/cxx_supportlib/vendor-modified/boost/intrusive/avl_set.hpp +83 -83
  190. data/src/cxx_supportlib/vendor-modified/boost/intrusive/avltree.hpp +43 -43
  191. data/src/cxx_supportlib/vendor-modified/boost/intrusive/avltree_algorithms.hpp +31 -31
  192. data/src/cxx_supportlib/vendor-modified/boost/intrusive/bs_set.hpp +85 -85
  193. data/src/cxx_supportlib/vendor-modified/boost/intrusive/bstree.hpp +68 -68
  194. data/src/cxx_supportlib/vendor-modified/boost/intrusive/bstree_algorithms.hpp +72 -62
  195. data/src/cxx_supportlib/vendor-modified/boost/intrusive/circular_list_algorithms.hpp +19 -20
  196. data/src/cxx_supportlib/vendor-modified/boost/intrusive/circular_slist_algorithms.hpp +19 -19
  197. data/src/cxx_supportlib/vendor-modified/boost/intrusive/derivation_value_traits.hpp +4 -4
  198. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/any_node_and_algorithms.hpp +2 -2
  199. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/bstree_algorithms_base.hpp +3 -3
  200. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/common_slist_algorithms.hpp +5 -5
  201. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/config_begin.hpp +1 -0
  202. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/generic_hook.hpp +8 -8
  203. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hash_combine.hpp +2 -4
  204. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hashtable_node.hpp +1 -1
  205. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/math.hpp +2 -50
  206. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/node_cloner_disposer.hpp +1 -1
  207. data/src/cxx_supportlib/vendor-modified/boost/intrusive/hashtable.hpp +71 -70
  208. data/src/cxx_supportlib/vendor-modified/boost/intrusive/linear_slist_algorithms.hpp +15 -14
  209. data/src/cxx_supportlib/vendor-modified/boost/intrusive/list.hpp +84 -82
  210. data/src/cxx_supportlib/vendor-modified/boost/intrusive/list_hook.hpp +10 -10
  211. data/src/cxx_supportlib/vendor-modified/boost/intrusive/member_value_traits.hpp +4 -4
  212. data/src/cxx_supportlib/vendor-modified/boost/intrusive/parent_from_member.hpp +2 -2
  213. data/src/cxx_supportlib/vendor-modified/boost/intrusive/pointer_plus_bits.hpp +4 -4
  214. data/src/cxx_supportlib/vendor-modified/boost/intrusive/pointer_traits.hpp +18 -18
  215. data/src/cxx_supportlib/vendor-modified/boost/intrusive/rbtree.hpp +43 -43
  216. data/src/cxx_supportlib/vendor-modified/boost/intrusive/rbtree_algorithms.hpp +26 -26
  217. data/src/cxx_supportlib/vendor-modified/boost/intrusive/set.hpp +85 -85
  218. data/src/cxx_supportlib/vendor-modified/boost/intrusive/set_hook.hpp +12 -12
  219. data/src/cxx_supportlib/vendor-modified/boost/intrusive/sg_set.hpp +93 -93
  220. data/src/cxx_supportlib/vendor-modified/boost/intrusive/sgtree.hpp +51 -51
  221. data/src/cxx_supportlib/vendor-modified/boost/intrusive/sgtree_algorithms.hpp +24 -24
  222. data/src/cxx_supportlib/vendor-modified/boost/intrusive/slist.hpp +104 -104
  223. data/src/cxx_supportlib/vendor-modified/boost/intrusive/slist_hook.hpp +8 -6
  224. data/src/cxx_supportlib/vendor-modified/boost/intrusive/splay_set.hpp +91 -91
  225. data/src/cxx_supportlib/vendor-modified/boost/intrusive/splaytree.hpp +46 -46
  226. data/src/cxx_supportlib/vendor-modified/boost/intrusive/splaytree_algorithms.hpp +31 -31
  227. data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap.hpp +51 -51
  228. data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap_algorithms.hpp +18 -18
  229. data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap_set.hpp +97 -97
  230. data/src/cxx_supportlib/vendor-modified/boost/intrusive/trivial_value_traits.hpp +6 -4
  231. data/src/cxx_supportlib/vendor-modified/boost/intrusive/unordered_set.hpp +63 -63
  232. data/src/cxx_supportlib/vendor-modified/boost/intrusive/unordered_set_hook.hpp +15 -15
  233. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_numeric.hpp +4 -1
  234. data/src/cxx_supportlib/vendor-modified/boost/move/detail/config_begin.hpp +1 -0
  235. data/src/cxx_supportlib/vendor-modified/boost/move/detail/iterator_traits.hpp +1 -0
  236. data/src/cxx_supportlib/vendor-modified/boost/move/detail/nsec_clock.hpp +1 -1
  237. data/src/cxx_supportlib/vendor-modified/boost/operators.hpp +2 -0
  238. data/src/cxx_supportlib/vendor-modified/boost/regex/concepts.hpp +1 -1
  239. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex_parser.hpp +3 -0
  240. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/unicode_iterator.hpp +112 -31
  241. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/basic_regex_parser.hpp +3 -0
  242. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/mem_block_cache.hpp +4 -8
  243. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/unicode_iterator.hpp +0 -2
  244. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/w32_regex_traits.hpp +6 -2
  245. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/shared_count.hpp +1 -1
  246. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_impl.hpp +22 -2
  247. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/shared_ptr.hpp +59 -1
  248. data/src/cxx_supportlib/vendor-modified/boost/system/detail/config.hpp +9 -11
  249. data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_category.hpp +27 -21
  250. data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_category_impl.hpp +34 -3
  251. data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_code.hpp +378 -36
  252. data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_condition.hpp +97 -21
  253. data/src/cxx_supportlib/vendor-modified/boost/system/detail/interop_category.hpp +107 -0
  254. data/src/cxx_supportlib/vendor-modified/boost/system/detail/is_same.hpp +33 -0
  255. data/src/cxx_supportlib/vendor-modified/boost/system/detail/snprintf.hpp +70 -0
  256. data/src/cxx_supportlib/vendor-modified/boost/system/detail/{to_std_category.hpp → std_category.hpp} +5 -55
  257. data/src/cxx_supportlib/vendor-modified/boost/system/detail/system_category_impl.hpp +2 -12
  258. data/src/cxx_supportlib/vendor-modified/boost/system/error_code.hpp +0 -33
  259. data/src/cxx_supportlib/vendor-modified/boost/utility/detail/result_of_variadic.hpp +190 -0
  260. data/src/cxx_supportlib/vendor-modified/boost/utility/result_of.hpp +20 -9
  261. data/src/cxx_supportlib/vendor-modified/boost/utility/string_view.hpp +3 -1
  262. data/src/cxx_supportlib/vendor-modified/boost/version.hpp +2 -2
  263. data/src/nginx_module/ConfigGeneral/AutoGeneratedDefinitions.c +8 -0
  264. data/src/nginx_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.c +6 -0
  265. data/src/nginx_module/ConfigGeneral/AutoGeneratedSetterFuncs.c +12 -0
  266. data/src/nginx_module/LocationConfig/AutoGeneratedCreateFunction.c +5 -0
  267. data/src/nginx_module/LocationConfig/AutoGeneratedHeaderSerialization.c +21 -0
  268. data/src/nginx_module/LocationConfig/AutoGeneratedManifestGeneration.c +13 -0
  269. data/src/nginx_module/LocationConfig/AutoGeneratedMergeFunction.c +3 -0
  270. data/src/nginx_module/LocationConfig/AutoGeneratedStruct.h +4 -0
  271. data/src/ruby_supportlib/phusion_passenger/admin_tools/instance_registry.rb +3 -2
  272. data/src/ruby_supportlib/phusion_passenger/loader_shared_helpers.rb +8 -1
  273. data/src/ruby_supportlib/phusion_passenger/nginx/config_options.rb +6 -0
  274. data/src/ruby_supportlib/phusion_passenger/packaging.rb +1 -0
  275. data/src/ruby_supportlib/phusion_passenger/platform_info/openssl.rb +1 -1
  276. data/src/ruby_supportlib/phusion_passenger/platform_info/operating_system.rb +8 -0
  277. data/src/ruby_supportlib/phusion_passenger/request_handler.rb +4 -1
  278. data/src/ruby_supportlib/phusion_passenger.rb +1 -1
  279. metadata +39 -4
  280. data/src/cxx_supportlib/vendor-modified/boost/system/detail/is_generic_value.hpp +0 -125
@@ -16,8 +16,7 @@
16
16
  #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17
17
 
18
18
  #include <boost/asio/detail/config.hpp>
19
- #include <boost/asio/associated_executor.hpp>
20
- #include <boost/asio/associated_allocator.hpp>
19
+ #include <boost/asio/associator.hpp>
21
20
  #include <boost/asio/async_result.hpp>
22
21
  #include <boost/asio/detail/handler_alloc_helpers.hpp>
23
22
  #include <boost/asio/detail/handler_cont_helpers.hpp>
@@ -56,7 +55,7 @@ public:
56
55
 
57
56
  void operator()()
58
57
  {
59
- handler_();
58
+ BOOST_ASIO_MOVE_OR_LVALUE(Handler)(handler_)();
60
59
  }
61
60
 
62
61
  #if defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES)
@@ -67,7 +66,8 @@ public:
67
66
  >::type
68
67
  operator()(BOOST_ASIO_MOVE_ARG(Arg) arg, BOOST_ASIO_MOVE_ARG(Args)... args)
69
68
  {
70
- handler_(BOOST_ASIO_MOVE_CAST(Arg)(arg),
69
+ BOOST_ASIO_MOVE_OR_LVALUE(Handler)(handler_)(
70
+ BOOST_ASIO_MOVE_CAST(Arg)(arg),
71
71
  BOOST_ASIO_MOVE_CAST(Args)(args)...);
72
72
  }
73
73
 
@@ -76,7 +76,8 @@ public:
76
76
  BOOST_ASIO_MOVE_ARG(Args)... args)
77
77
  {
78
78
  ec_ = ec;
79
- handler_(BOOST_ASIO_MOVE_CAST(Args)(args)...);
79
+ BOOST_ASIO_MOVE_OR_LVALUE(Handler)(handler_)(
80
+ BOOST_ASIO_MOVE_CAST(Args)(args)...);
80
81
  }
81
82
 
82
83
  #else // defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES)
@@ -87,13 +88,14 @@ public:
87
88
  >::type
88
89
  operator()(BOOST_ASIO_MOVE_ARG(Arg) arg)
89
90
  {
90
- handler_(BOOST_ASIO_MOVE_CAST(Arg)(arg));
91
+ BOOST_ASIO_MOVE_OR_LVALUE(Handler)(handler_)(
92
+ BOOST_ASIO_MOVE_CAST(Arg)(arg));
91
93
  }
92
94
 
93
95
  void operator()(const boost::system::error_code& ec)
94
96
  {
95
97
  ec_ = ec;
96
- handler_();
98
+ BOOST_ASIO_MOVE_OR_LVALUE(Handler)(handler_)();
97
99
  }
98
100
 
99
101
  #define BOOST_ASIO_PRIVATE_REDIRECT_ERROR_DEF(n) \
@@ -103,7 +105,8 @@ public:
103
105
  >::type \
104
106
  operator()(BOOST_ASIO_MOVE_ARG(Arg) arg, BOOST_ASIO_VARIADIC_MOVE_PARAMS(n)) \
105
107
  { \
106
- handler_(BOOST_ASIO_MOVE_CAST(Arg)(arg), \
108
+ BOOST_ASIO_MOVE_OR_LVALUE(Handler)(handler_)( \
109
+ BOOST_ASIO_MOVE_CAST(Arg)(arg), \
107
110
  BOOST_ASIO_VARIADIC_MOVE_ARGS(n)); \
108
111
  } \
109
112
  \
@@ -112,7 +115,8 @@ public:
112
115
  BOOST_ASIO_VARIADIC_MOVE_PARAMS(n)) \
113
116
  { \
114
117
  ec_ = ec; \
115
- handler_(BOOST_ASIO_VARIADIC_MOVE_ARGS(n)); \
118
+ BOOST_ASIO_MOVE_OR_LVALUE(Handler)(handler_)( \
119
+ BOOST_ASIO_VARIADIC_MOVE_ARGS(n)); \
116
120
  } \
117
121
  /**/
118
122
  BOOST_ASIO_VARIADIC_GENERATE(BOOST_ASIO_PRIVATE_REDIRECT_ERROR_DEF)
@@ -203,6 +207,78 @@ struct redirect_error_signature<R(const boost::system::error_code&, Args...)>
203
207
  typedef R type(Args...);
204
208
  };
205
209
 
210
+ # if defined(BOOST_ASIO_HAS_REF_QUALIFIED_FUNCTIONS)
211
+
212
+ template <typename R, typename... Args>
213
+ struct redirect_error_signature<R(boost::system::error_code, Args...) &>
214
+ {
215
+ typedef R type(Args...) &;
216
+ };
217
+
218
+ template <typename R, typename... Args>
219
+ struct redirect_error_signature<R(const boost::system::error_code&, Args...) &>
220
+ {
221
+ typedef R type(Args...) &;
222
+ };
223
+
224
+ template <typename R, typename... Args>
225
+ struct redirect_error_signature<R(boost::system::error_code, Args...) &&>
226
+ {
227
+ typedef R type(Args...) &&;
228
+ };
229
+
230
+ template <typename R, typename... Args>
231
+ struct redirect_error_signature<R(const boost::system::error_code&, Args...) &&>
232
+ {
233
+ typedef R type(Args...) &&;
234
+ };
235
+
236
+ # if defined(BOOST_ASIO_HAS_NOEXCEPT_FUNCTION_TYPE)
237
+
238
+ template <typename R, typename... Args>
239
+ struct redirect_error_signature<
240
+ R(boost::system::error_code, Args...) noexcept>
241
+ {
242
+ typedef R type(Args...) & noexcept;
243
+ };
244
+
245
+ template <typename R, typename... Args>
246
+ struct redirect_error_signature<
247
+ R(const boost::system::error_code&, Args...) noexcept>
248
+ {
249
+ typedef R type(Args...) & noexcept;
250
+ };
251
+
252
+ template <typename R, typename... Args>
253
+ struct redirect_error_signature<
254
+ R(boost::system::error_code, Args...) & noexcept>
255
+ {
256
+ typedef R type(Args...) & noexcept;
257
+ };
258
+
259
+ template <typename R, typename... Args>
260
+ struct redirect_error_signature<
261
+ R(const boost::system::error_code&, Args...) & noexcept>
262
+ {
263
+ typedef R type(Args...) & noexcept;
264
+ };
265
+
266
+ template <typename R, typename... Args>
267
+ struct redirect_error_signature<
268
+ R(boost::system::error_code, Args...) && noexcept>
269
+ {
270
+ typedef R type(Args...) && noexcept;
271
+ };
272
+
273
+ template <typename R, typename... Args>
274
+ struct redirect_error_signature<
275
+ R(const boost::system::error_code&, Args...) && noexcept>
276
+ {
277
+ typedef R type(Args...) && noexcept;
278
+ };
279
+
280
+ # endif // defined(BOOST_ASIO_HAS_NOEXCEPT_FUNCTION_TYPE)
281
+ # endif // defined(BOOST_ASIO_HAS_REF_QUALIFIED_FUNCTIONS)
206
282
  #else // defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES)
207
283
 
208
284
  template <typename R>
@@ -235,6 +311,161 @@ struct redirect_error_signature<R(const boost::system::error_code&)>
235
311
  BOOST_ASIO_VARIADIC_GENERATE(BOOST_ASIO_PRIVATE_REDIRECT_ERROR_DEF)
236
312
  #undef BOOST_ASIO_PRIVATE_REDIRECT_ERROR_DEF
237
313
 
314
+ # if defined(BOOST_ASIO_HAS_REF_QUALIFIED_FUNCTIONS)
315
+
316
+ template <typename R>
317
+ struct redirect_error_signature<R(boost::system::error_code) &>
318
+ {
319
+ typedef R type() &;
320
+ };
321
+
322
+ template <typename R>
323
+ struct redirect_error_signature<R(const boost::system::error_code&) &>
324
+ {
325
+ typedef R type() &;
326
+ };
327
+
328
+ template <typename R>
329
+ struct redirect_error_signature<R(boost::system::error_code) &&>
330
+ {
331
+ typedef R type() &&;
332
+ };
333
+
334
+ template <typename R>
335
+ struct redirect_error_signature<R(const boost::system::error_code&) &&>
336
+ {
337
+ typedef R type() &&;
338
+ };
339
+
340
+ #define BOOST_ASIO_PRIVATE_REDIRECT_ERROR_DEF(n) \
341
+ template <typename R, BOOST_ASIO_VARIADIC_TPARAMS(n)> \
342
+ struct redirect_error_signature< \
343
+ R(boost::system::error_code, BOOST_ASIO_VARIADIC_TARGS(n)) &> \
344
+ { \
345
+ typedef R type(BOOST_ASIO_VARIADIC_TARGS(n)) &; \
346
+ }; \
347
+ \
348
+ template <typename R, BOOST_ASIO_VARIADIC_TPARAMS(n)> \
349
+ struct redirect_error_signature< \
350
+ R(const boost::system::error_code&, BOOST_ASIO_VARIADIC_TARGS(n)) &> \
351
+ { \
352
+ typedef R type(BOOST_ASIO_VARIADIC_TARGS(n)) &; \
353
+ }; \
354
+ \
355
+ template <typename R, BOOST_ASIO_VARIADIC_TPARAMS(n)> \
356
+ struct redirect_error_signature< \
357
+ R(boost::system::error_code, BOOST_ASIO_VARIADIC_TARGS(n)) &&> \
358
+ { \
359
+ typedef R type(BOOST_ASIO_VARIADIC_TARGS(n)) &&; \
360
+ }; \
361
+ \
362
+ template <typename R, BOOST_ASIO_VARIADIC_TPARAMS(n)> \
363
+ struct redirect_error_signature< \
364
+ R(const boost::system::error_code&, BOOST_ASIO_VARIADIC_TARGS(n)) &&> \
365
+ { \
366
+ typedef R type(BOOST_ASIO_VARIADIC_TARGS(n)) &&; \
367
+ }; \
368
+ /**/
369
+ BOOST_ASIO_VARIADIC_GENERATE(BOOST_ASIO_PRIVATE_REDIRECT_ERROR_DEF)
370
+ #undef BOOST_ASIO_PRIVATE_REDIRECT_ERROR_DEF
371
+
372
+ # if defined(BOOST_ASIO_HAS_NOEXCEPT_FUNCTION_TYPE)
373
+
374
+ template <typename R>
375
+ struct redirect_error_signature<
376
+ R(boost::system::error_code) noexcept>
377
+ {
378
+ typedef R type() noexcept;
379
+ };
380
+
381
+ template <typename R>
382
+ struct redirect_error_signature<
383
+ R(const boost::system::error_code&) noexcept>
384
+ {
385
+ typedef R type() noexcept;
386
+ };
387
+
388
+ template <typename R>
389
+ struct redirect_error_signature<
390
+ R(boost::system::error_code) & noexcept>
391
+ {
392
+ typedef R type() & noexcept;
393
+ };
394
+
395
+ template <typename R>
396
+ struct redirect_error_signature<
397
+ R(const boost::system::error_code&) & noexcept>
398
+ {
399
+ typedef R type() & noexcept;
400
+ };
401
+
402
+ template <typename R>
403
+ struct redirect_error_signature<
404
+ R(boost::system::error_code) && noexcept>
405
+ {
406
+ typedef R type() && noexcept;
407
+ };
408
+
409
+ template <typename R>
410
+ struct redirect_error_signature<
411
+ R(const boost::system::error_code&) && noexcept>
412
+ {
413
+ typedef R type() && noexcept;
414
+ };
415
+
416
+ #define BOOST_ASIO_PRIVATE_REDIRECT_ERROR_DEF(n) \
417
+ template <typename R, BOOST_ASIO_VARIADIC_TPARAMS(n)> \
418
+ struct redirect_error_signature< \
419
+ R(boost::system::error_code, BOOST_ASIO_VARIADIC_TARGS(n)) noexcept> \
420
+ { \
421
+ typedef R type(BOOST_ASIO_VARIADIC_TARGS(n)) noexcept; \
422
+ }; \
423
+ \
424
+ template <typename R, BOOST_ASIO_VARIADIC_TPARAMS(n)> \
425
+ struct redirect_error_signature< \
426
+ R(const boost::system::error_code&, \
427
+ BOOST_ASIO_VARIADIC_TARGS(n)) noexcept> \
428
+ { \
429
+ typedef R type(BOOST_ASIO_VARIADIC_TARGS(n)) noexcept; \
430
+ }; \
431
+ \
432
+ template <typename R, BOOST_ASIO_VARIADIC_TPARAMS(n)> \
433
+ struct redirect_error_signature< \
434
+ R(boost::system::error_code, \
435
+ BOOST_ASIO_VARIADIC_TARGS(n)) & noexcept> \
436
+ { \
437
+ typedef R type(BOOST_ASIO_VARIADIC_TARGS(n)) & noexcept; \
438
+ }; \
439
+ \
440
+ template <typename R, BOOST_ASIO_VARIADIC_TPARAMS(n)> \
441
+ struct redirect_error_signature< \
442
+ R(const boost::system::error_code&, \
443
+ BOOST_ASIO_VARIADIC_TARGS(n)) & noexcept> \
444
+ { \
445
+ typedef R type(BOOST_ASIO_VARIADIC_TARGS(n)) & noexcept; \
446
+ }; \
447
+ \
448
+ template <typename R, BOOST_ASIO_VARIADIC_TPARAMS(n)> \
449
+ struct redirect_error_signature< \
450
+ R(boost::system::error_code, \
451
+ BOOST_ASIO_VARIADIC_TARGS(n)) && noexcept> \
452
+ { \
453
+ typedef R type(BOOST_ASIO_VARIADIC_TARGS(n)) && noexcept; \
454
+ }; \
455
+ \
456
+ template <typename R, BOOST_ASIO_VARIADIC_TPARAMS(n)> \
457
+ struct redirect_error_signature< \
458
+ R(const boost::system::error_code&, \
459
+ BOOST_ASIO_VARIADIC_TARGS(n)) && noexcept> \
460
+ { \
461
+ typedef R type(BOOST_ASIO_VARIADIC_TARGS(n)) && noexcept; \
462
+ }; \
463
+ /**/
464
+ BOOST_ASIO_VARIADIC_GENERATE(BOOST_ASIO_PRIVATE_REDIRECT_ERROR_DEF)
465
+ #undef BOOST_ASIO_PRIVATE_REDIRECT_ERROR_DEF
466
+
467
+ # endif // defined(BOOST_ASIO_HAS_NOEXCEPT_FUNCTION_TYPE)
468
+ # endif // defined(BOOST_ASIO_HAS_REF_QUALIFIED_FUNCTIONS)
238
469
  #endif // defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES)
239
470
 
240
471
  } // namespace detail
@@ -356,30 +587,17 @@ struct async_result<redirect_error_t<CompletionToken>, Signature>
356
587
  #endif // defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES)
357
588
  };
358
589
 
359
- template <typename Handler, typename Executor>
360
- struct associated_executor<detail::redirect_error_handler<Handler>, Executor>
361
- : detail::associated_executor_forwarding_base<Handler, Executor>
590
+ template <template <typename, typename> class Associator,
591
+ typename Handler, typename DefaultCandidate>
592
+ struct associator<Associator,
593
+ detail::redirect_error_handler<Handler>, DefaultCandidate>
594
+ : Associator<Handler, DefaultCandidate>
362
595
  {
363
- typedef typename associated_executor<Handler, Executor>::type type;
364
-
365
- static type get(
366
- const detail::redirect_error_handler<Handler>& h,
367
- const Executor& ex = Executor()) BOOST_ASIO_NOEXCEPT
368
- {
369
- return associated_executor<Handler, Executor>::get(h.handler_, ex);
370
- }
371
- };
372
-
373
- template <typename Handler, typename Allocator>
374
- struct associated_allocator<detail::redirect_error_handler<Handler>, Allocator>
375
- {
376
- typedef typename associated_allocator<Handler, Allocator>::type type;
377
-
378
- static type get(
596
+ static typename Associator<Handler, DefaultCandidate>::type get(
379
597
  const detail::redirect_error_handler<Handler>& h,
380
- const Allocator& a = Allocator()) BOOST_ASIO_NOEXCEPT
598
+ const DefaultCandidate& c = DefaultCandidate()) BOOST_ASIO_NOEXCEPT
381
599
  {
382
- return associated_allocator<Handler, Allocator>::get(h.handler_, a);
600
+ return Associator<Handler, DefaultCandidate>::get(h.handler_, c);
383
601
  }
384
602
  };
385
603
 
@@ -296,28 +296,18 @@ public:
296
296
  }
297
297
  };
298
298
 
299
- template <typename Handler, typename T, typename Allocator>
300
- struct associated_allocator<detail::coro_handler<Handler, T>, Allocator>
299
+ template <template <typename, typename> class Associator,
300
+ typename Handler, typename T, typename DefaultCandidate>
301
+ struct associator<Associator,
302
+ detail::coro_handler<Handler, T>,
303
+ DefaultCandidate>
304
+ : Associator<Handler, DefaultCandidate>
301
305
  {
302
- typedef typename associated_allocator<Handler, Allocator>::type type;
303
-
304
- static type get(const detail::coro_handler<Handler, T>& h,
305
- const Allocator& a = Allocator()) BOOST_ASIO_NOEXCEPT
306
- {
307
- return associated_allocator<Handler, Allocator>::get(h.handler_, a);
308
- }
309
- };
310
-
311
- template <typename Handler, typename T, typename Executor>
312
- struct associated_executor<detail::coro_handler<Handler, T>, Executor>
313
- : detail::associated_executor_forwarding_base<Handler, Executor>
314
- {
315
- typedef typename associated_executor<Handler, Executor>::type type;
316
-
317
- static type get(const detail::coro_handler<Handler, T>& h,
318
- const Executor& ex = Executor()) BOOST_ASIO_NOEXCEPT
306
+ static typename Associator<Handler, DefaultCandidate>::type get(
307
+ const detail::coro_handler<Handler, T>& h,
308
+ const DefaultCandidate& c = DefaultCandidate()) BOOST_ASIO_NOEXCEPT
319
309
  {
320
- return associated_executor<Handler, Executor>::get(h.handler_, ex);
310
+ return Associator<Handler, DefaultCandidate>::get(h.handler_, c);
321
311
  }
322
312
  };
323
313
 
@@ -355,7 +345,7 @@ namespace detail {
355
345
 
356
346
  (data->function_)(yield);
357
347
  if (data->call_handler_)
358
- (data->handler_)();
348
+ BOOST_ASIO_MOVE_OR_LVALUE(Handler)(data->handler_)();
359
349
  }
360
350
 
361
351
  shared_ptr<spawn_data<Handler, Function> > data_;
@@ -17,6 +17,7 @@
17
17
 
18
18
  #include <boost/asio/detail/config.hpp>
19
19
  #include <boost/asio/async_result.hpp>
20
+ #include <boost/asio/cancellation_signal.hpp>
20
21
 
21
22
  #include <boost/asio/detail/push_options.hpp>
22
23
 
@@ -33,8 +34,9 @@ public:
33
34
  typedef awaitable<T, Executor> awaitable_type;
34
35
 
35
36
  // Construct from the entry point of a new thread of execution.
36
- awaitable_handler_base(awaitable<void, Executor> a, const Executor& ex)
37
- : awaitable_thread<Executor>(std::move(a), ex)
37
+ awaitable_handler_base(awaitable<awaitable_thread_entry_point, Executor> a,
38
+ const Executor& ex, cancellation_slot pcs, cancellation_state cs)
39
+ : awaitable_thread<Executor>(std::move(a), ex, pcs, cs)
38
40
  {
39
41
  }
40
42
 
@@ -47,7 +49,8 @@ public:
47
49
  protected:
48
50
  awaitable_frame<T, Executor>* frame() noexcept
49
51
  {
50
- return static_cast<awaitable_frame<T, Executor>*>(this->top_of_stack_);
52
+ return static_cast<awaitable_frame<T, Executor>*>(
53
+ this->entry_point()->top_of_stack_);
51
54
  }
52
55
  };
53
56
 
@@ -65,6 +68,7 @@ public:
65
68
  {
66
69
  this->frame()->attach_thread(this);
67
70
  this->frame()->return_void();
71
+ this->frame()->clear_cancellation_slot();
68
72
  this->frame()->pop_frame();
69
73
  this->pump();
70
74
  }
@@ -84,6 +88,7 @@ public:
84
88
  this->frame()->set_error(ec);
85
89
  else
86
90
  this->frame()->return_void();
91
+ this->frame()->clear_cancellation_slot();
87
92
  this->frame()->pop_frame();
88
93
  this->pump();
89
94
  }
@@ -103,6 +108,7 @@ public:
103
108
  this->frame()->set_except(ex);
104
109
  else
105
110
  this->frame()->return_void();
111
+ this->frame()->clear_cancellation_slot();
106
112
  this->frame()->pop_frame();
107
113
  this->pump();
108
114
  }
@@ -120,6 +126,7 @@ public:
120
126
  {
121
127
  this->frame()->attach_thread(this);
122
128
  this->frame()->return_value(std::forward<Arg>(arg));
129
+ this->frame()->clear_cancellation_slot();
123
130
  this->frame()->pop_frame();
124
131
  this->pump();
125
132
  }
@@ -140,6 +147,7 @@ public:
140
147
  this->frame()->set_error(ec);
141
148
  else
142
149
  this->frame()->return_value(std::forward<Arg>(arg));
150
+ this->frame()->clear_cancellation_slot();
143
151
  this->frame()->pop_frame();
144
152
  this->pump();
145
153
  }
@@ -160,6 +168,7 @@ public:
160
168
  this->frame()->set_except(ex);
161
169
  else
162
170
  this->frame()->return_value(std::forward<Arg>(arg));
171
+ this->frame()->clear_cancellation_slot();
163
172
  this->frame()->pop_frame();
164
173
  this->pump();
165
174
  }
@@ -178,6 +187,7 @@ public:
178
187
  {
179
188
  this->frame()->attach_thread(this);
180
189
  this->frame()->return_values(std::forward<Args>(args)...);
190
+ this->frame()->clear_cancellation_slot();
181
191
  this->frame()->pop_frame();
182
192
  this->pump();
183
193
  }
@@ -199,6 +209,7 @@ public:
199
209
  this->frame()->set_error(ec);
200
210
  else
201
211
  this->frame()->return_values(std::forward<Args>(args)...);
212
+ this->frame()->clear_cancellation_slot();
202
213
  this->frame()->pop_frame();
203
214
  this->pump();
204
215
  }
@@ -220,6 +231,7 @@ public:
220
231
  this->frame()->set_except(ex);
221
232
  else
222
233
  this->frame()->return_values(std::forward<Args>(args)...);
234
+ this->frame()->clear_cancellation_slot();
223
235
  this->frame()->pop_frame();
224
236
  this->pump();
225
237
  }