passenger 6.0.16 → 6.0.17

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.
Files changed (286) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG +22 -1
  3. data/build/integration_tests.rb +6 -6
  4. data/build/ruby_tests.rb +1 -1
  5. data/build/test_basics.rb +0 -1
  6. data/src/agent/Core/Config.h +1 -1
  7. data/src/agent/Core/Controller/Config.h +1 -1
  8. data/src/agent/Core/SpawningKit/PipeWatcher.h +18 -3
  9. data/src/agent/Watchdog/Config.h +1 -1
  10. data/src/cxx_supportlib/Constants.h +1 -1
  11. data/src/cxx_supportlib/vendor-modified/boost/align/aligned_alloc.hpp +1 -1
  12. data/src/cxx_supportlib/vendor-modified/boost/array.hpp +1 -1
  13. data/src/cxx_supportlib/vendor-modified/boost/asio/any_completion_executor.hpp +344 -0
  14. data/src/cxx_supportlib/vendor-modified/boost/asio/any_completion_handler.hpp +686 -0
  15. data/src/cxx_supportlib/vendor-modified/boost/asio/any_io_executor.hpp +56 -0
  16. data/src/cxx_supportlib/vendor-modified/boost/asio/associated_allocator.hpp +81 -25
  17. data/src/cxx_supportlib/vendor-modified/boost/asio/associated_cancellation_slot.hpp +68 -8
  18. data/src/cxx_supportlib/vendor-modified/boost/asio/associated_executor.hpp +46 -11
  19. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_datagram_socket.hpp +4 -4
  20. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_deadline_timer.hpp +2 -2
  21. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_file.hpp +1 -1
  22. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_random_access_file.hpp +2 -2
  23. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_raw_socket.hpp +4 -4
  24. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_readable_pipe.hpp +2 -2
  25. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_seq_packet_socket.hpp +2 -2
  26. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_serial_port.hpp +3 -3
  27. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_signal_set.hpp +2 -2
  28. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket.hpp +3 -3
  29. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket_acceptor.hpp +4 -4
  30. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_stream_file.hpp +2 -2
  31. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_stream_socket.hpp +2 -2
  32. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_waitable_timer.hpp +2 -2
  33. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_writable_pipe.hpp +2 -2
  34. data/src/cxx_supportlib/vendor-modified/boost/asio/bind_allocator.hpp +13 -3
  35. data/src/cxx_supportlib/vendor-modified/boost/asio/bind_cancellation_slot.hpp +14 -3
  36. data/src/cxx_supportlib/vendor-modified/boost/asio/bind_executor.hpp +13 -3
  37. data/src/cxx_supportlib/vendor-modified/boost/asio/compose.hpp +30 -305
  38. data/src/cxx_supportlib/vendor-modified/boost/asio/consign.hpp +90 -0
  39. data/src/cxx_supportlib/vendor-modified/boost/asio/defer.hpp +17 -18
  40. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/bind_handler.hpp +98 -24
  41. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/composed_work.hpp +330 -0
  42. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/config.hpp +81 -15
  43. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_alloc_helpers.hpp +4 -4
  44. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_work.hpp +19 -11
  45. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/descriptor_ops.ipp +37 -0
  46. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/handler_tracking.ipp +3 -1
  47. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/select_reactor.ipp +1 -1
  48. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/socket_ops.ipp +10 -2
  49. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_executor_service.hpp +14 -1
  50. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/memory.hpp +18 -0
  51. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/utility.hpp +1 -2
  52. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/work_dispatcher.hpp +7 -3
  53. data/src/cxx_supportlib/vendor-modified/boost/asio/dispatch.hpp +4 -14
  54. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/allocator.hpp +22 -3
  55. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/any_executor.hpp +447 -142
  56. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/blocking.hpp +57 -8
  57. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/blocking_adaptation.hpp +51 -6
  58. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/bulk_execute.hpp +5 -0
  59. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/bulk_guarantee.hpp +41 -4
  60. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/connect.hpp +5 -0
  61. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/context.hpp +13 -2
  62. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/context_as.hpp +13 -2
  63. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/detail/as_operation.hpp +4 -0
  64. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/execute.hpp +9 -2
  65. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/executor.hpp +11 -1
  66. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/mapping.hpp +52 -8
  67. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/occupancy.hpp +13 -2
  68. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/operation_state.hpp +5 -0
  69. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/outstanding_work.hpp +39 -6
  70. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/receiver.hpp +5 -0
  71. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/relationship.hpp +39 -6
  72. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/schedule.hpp +5 -0
  73. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/scheduler.hpp +5 -0
  74. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/sender.hpp +5 -0
  75. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/set_done.hpp +5 -0
  76. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/set_error.hpp +5 -0
  77. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/set_value.hpp +5 -0
  78. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/start.hpp +5 -0
  79. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/submit.hpp +5 -0
  80. data/src/cxx_supportlib/vendor-modified/boost/asio/executor_work_guard.hpp +6 -9
  81. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/basic_channel.hpp +3 -3
  82. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/basic_concurrent_channel.hpp +3 -3
  83. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/channel_traits.hpp +70 -0
  84. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/co_composed.hpp +146 -0
  85. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/coro.hpp +35 -5
  86. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_handler.hpp +13 -3
  87. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_operation.hpp +7 -0
  88. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_service.hpp +180 -0
  89. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/coro_completion_handler.hpp +171 -0
  90. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/coro_promise_allocator.hpp +89 -66
  91. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/partial_promise.hpp +66 -45
  92. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/as_single.hpp +13 -3
  93. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/co_composed.hpp +1134 -0
  94. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/coro.hpp +130 -106
  95. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/parallel_group.hpp +377 -3
  96. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/promise.hpp +168 -29
  97. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/use_coro.hpp +149 -203
  98. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/use_promise.hpp +68 -0
  99. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/parallel_group.hpp +256 -0
  100. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/promise.hpp +76 -80
  101. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/use_coro.hpp +40 -14
  102. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/use_promise.hpp +113 -0
  103. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/any_completion_executor.ipp +132 -0
  104. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/any_io_executor.ipp +12 -0
  105. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/append.hpp +12 -3
  106. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/as_tuple.hpp +12 -3
  107. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/buffered_read_stream.hpp +25 -6
  108. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/buffered_write_stream.hpp +25 -6
  109. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/co_spawn.hpp +34 -45
  110. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/connect.hpp +28 -6
  111. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/consign.hpp +204 -0
  112. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/defer.hpp +33 -1
  113. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/deferred.hpp +13 -3
  114. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/dispatch.hpp +21 -9
  115. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/handler_alloc_hook.ipp +1 -1
  116. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/post.hpp +33 -1
  117. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/prepend.hpp +12 -3
  118. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read.hpp +40 -9
  119. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_at.hpp +27 -6
  120. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_until.hpp +104 -24
  121. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/redirect_error.hpp +12 -3
  122. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/spawn.hpp +70 -15
  123. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/src.hpp +1 -0
  124. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/use_future.hpp +25 -0
  125. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/write.hpp +38 -30
  126. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/write_at.hpp +27 -6
  127. data/src/cxx_supportlib/vendor-modified/boost/asio/io_context.hpp +0 -13
  128. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/network_v4.ipp +3 -1
  129. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/network_v6.ipp +3 -1
  130. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/basic_descriptor.hpp +2 -2
  131. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/basic_stream_descriptor.hpp +2 -2
  132. data/src/cxx_supportlib/vendor-modified/boost/asio/post.hpp +17 -18
  133. data/src/cxx_supportlib/vendor-modified/boost/asio/spawn.hpp +3 -1
  134. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/io.hpp +13 -3
  135. data/src/cxx_supportlib/vendor-modified/boost/asio/strand.hpp +11 -7
  136. data/src/cxx_supportlib/vendor-modified/boost/asio/system_executor.hpp +0 -13
  137. data/src/cxx_supportlib/vendor-modified/boost/asio/thread_pool.hpp +23 -18
  138. data/src/cxx_supportlib/vendor-modified/boost/asio/version.hpp +1 -1
  139. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_object_handle.hpp +2 -2
  140. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_overlapped_handle.hpp +1 -1
  141. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_random_access_handle.hpp +2 -2
  142. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_stream_handle.hpp +2 -2
  143. data/src/cxx_supportlib/vendor-modified/boost/asio.hpp +4 -0
  144. data/src/cxx_supportlib/vendor-modified/boost/bind/bind.hpp +1 -1
  145. data/src/cxx_supportlib/vendor-modified/boost/chrono/config.hpp +1 -0
  146. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/mac/chrono.hpp +4 -4
  147. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/scan_keyword.hpp +4 -2
  148. data/src/cxx_supportlib/vendor-modified/boost/chrono/duration.hpp +2 -2
  149. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/duration_io.hpp +3 -3
  150. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/duration_put.hpp +5 -5
  151. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/duration_units.hpp +2 -2
  152. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/time_point_io.hpp +2 -2
  153. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/utility/ios_base_state_ptr.hpp +7 -7
  154. data/src/cxx_supportlib/vendor-modified/boost/chrono/time_point.hpp +1 -1
  155. data/src/cxx_supportlib/vendor-modified/boost/circular_buffer/details.hpp +5 -1
  156. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/clang.hpp +10 -3
  157. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/clang_version.hpp +9 -3
  158. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/gcc.hpp +9 -3
  159. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/sunpro_cc.hpp +6 -0
  160. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/visualc.hpp +8 -0
  161. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/xlcpp.hpp +4 -0
  162. data/src/cxx_supportlib/vendor-modified/boost/config/detail/suffix.hpp +33 -0
  163. data/src/cxx_supportlib/vendor-modified/boost/config/header_deprecated.hpp +1 -1
  164. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libcpp.hpp +9 -0
  165. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libstdcpp3.hpp +4 -2
  166. data/src/cxx_supportlib/vendor-modified/boost/container/allocator.hpp +1 -1
  167. data/src/cxx_supportlib/vendor-modified/boost/container/container_fwd.hpp +29 -0
  168. data/src/cxx_supportlib/vendor-modified/boost/container/deque.hpp +13 -13
  169. data/src/cxx_supportlib/vendor-modified/boost/container/detail/advanced_insert_int.hpp +80 -95
  170. data/src/cxx_supportlib/vendor-modified/boost/container/detail/config_begin.hpp +10 -0
  171. data/src/cxx_supportlib/vendor-modified/boost/container/detail/config_end.hpp +3 -0
  172. data/src/cxx_supportlib/vendor-modified/boost/container/detail/copy_move_algo.hpp +738 -34
  173. data/src/cxx_supportlib/vendor-modified/boost/container/detail/destroyers.hpp +38 -10
  174. data/src/cxx_supportlib/vendor-modified/boost/container/detail/flat_tree.hpp +1 -0
  175. data/src/cxx_supportlib/vendor-modified/boost/container/detail/iterator.hpp +2 -0
  176. data/src/cxx_supportlib/vendor-modified/boost/container/detail/workaround.hpp +3 -4
  177. data/src/cxx_supportlib/vendor-modified/boost/container/devector.hpp +1150 -1213
  178. data/src/cxx_supportlib/vendor-modified/boost/container/node_allocator.hpp +1 -1
  179. data/src/cxx_supportlib/vendor-modified/boost/container/options.hpp +104 -12
  180. data/src/cxx_supportlib/vendor-modified/boost/container/stable_vector.hpp +1 -0
  181. data/src/cxx_supportlib/vendor-modified/boost/container/string.hpp +11 -1
  182. data/src/cxx_supportlib/vendor-modified/boost/container/vector.hpp +31 -331
  183. data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/hash_mix.hpp +113 -0
  184. data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/hash_range.hpp +173 -0
  185. data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/hash_tuple.hpp +133 -0
  186. data/src/cxx_supportlib/vendor-modified/boost/container_hash/hash.hpp +461 -566
  187. data/src/cxx_supportlib/vendor-modified/boost/container_hash/hash_fwd.hpp +24 -24
  188. data/src/cxx_supportlib/vendor-modified/boost/container_hash/is_contiguous_range.hpp +91 -0
  189. data/src/cxx_supportlib/vendor-modified/boost/container_hash/is_described_class.hpp +38 -0
  190. data/src/cxx_supportlib/vendor-modified/boost/container_hash/is_range.hpp +73 -0
  191. data/src/cxx_supportlib/vendor-modified/boost/container_hash/is_unordered_range.hpp +39 -0
  192. data/src/cxx_supportlib/vendor-modified/boost/core/bit.hpp +32 -4
  193. data/src/cxx_supportlib/vendor-modified/boost/core/detail/string_view.hpp +16 -0
  194. data/src/cxx_supportlib/vendor-modified/boost/core/empty_value.hpp +16 -16
  195. data/src/cxx_supportlib/vendor-modified/boost/core/fclose_deleter.hpp +46 -0
  196. data/src/cxx_supportlib/vendor-modified/boost/date_time/date.hpp +1 -1
  197. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/formatters.hpp +3 -3
  198. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/formatters_limited.hpp +3 -3
  199. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_date.hpp +12 -13
  200. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/parsers.hpp +2 -2
  201. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian_calendar.ipp +2 -2
  202. data/src/cxx_supportlib/vendor-modified/boost/date_time/iso_format.hpp +13 -13
  203. data/src/cxx_supportlib/vendor-modified/boost/date_time/local_time/local_date_time.hpp +2 -2
  204. data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/time_formatters.hpp +4 -4
  205. data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/time_formatters_limited.hpp +2 -2
  206. data/src/cxx_supportlib/vendor-modified/boost/date_time/special_values_parser.hpp +1 -1
  207. data/src/cxx_supportlib/vendor-modified/boost/date_time/time_facet.hpp +1 -1
  208. data/src/cxx_supportlib/vendor-modified/boost/date_time/time_parsing.hpp +2 -2
  209. data/src/cxx_supportlib/vendor-modified/boost/describe/bases.hpp +50 -0
  210. data/src/cxx_supportlib/vendor-modified/boost/describe/detail/config.hpp +40 -0
  211. data/src/cxx_supportlib/vendor-modified/boost/describe/detail/cx_streq.hpp +30 -0
  212. data/src/cxx_supportlib/vendor-modified/boost/describe/detail/void_t.hpp +32 -0
  213. data/src/cxx_supportlib/vendor-modified/boost/describe/members.hpp +159 -0
  214. data/src/cxx_supportlib/vendor-modified/boost/describe/modifiers.hpp +33 -0
  215. data/src/cxx_supportlib/vendor-modified/boost/intrusive/avltree_algorithms.hpp +9 -9
  216. data/src/cxx_supportlib/vendor-modified/boost/intrusive/bstree_algorithms.hpp +45 -45
  217. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/any_node_and_algorithms.hpp +8 -8
  218. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/bstree_algorithms_base.hpp +37 -38
  219. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/iterator.hpp +16 -0
  220. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/workaround.hpp +1 -1
  221. data/src/cxx_supportlib/vendor-modified/boost/intrusive/hashtable.hpp +145 -90
  222. data/src/cxx_supportlib/vendor-modified/boost/intrusive/pack_options.hpp +2 -0
  223. data/src/cxx_supportlib/vendor-modified/boost/intrusive/rbtree_algorithms.hpp +7 -7
  224. data/src/cxx_supportlib/vendor-modified/boost/intrusive/sgtree_algorithms.hpp +5 -5
  225. data/src/cxx_supportlib/vendor-modified/boost/intrusive/splaytree_algorithms.hpp +11 -9
  226. data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap_algorithms.hpp +7 -7
  227. data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_facade.hpp +106 -25
  228. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical_streams.hpp +1 -1
  229. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_numeric.hpp +8 -5
  230. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_unsigned_converters.hpp +1 -1
  231. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/adaptive_sort_merge.hpp +4 -2
  232. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/pdqsort.hpp +2 -1
  233. data/src/cxx_supportlib/vendor-modified/boost/move/detail/type_traits.hpp +8 -4
  234. data/src/cxx_supportlib/vendor-modified/boost/mp11/bind.hpp +111 -0
  235. data/src/cxx_supportlib/vendor-modified/boost/mp11/version.hpp +1 -1
  236. data/src/cxx_supportlib/vendor-modified/boost/numeric/conversion/detail/int_float_mixture.hpp +5 -5
  237. data/src/cxx_supportlib/vendor-modified/boost/numeric/conversion/detail/sign_mixture.hpp +5 -5
  238. data/src/cxx_supportlib/vendor-modified/boost/numeric/conversion/detail/udt_builtin_mixture.hpp +5 -5
  239. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/variadic/has_opt.hpp +6 -2
  240. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock_gcc_atomic.hpp +11 -2
  241. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/intrusive_ptr.hpp +1 -1
  242. data/src/cxx_supportlib/vendor-modified/boost/system/detail/config.hpp +7 -1
  243. data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_category.hpp +2 -2
  244. data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_category_impl.hpp +10 -1
  245. data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_code.hpp +38 -43
  246. data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_condition.hpp +52 -0
  247. data/src/cxx_supportlib/vendor-modified/boost/throw_exception.hpp +1 -1
  248. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_function_ptr_helper.hpp +27 -27
  249. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp +27 -27
  250. data/src/cxx_supportlib/vendor-modified/boost/type_traits/intrinsics.hpp +22 -8
  251. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/fca.hpp +37 -7
  252. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa.hpp +1921 -0
  253. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/implementation.hpp +66 -82
  254. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/prime_fmod.hpp +6 -0
  255. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/type_traits.hpp +109 -0
  256. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/xmx.hpp +75 -0
  257. data/src/cxx_supportlib/vendor-modified/boost/unordered/hash_traits.hpp +45 -0
  258. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_map.hpp +732 -0
  259. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_map_fwd.hpp +49 -0
  260. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_set.hpp +586 -0
  261. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_set_fwd.hpp +49 -0
  262. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_map.hpp +166 -66
  263. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_set.hpp +145 -28
  264. data/src/cxx_supportlib/vendor-modified/boost/version.hpp +2 -2
  265. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/md5.hpp +1 -1
  266. data/src/ruby_native_extension/extconf.rb +1 -1
  267. data/src/ruby_supportlib/phusion_passenger/platform_info/operating_system.rb +1 -1
  268. data/src/ruby_supportlib/phusion_passenger.rb +5 -5
  269. metadata +36 -19
  270. data/src/cxx_supportlib/vendor-modified/boost/align/align.hpp +0 -19
  271. data/src/cxx_supportlib/vendor-modified/boost/align/alignment_of.hpp +0 -54
  272. data/src/cxx_supportlib/vendor-modified/boost/align/alignment_of_forward.hpp +0 -20
  273. data/src/cxx_supportlib/vendor-modified/boost/align/detail/align_cxx11.hpp +0 -21
  274. data/src/cxx_supportlib/vendor-modified/boost/align/detail/aligned_alloc.hpp +0 -52
  275. data/src/cxx_supportlib/vendor-modified/boost/align/detail/alignment_of.hpp +0 -31
  276. data/src/cxx_supportlib/vendor-modified/boost/align/detail/alignment_of_cxx11.hpp +0 -23
  277. data/src/cxx_supportlib/vendor-modified/boost/align/detail/element_type.hpp +0 -91
  278. data/src/cxx_supportlib/vendor-modified/boost/align/detail/integral_constant.hpp +0 -53
  279. data/src/cxx_supportlib/vendor-modified/boost/align/detail/min_size.hpp +0 -26
  280. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/completion_handler_erasure.hpp +0 -196
  281. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/compose.hpp +0 -709
  282. data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/float_functions.hpp +0 -336
  283. data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/hash_float.hpp +0 -271
  284. data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/limits.hpp +0 -62
  285. data/src/cxx_supportlib/vendor-modified/boost/container_hash/extensions.hpp +0 -361
  286. data/src/cxx_supportlib/vendor-modified/boost/detail/container_fwd.hpp +0 -157
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6ed286b35fe2afc9916972e242806d8ef6f38996
4
- data.tar.gz: d0286a8f800b66ebb734da79ef381e8886b8c542
3
+ metadata.gz: 4745b4abf125d1350bf6ea520477b1d8a1faae26
4
+ data.tar.gz: e3fe30496ed0567cd283f3ee96751c6baaa35f00
5
5
  SHA512:
6
- metadata.gz: 7c654ed76d439bdc87b06986fdd651d198c3f5334f589705a0d616545fff738b2f096962a437cdf65379bf6c9c809c833c8f9f19d604ef8fe0a64c4d5d345551
7
- data.tar.gz: c6a215512170735670e7a33ac43010cc02e72560aec30899154e2828cd7860ae3f83c4fc028d8c9556cde045deaf02e79a04b91a3458949582360b28ef2293bb
6
+ metadata.gz: f561f10cee769f11824a2c8bbd74d35b8305e22906682af51ec68819cc53fbeb27ce6a57fbe7022eff27adb4cd0dded348a2a7d7b3051ce8d11054c66a8e3f16
7
+ data.tar.gz: 97198581be7ab01b816beeab4b6e2cbd90182af418410cd298a3290c1ec2c97a1473c1ae63376e362337dd06e33e93e8ee5ba247d9935159dd4cafcaf4fb1211
data/CHANGELOG CHANGED
@@ -1,5 +1,26 @@
1
- Release 6.0.16 (Not yet released)
1
+ Release 6.0.17 (Not yet released)
2
+ -------------
3
+ * [Enterprise] The `debug` gem is now supported for debugging on Ruby 3.1.
4
+ * Removed use of deprecated 'File.exists?' method for Ruby 3.2.0.
5
+ * Upgrades Boost to 1.81.
6
+ * Upgrades preferred Nginx to 1.22.1 from 1.20.2.
7
+ * Changes minimum supported macOS version to 10.14 Mojave.
8
+ * Adds support for arm (aarch64) rpm packages.
9
+ * Adds support for a `PASSENGER_MAX_LOG_LINE_LENGTH_BYTES` environment variable. The default length remains at 8KB. Closes GH-2413.
10
+ * Updated various library versions used in precompiled binaries (used for e.g. gem installs):
11
+ - ccache: 4.6.3 → 4.7.4
12
+ - curl: 7.86.0 → 7.87.0
13
+ - git: 2.38.1 → 2.39.0
14
+ - gnupg: 2.3.8 → 2.4.0
15
+ - libksba: 1.6.2 → 1.6.3
16
+ - openssl: 1.1.1s → 3.0.7
17
+ - rubygems: 3.3.26 → 3.4.3
18
+ - rubies: added 3.2.0
19
+
20
+
21
+ Release 6.0.16
2
22
  -------------
23
+ * Adds ARM64 (aarch64) packages for Ubuntu and Debian.
3
24
  * Adds Ubuntu 22.10 "Kinetic" packages, removes Ubuntu 16.04 "Xenial" packages.
4
25
  * Adds systemd private tmpdir workaround on Ubuntu/Debian. Closes GH-2397.
5
26
  * Downgrade jsoncpp to 1.8.1 from 1.9.5 to fix invalid json generation bug. Closes GH-2445.
@@ -39,7 +39,7 @@ end
39
39
  dependencies = integration_test_dependencies(:_apache2)
40
40
  desc "Run Apache 2 integration tests"
41
41
  task 'test:integration:apache2' => dependencies do
42
- command = "bundle exec rspec -c -f s --tty integration_tests/apache2_tests.rb"
42
+ command = "bundle exec rspec -c -f d --tty integration_tests/apache2_tests.rb"
43
43
  if boolean_option('SUDO')
44
44
  command = "#{PlatformInfo.ruby_sudo_command} -E #{command}"
45
45
  end
@@ -52,7 +52,7 @@ end
52
52
  dependencies = integration_test_dependencies(:_nginx)
53
53
  desc "Run Nginx integration tests"
54
54
  task 'test:integration:nginx' => dependencies do
55
- command = "bundle exec rspec -c -f s --tty integration_tests/nginx_tests.rb"
55
+ command = "bundle exec rspec -c -f d --tty integration_tests/nginx_tests.rb"
56
56
  if boolean_option('SUDO')
57
57
  command = "#{PlatformInfo.ruby_sudo_command} -E #{command}"
58
58
  end
@@ -69,7 +69,7 @@ end
69
69
  dependencies = integration_test_dependencies(:_nginx)
70
70
  desc "Run Passenger Standalone integration tests"
71
71
  task 'test:integration:standalone' => dependencies do
72
- command = "bundle exec rspec -c -f s --tty integration_tests/standalone_tests.rb"
72
+ command = "bundle exec rspec -c -f d --tty integration_tests/standalone_tests.rb"
73
73
  if grep = string_option('E')
74
74
  command << " -e #{shesc grep}"
75
75
  end
@@ -78,7 +78,7 @@ end
78
78
 
79
79
  desc "Run native packaging tests"
80
80
  task 'test:integration:native_packaging' do
81
- command = "bundle exec rspec -c -f s --tty integration_tests/native_packaging_spec.rb"
81
+ command = "bundle exec rspec -c -f d --tty integration_tests/native_packaging_spec.rb"
82
82
  if boolean_option('SUDO')
83
83
  command = "#{PlatformInfo.ruby_sudo_command} -E #{command}"
84
84
  end
@@ -125,7 +125,7 @@ task 'test:restart' => dependencies do
125
125
  i = 1
126
126
  while true do
127
127
  puts "#{color_code_start}Test run #{i} (press Ctrl-C multiple times to abort)#{color_code_end}"
128
- command = "bundle exec rspec -c -f s --tty integration_tests/apache2_tests.rb"
128
+ command = "bundle exec rspec -c -f d --tty integration_tests/apache2_tests.rb"
129
129
  if grep = string_option('E')
130
130
  command << " -e #{shesc grep}"
131
131
  end
@@ -136,7 +136,7 @@ end
136
136
 
137
137
  desc "Run source packaging tests"
138
138
  task 'test:source_packaging' do
139
- command = 'bundle exec rspec -f s -c test/integration_tests/source_packaging_test.rb'
139
+ command = 'bundle exec rspec -f d -c test/integration_tests/source_packaging_test.rb'
140
140
  if grep = string_option('E')
141
141
  command << " -e #{shesc grep}"
142
142
  end
data/build/ruby_tests.rb CHANGED
@@ -30,6 +30,6 @@ task 'test:ruby' => dependencies do
30
30
  if maybe_grep = string_option('E')
31
31
  maybe_grep = "-e #{shesc maybe_grep}"
32
32
  end
33
- command = "rspec -c -f s --tty -P 'dont-autoload-anything' #{maybe_grep} ruby/*_spec.rb ruby/*/*_spec.rb"
33
+ command = "rspec -c -f d --tty -P 'dont-autoload-anything' #{maybe_grep} ruby/*_spec.rb ruby/*/*_spec.rb"
34
34
  sh "cd test && exec bundle exec #{command}"
35
35
  end
data/build/test_basics.rb CHANGED
@@ -72,7 +72,6 @@ task 'test:install_deps' do
72
72
  end
73
73
  end
74
74
 
75
-
76
75
  def bundler_too_old?
77
76
  `bundle --version` =~ /version (.+)/
78
77
  version = $1.split('.').map { |x| x.to_i }
@@ -165,7 +165,7 @@ using namespace std;
165
165
  * security_update_checker_interval unsigned integer - default(86400)
166
166
  * security_update_checker_proxy_url string - -
167
167
  * security_update_checker_url string - default("https://securitycheck.phusionpassenger.com/v1/check.json")
168
- * server_software string - default("Phusion_Passenger/6.0.16")
168
+ * server_software string - default("Phusion_Passenger/6.0.17")
169
169
  * show_version_in_header boolean - default(true)
170
170
  * single_app_mode_app_root string - default,read_only
171
171
  * single_app_mode_app_start_command string - read_only
@@ -116,7 +116,7 @@ parseControllerBenchmarkMode(const StaticString &mode) {
116
116
  * multi_app boolean - default(true),read_only
117
117
  * request_freelist_limit unsigned integer - default(1024)
118
118
  * response_buffer_high_watermark unsigned integer - default(134217728)
119
- * server_software string - default("Phusion_Passenger/6.0.16")
119
+ * server_software string - default("Phusion_Passenger/6.0.17")
120
120
  * show_version_in_header boolean - default(true)
121
121
  * start_reading_after_accept boolean - default(true)
122
122
  * stat_throttle_rate unsigned integer - default(10)
@@ -63,6 +63,8 @@ private:
63
63
  string logFile;
64
64
  boost::mutex startSyncher;
65
65
  boost::condition_variable startCond;
66
+ size_t bufSize;
67
+ char *buf;
66
68
 
67
69
  static void threadMain(boost::shared_ptr<PipeWatcher> self) {
68
70
  TRACE_POINT();
@@ -90,11 +92,12 @@ private:
90
92
 
91
93
  UPDATE_TRACE_POINT();
92
94
  while (!boost::this_thread::interruption_requested()) {
93
- char buf[1024 * 8];
94
95
  ssize_t ret;
96
+
97
+ buf[0] = '\0';
95
98
 
96
99
  UPDATE_TRACE_POINT();
97
- ret = syscalls::read(fd, buf, sizeof(buf));
100
+ ret = syscalls::read(fd, buf, bufSize);
98
101
  if (ret == 0) {
99
102
  break;
100
103
  } else if (ret == -1) {
@@ -150,14 +153,26 @@ public:
150
153
  appGroupName(_appGroupName),
151
154
  appLogFile(_appLogFile),
152
155
  pid(_pid),
153
- started(false)
156
+ started(false),
157
+ bufSize(1024 * 8),
158
+ buf(NULL)
154
159
  { }
155
160
 
161
+ ~PipeWatcher() {
162
+ delete[] buf;
163
+ }
164
+
156
165
  void setLogFile(const string &path) {
157
166
  logFile = path;
158
167
  }
159
168
 
160
169
  void initialize() {
170
+ const char *envMaxLogBytes = getenv("PASSENGER_MAX_LOG_LINE_LENGTH_BYTES");
171
+ if (envMaxLogBytes != NULL && *envMaxLogBytes != '\0') {
172
+ bufSize = atoi(envMaxLogBytes);
173
+ }
174
+ buf = new char[bufSize];
175
+
161
176
  oxt::thread(boost::bind(threadMain, shared_from_this()),
162
177
  "PipeWatcher: PID " + toString(pid) + " " + name + ", fd " + toString(fd),
163
178
  POOL_HELPER_THREAD_STACK_SIZE);
@@ -154,7 +154,7 @@ using namespace std;
154
154
  * security_update_checker_interval unsigned integer - default(86400)
155
155
  * security_update_checker_proxy_url string - -
156
156
  * security_update_checker_url string - default("https://securitycheck.phusionpassenger.com/v1/check.json")
157
- * server_software string - default("Phusion_Passenger/6.0.16")
157
+ * server_software string - default("Phusion_Passenger/6.0.17")
158
158
  * setsid boolean - default(false)
159
159
  * show_version_in_header boolean - default(true)
160
160
  * single_app_mode_app_root string - default,read_only
@@ -83,7 +83,7 @@
83
83
  #define PASSENGER_API_VERSION_MAJOR 0
84
84
  #define PASSENGER_API_VERSION_MINOR 3
85
85
  #define PASSENGER_DEFAULT_USER "nobody"
86
- #define PASSENGER_VERSION "6.0.16"
86
+ #define PASSENGER_VERSION "6.0.17"
87
87
  #define POOL_HELPER_THREAD_STACK_SIZE 262144
88
88
  #define PROCESS_SHUTDOWN_TIMEOUT 60
89
89
  #define PROCESS_SHUTDOWN_TIMEOUT_DISPLAY "1 minute"
@@ -38,7 +38,7 @@ Distributed under the Boost Software License, Version 1.0.
38
38
  #include <boost/align/detail/aligned_alloc_posix.hpp>
39
39
  #elif defined(sun) || defined(__sun)
40
40
  #include <boost/align/detail/aligned_alloc_sunos.hpp>
41
- #elif (_POSIX_C_SOURCE >= 200112L) || (_XOPEN_SOURCE >= 600)
41
+ #elif defined(_POSIX_VERSION)
42
42
  #include <boost/align/detail/aligned_alloc_posix.hpp>
43
43
  #else
44
44
  #include <boost/align/detail/aligned_alloc.hpp>
@@ -44,8 +44,8 @@
44
44
  #include <iterator>
45
45
  #include <stdexcept>
46
46
  #include <boost/assert.hpp>
47
+ #include <boost/core/swap.hpp>
47
48
  #include <boost/static_assert.hpp>
48
- #include <boost/swap.hpp>
49
49
 
50
50
  #include <boost/throw_exception.hpp>
51
51
  #include <algorithm>
@@ -0,0 +1,344 @@
1
+ //
2
+ // any_completion_executor.hpp
3
+ // ~~~~~~~~~~~~~~~~~~~~~~~~~~~
4
+ //
5
+ // Copyright (c) 2003-2022 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6
+ //
7
+ // Distributed under the Boost Software License, Version 1.0. (See accompanying
8
+ // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9
+ //
10
+
11
+ #ifndef BOOST_ASIO_ANY_COMPLETION_EXECUTOR_HPP
12
+ #define BOOST_ASIO_ANY_COMPLETION_EXECUTOR_HPP
13
+
14
+ #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15
+ # pragma once
16
+ #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17
+
18
+ #include <boost/asio/detail/config.hpp>
19
+ #if defined(BOOST_ASIO_USE_TS_EXECUTOR_AS_DEFAULT)
20
+ # include <boost/asio/executor.hpp>
21
+ #else // defined(BOOST_ASIO_USE_TS_EXECUTOR_AS_DEFAULT)
22
+ # include <boost/asio/execution.hpp>
23
+ #endif // defined(BOOST_ASIO_USE_TS_EXECUTOR_AS_DEFAULT)
24
+
25
+ #include <boost/asio/detail/push_options.hpp>
26
+
27
+ namespace boost {
28
+ namespace asio {
29
+
30
+ #if defined(BOOST_ASIO_USE_TS_EXECUTOR_AS_DEFAULT)
31
+
32
+ typedef executor any_completion_executor;
33
+
34
+ #else // defined(BOOST_ASIO_USE_TS_EXECUTOR_AS_DEFAULT)
35
+
36
+ /// Polymorphic executor type for use with I/O objects.
37
+ /**
38
+ * The @c any_completion_executor type is a polymorphic executor that supports
39
+ * the set of properties required for the execution of completion handlers. It
40
+ * is defined as the execution::any_executor class template parameterised as
41
+ * follows:
42
+ * @code execution::any_executor<
43
+ * execution::prefer_only<execution::outstanding_work_t::tracked_t>,
44
+ * execution::prefer_only<execution::outstanding_work_t::untracked_t>
45
+ * execution::prefer_only<execution::relationship_t::fork_t>,
46
+ * execution::prefer_only<execution::relationship_t::continuation_t>
47
+ * > @endcode
48
+ */
49
+ class any_completion_executor :
50
+ #if defined(GENERATING_DOCUMENTATION)
51
+ public execution::any_executor<...>
52
+ #else // defined(GENERATING_DOCUMENTATION)
53
+ public execution::any_executor<
54
+ execution::prefer_only<execution::outstanding_work_t::tracked_t>,
55
+ execution::prefer_only<execution::outstanding_work_t::untracked_t>,
56
+ execution::prefer_only<execution::relationship_t::fork_t>,
57
+ execution::prefer_only<execution::relationship_t::continuation_t>
58
+ >
59
+ #endif // defined(GENERATING_DOCUMENTATION)
60
+ {
61
+ public:
62
+ #if !defined(GENERATING_DOCUMENTATION)
63
+ typedef execution::any_executor<
64
+ execution::prefer_only<execution::outstanding_work_t::tracked_t>,
65
+ execution::prefer_only<execution::outstanding_work_t::untracked_t>,
66
+ execution::prefer_only<execution::relationship_t::fork_t>,
67
+ execution::prefer_only<execution::relationship_t::continuation_t>
68
+ > base_type;
69
+
70
+ typedef void supportable_properties_type(
71
+ execution::prefer_only<execution::outstanding_work_t::tracked_t>,
72
+ execution::prefer_only<execution::outstanding_work_t::untracked_t>,
73
+ execution::prefer_only<execution::relationship_t::fork_t>,
74
+ execution::prefer_only<execution::relationship_t::continuation_t>
75
+ );
76
+ #endif // !defined(GENERATING_DOCUMENTATION)
77
+
78
+ /// Default constructor.
79
+ BOOST_ASIO_DECL any_completion_executor() BOOST_ASIO_NOEXCEPT;
80
+
81
+ /// Construct in an empty state. Equivalent effects to default constructor.
82
+ BOOST_ASIO_DECL any_completion_executor(nullptr_t) BOOST_ASIO_NOEXCEPT;
83
+
84
+ /// Copy constructor.
85
+ BOOST_ASIO_DECL any_completion_executor(
86
+ const any_completion_executor& e) BOOST_ASIO_NOEXCEPT;
87
+
88
+ #if defined(BOOST_ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION)
89
+ /// Move constructor.
90
+ BOOST_ASIO_DECL any_completion_executor(
91
+ any_completion_executor&& e) BOOST_ASIO_NOEXCEPT;
92
+ #endif // defined(BOOST_ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION)
93
+
94
+ /// Construct to point to the same target as another any_executor.
95
+ #if defined(GENERATING_DOCUMENTATION)
96
+ template <class... OtherSupportableProperties>
97
+ any_completion_executor(
98
+ execution::any_executor<OtherSupportableProperties...> e);
99
+ #else // defined(GENERATING_DOCUMENTATION)
100
+ template <typename OtherAnyExecutor>
101
+ any_completion_executor(OtherAnyExecutor e,
102
+ typename constraint<
103
+ conditional<
104
+ !is_same<OtherAnyExecutor, any_completion_executor>::value
105
+ && is_base_of<execution::detail::any_executor_base,
106
+ OtherAnyExecutor>::value,
107
+ typename execution::detail::supportable_properties<
108
+ 0, supportable_properties_type>::template
109
+ is_valid_target<OtherAnyExecutor>,
110
+ false_type
111
+ >::type::value
112
+ >::type = 0)
113
+ : base_type(BOOST_ASIO_MOVE_CAST(OtherAnyExecutor)(e))
114
+ {
115
+ }
116
+ #endif // defined(GENERATING_DOCUMENTATION)
117
+
118
+ /// Construct to point to the same target as another any_executor.
119
+ #if defined(GENERATING_DOCUMENTATION)
120
+ template <class... OtherSupportableProperties>
121
+ any_completion_executor(std::nothrow_t,
122
+ execution::any_executor<OtherSupportableProperties...> e);
123
+ #else // defined(GENERATING_DOCUMENTATION)
124
+ template <typename OtherAnyExecutor>
125
+ any_completion_executor(std::nothrow_t, OtherAnyExecutor e,
126
+ typename constraint<
127
+ conditional<
128
+ !is_same<OtherAnyExecutor, any_completion_executor>::value
129
+ && is_base_of<execution::detail::any_executor_base,
130
+ OtherAnyExecutor>::value,
131
+ typename execution::detail::supportable_properties<
132
+ 0, supportable_properties_type>::template
133
+ is_valid_target<OtherAnyExecutor>,
134
+ false_type
135
+ >::type::value
136
+ >::type = 0) BOOST_ASIO_NOEXCEPT
137
+ : base_type(std::nothrow, BOOST_ASIO_MOVE_CAST(OtherAnyExecutor)(e))
138
+ {
139
+ }
140
+ #endif // defined(GENERATING_DOCUMENTATION)
141
+
142
+ /// Construct to point to the same target as another any_executor.
143
+ BOOST_ASIO_DECL any_completion_executor(std::nothrow_t,
144
+ const any_completion_executor& e) BOOST_ASIO_NOEXCEPT;
145
+
146
+ #if defined(BOOST_ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION)
147
+ /// Construct to point to the same target as another any_executor.
148
+ BOOST_ASIO_DECL any_completion_executor(std::nothrow_t,
149
+ any_completion_executor&& e) BOOST_ASIO_NOEXCEPT;
150
+ #endif // defined(BOOST_ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION)
151
+
152
+ /// Construct a polymorphic wrapper for the specified executor.
153
+ #if defined(GENERATING_DOCUMENTATION)
154
+ template <BOOST_ASIO_EXECUTION_EXECUTOR Executor>
155
+ any_completion_executor(Executor e);
156
+ #else // defined(GENERATING_DOCUMENTATION)
157
+ template <BOOST_ASIO_EXECUTION_EXECUTOR Executor>
158
+ any_completion_executor(Executor e,
159
+ typename constraint<
160
+ conditional<
161
+ !is_same<Executor, any_completion_executor>::value
162
+ && !is_base_of<execution::detail::any_executor_base,
163
+ Executor>::value,
164
+ execution::detail::is_valid_target_executor<
165
+ Executor, supportable_properties_type>,
166
+ false_type
167
+ >::type::value
168
+ >::type = 0)
169
+ : base_type(BOOST_ASIO_MOVE_CAST(Executor)(e))
170
+ {
171
+ }
172
+ #endif // defined(GENERATING_DOCUMENTATION)
173
+
174
+ /// Construct a polymorphic wrapper for the specified executor.
175
+ #if defined(GENERATING_DOCUMENTATION)
176
+ template <BOOST_ASIO_EXECUTION_EXECUTOR Executor>
177
+ any_completion_executor(std::nothrow_t, Executor e);
178
+ #else // defined(GENERATING_DOCUMENTATION)
179
+ template <BOOST_ASIO_EXECUTION_EXECUTOR Executor>
180
+ any_completion_executor(std::nothrow_t, Executor e,
181
+ typename constraint<
182
+ conditional<
183
+ !is_same<Executor, any_completion_executor>::value
184
+ && !is_base_of<execution::detail::any_executor_base,
185
+ Executor>::value,
186
+ execution::detail::is_valid_target_executor<
187
+ Executor, supportable_properties_type>,
188
+ false_type
189
+ >::type::value
190
+ >::type = 0) BOOST_ASIO_NOEXCEPT
191
+ : base_type(std::nothrow, BOOST_ASIO_MOVE_CAST(Executor)(e))
192
+ {
193
+ }
194
+ #endif // defined(GENERATING_DOCUMENTATION)
195
+
196
+ /// Assignment operator.
197
+ BOOST_ASIO_DECL any_completion_executor& operator=(
198
+ const any_completion_executor& e) BOOST_ASIO_NOEXCEPT;
199
+
200
+ #if defined(BOOST_ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION)
201
+ /// Move assignment operator.
202
+ BOOST_ASIO_DECL any_completion_executor& operator=(
203
+ any_completion_executor&& e) BOOST_ASIO_NOEXCEPT;
204
+ #endif // defined(BOOST_ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION)
205
+
206
+ /// Assignment operator that sets the polymorphic wrapper to the empty state.
207
+ BOOST_ASIO_DECL any_completion_executor& operator=(nullptr_t);
208
+
209
+ /// Destructor.
210
+ BOOST_ASIO_DECL ~any_completion_executor();
211
+
212
+ /// Swap targets with another polymorphic wrapper.
213
+ BOOST_ASIO_DECL void swap(any_completion_executor& other) BOOST_ASIO_NOEXCEPT;
214
+
215
+ /// Obtain a polymorphic wrapper with the specified property.
216
+ /**
217
+ * Do not call this function directly. It is intended for use with the
218
+ * boost::asio::require and boost::asio::prefer customisation points.
219
+ *
220
+ * For example:
221
+ * @code any_completion_executor ex = ...;
222
+ * auto ex2 = boost::asio::require(ex, execution::relationship.fork); @endcode
223
+ */
224
+ template <typename Property>
225
+ any_completion_executor require(const Property& p,
226
+ typename constraint<
227
+ traits::require_member<const base_type&, const Property&>::is_valid
228
+ >::type = 0) const
229
+ {
230
+ return static_cast<const base_type&>(*this).require(p);
231
+ }
232
+
233
+ /// Obtain a polymorphic wrapper with the specified property.
234
+ /**
235
+ * Do not call this function directly. It is intended for use with the
236
+ * boost::asio::prefer customisation point.
237
+ *
238
+ * For example:
239
+ * @code any_completion_executor ex = ...;
240
+ * auto ex2 = boost::asio::prefer(ex, execution::relationship.fork); @endcode
241
+ */
242
+ template <typename Property>
243
+ any_completion_executor prefer(const Property& p,
244
+ typename constraint<
245
+ traits::prefer_member<const base_type&, const Property&>::is_valid
246
+ >::type = 0) const
247
+ {
248
+ return static_cast<const base_type&>(*this).prefer(p);
249
+ }
250
+ };
251
+
252
+ #if !defined(GENERATING_DOCUMENTATION)
253
+
254
+ template <>
255
+ BOOST_ASIO_DECL any_completion_executor any_completion_executor::prefer(
256
+ const execution::outstanding_work_t::tracked_t&, int) const;
257
+
258
+ template <>
259
+ BOOST_ASIO_DECL any_completion_executor any_completion_executor::prefer(
260
+ const execution::outstanding_work_t::untracked_t&, int) const;
261
+
262
+ template <>
263
+ BOOST_ASIO_DECL any_completion_executor any_completion_executor::prefer(
264
+ const execution::relationship_t::fork_t&, int) const;
265
+
266
+ template <>
267
+ BOOST_ASIO_DECL any_completion_executor any_completion_executor::prefer(
268
+ const execution::relationship_t::continuation_t&, int) const;
269
+
270
+ namespace traits {
271
+
272
+ #if !defined(BOOST_ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT)
273
+
274
+ template <>
275
+ struct equality_comparable<any_completion_executor>
276
+ {
277
+ static const bool is_valid = true;
278
+ static const bool is_noexcept = true;
279
+ };
280
+
281
+ #endif // !defined(BOOST_ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT)
282
+
283
+ #if !defined(BOOST_ASIO_HAS_DEDUCED_EXECUTE_MEMBER_TRAIT)
284
+
285
+ template <typename F>
286
+ struct execute_member<any_completion_executor, F>
287
+ {
288
+ static const bool is_valid = true;
289
+ static const bool is_noexcept = false;
290
+ typedef void result_type;
291
+ };
292
+
293
+ #endif // !defined(BOOST_ASIO_HAS_DEDUCED_EXECUTE_MEMBER_TRAIT)
294
+
295
+ #if !defined(BOOST_ASIO_HAS_DEDUCED_QUERY_MEMBER_TRAIT)
296
+
297
+ template <typename Prop>
298
+ struct query_member<any_completion_executor, Prop> :
299
+ query_member<any_completion_executor::base_type, Prop>
300
+ {
301
+ };
302
+
303
+ #endif // !defined(BOOST_ASIO_HAS_DEDUCED_QUERY_MEMBER_TRAIT)
304
+
305
+ #if !defined(BOOST_ASIO_HAS_DEDUCED_REQUIRE_MEMBER_TRAIT)
306
+
307
+ template <typename Prop>
308
+ struct require_member<any_completion_executor, Prop> :
309
+ require_member<any_completion_executor::base_type, Prop>
310
+ {
311
+ typedef any_completion_executor result_type;
312
+ };
313
+
314
+ #endif // !defined(BOOST_ASIO_HAS_DEDUCED_REQUIRE_MEMBER_TRAIT)
315
+
316
+ #if !defined(BOOST_ASIO_HAS_DEDUCED_PREFER_MEMBER_TRAIT)
317
+
318
+ template <typename Prop>
319
+ struct prefer_member<any_completion_executor, Prop> :
320
+ prefer_member<any_completion_executor::base_type, Prop>
321
+ {
322
+ typedef any_completion_executor result_type;
323
+ };
324
+
325
+ #endif // !defined(BOOST_ASIO_HAS_DEDUCED_PREFER_MEMBER_TRAIT)
326
+
327
+ } // namespace traits
328
+
329
+ #endif // !defined(GENERATING_DOCUMENTATION)
330
+
331
+ #endif // defined(BOOST_ASIO_USE_TS_EXECUTOR_AS_DEFAULT)
332
+
333
+ } // namespace asio
334
+ } // namespace boost
335
+
336
+ #include <boost/asio/detail/pop_options.hpp>
337
+
338
+ #if defined(BOOST_ASIO_HEADER_ONLY) \
339
+ && !defined(BOOST_ASIO_USE_TS_EXECUTOR_AS_DEFAULT)
340
+ # include <boost/asio/impl/any_completion_executor.ipp>
341
+ #endif // defined(BOOST_ASIO_HEADER_ONLY)
342
+ // && !defined(BOOST_ASIO_USE_TS_EXECUTOR_AS_DEFAULT)
343
+
344
+ #endif // BOOST_ASIO_ANY_COMPLETION_EXECUTOR_HPP