passenger 6.0.15 → 6.0.17

Sign up to get free protection for your applications and to get access to all the features.
Files changed (292) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG +46 -2
  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/jsoncpp/json-forwards.h +143 -261
  266. data/src/cxx_supportlib/vendor-modified/jsoncpp/json.h +763 -947
  267. data/src/cxx_supportlib/vendor-modified/jsoncpp/jsoncpp.cpp +1477 -1487
  268. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/md5.hpp +1 -1
  269. data/src/ruby_native_extension/extconf.rb +1 -1
  270. data/src/ruby_supportlib/phusion_passenger/packaging.rb +1 -0
  271. data/src/ruby_supportlib/phusion_passenger/platform_info/apache.rb +3 -2
  272. data/src/ruby_supportlib/phusion_passenger/platform_info/binary_compatibility.rb +1 -1
  273. data/src/ruby_supportlib/phusion_passenger/platform_info/operating_system.rb +5 -5
  274. data/src/ruby_supportlib/phusion_passenger.rb +5 -5
  275. metadata +36 -19
  276. data/src/cxx_supportlib/vendor-modified/boost/align/align.hpp +0 -19
  277. data/src/cxx_supportlib/vendor-modified/boost/align/alignment_of.hpp +0 -54
  278. data/src/cxx_supportlib/vendor-modified/boost/align/alignment_of_forward.hpp +0 -20
  279. data/src/cxx_supportlib/vendor-modified/boost/align/detail/align_cxx11.hpp +0 -21
  280. data/src/cxx_supportlib/vendor-modified/boost/align/detail/aligned_alloc.hpp +0 -52
  281. data/src/cxx_supportlib/vendor-modified/boost/align/detail/alignment_of.hpp +0 -31
  282. data/src/cxx_supportlib/vendor-modified/boost/align/detail/alignment_of_cxx11.hpp +0 -23
  283. data/src/cxx_supportlib/vendor-modified/boost/align/detail/element_type.hpp +0 -91
  284. data/src/cxx_supportlib/vendor-modified/boost/align/detail/integral_constant.hpp +0 -53
  285. data/src/cxx_supportlib/vendor-modified/boost/align/detail/min_size.hpp +0 -26
  286. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/completion_handler_erasure.hpp +0 -196
  287. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/compose.hpp +0 -709
  288. data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/float_functions.hpp +0 -336
  289. data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/hash_float.hpp +0 -271
  290. data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/limits.hpp +0 -62
  291. data/src/cxx_supportlib/vendor-modified/boost/container_hash/extensions.hpp +0 -361
  292. data/src/cxx_supportlib/vendor-modified/boost/detail/container_fwd.hpp +0 -157
@@ -371,6 +371,17 @@
371
371
  # endif // defined(BOOST_ASIO_MSVC)
372
372
  # endif // !defined(BOOST_ASIO_DISABLE_DECLTYPE)
373
373
  #endif // !defined(BOOST_ASIO_HAS_DECLTYPE)
374
+ #if defined(BOOST_ASIO_HAS_DECLTYPE)
375
+ # define BOOST_ASIO_AUTO_RETURN_TYPE_PREFIX(t) auto
376
+ # define BOOST_ASIO_AUTO_RETURN_TYPE_PREFIX2(t0, t1) auto
377
+ # define BOOST_ASIO_AUTO_RETURN_TYPE_PREFIX3(t0, t1, t2) auto
378
+ # define BOOST_ASIO_AUTO_RETURN_TYPE_SUFFIX(expr) -> decltype expr
379
+ #else // defined(BOOST_ASIO_HAS_DECLTYPE)
380
+ # define BOOST_ASIO_AUTO_RETURN_TYPE_PREFIX(t) t
381
+ # define BOOST_ASIO_AUTO_RETURN_TYPE_PREFIX2(t0, t1) t0, t1
382
+ # define BOOST_ASIO_AUTO_RETURN_TYPE_PREFIX3(t0, t1, t2) t0, t1, t2
383
+ # define BOOST_ASIO_AUTO_RETURN_TYPE_SUFFIX(expr)
384
+ #endif // defined(BOOST_ASIO_HAS_DECLTYPE)
374
385
 
375
386
  // Support alias templates on compilers known to allow it.
376
387
  #if !defined(BOOST_ASIO_HAS_ALIAS_TEMPLATES)
@@ -407,7 +418,11 @@
407
418
  # if (__cpp_return_type_deduction >= 201304)
408
419
  # define BOOST_ASIO_HAS_RETURN_TYPE_DEDUCTION 1
409
420
  # endif // (__cpp_return_type_deduction >= 201304)
410
- # endif // defined(__cpp_return_type_deduction)
421
+ # elif defined(BOOST_ASIO_MSVC)
422
+ # if (_MSC_VER >= 1900 && _MSVC_LANG >= 201402)
423
+ # define BOOST_ASIO_HAS_RETURN_TYPE_DEDUCTION 1
424
+ # endif // (_MSC_VER >= 1900 && _MSVC_LANG >= 201402)
425
+ # endif // defined(BOOST_ASIO_MSVC)
411
426
  # endif // !defined(BOOST_ASIO_DISABLE_RETURN_TYPE_DEDUCTION)
412
427
  #endif // !defined(BOOST_ASIO_HAS_RETURN_TYPE_DEDUCTION)
413
428
 
@@ -675,6 +690,30 @@
675
690
  # endif // !defined(BOOST_ASIO_DISABLE_STD_ALIGNED_ALLOC)
676
691
  #endif // !defined(BOOST_ASIO_HAS_STD_ALIGNED_ALLOC)
677
692
 
693
+ // Standard library support for std::align.
694
+ #if !defined(BOOST_ASIO_HAS_STD_ALIGN)
695
+ # if !defined(BOOST_ASIO_DISABLE_STD_ALIGN)
696
+ # if defined(__clang__)
697
+ # if defined(BOOST_ASIO_HAS_CLANG_LIBCXX)
698
+ # define BOOST_ASIO_HAS_STD_ALIGN 1
699
+ # elif (__cplusplus >= 201103)
700
+ # define BOOST_ASIO_HAS_STD_ALIGN 1
701
+ # endif // (__cplusplus >= 201103)
702
+ # elif defined(__GNUC__)
703
+ # if (__GNUC__ >= 6)
704
+ # if (__cplusplus >= 201103) || defined(__GXX_EXPERIMENTAL_CXX0X__)
705
+ # define BOOST_ASIO_HAS_STD_ALIGN 1
706
+ # endif // (__cplusplus >= 201103) || defined(__GXX_EXPERIMENTAL_CXX0X__)
707
+ # endif // (__GNUC__ >= 6)
708
+ # endif // defined(__GNUC__)
709
+ # if defined(BOOST_ASIO_MSVC)
710
+ # if (_MSC_VER >= 1700)
711
+ # define BOOST_ASIO_HAS_STD_ALIGN 1
712
+ # endif // (_MSC_VER >= 1700)
713
+ # endif // defined(BOOST_ASIO_MSVC)
714
+ # endif // !defined(BOOST_ASIO_DISABLE_STD_ALIGN)
715
+ #endif // !defined(BOOST_ASIO_HAS_STD_ALIGN)
716
+
678
717
  // Standard library support for system errors.
679
718
  # if !defined(BOOST_ASIO_DISABLE_STD_SYSTEM_ERROR)
680
719
  # if defined(__clang__)
@@ -1311,14 +1350,11 @@
1311
1350
  # if (_MSC_VER >= 1911 && _MSVC_LANG >= 201703)
1312
1351
  # define BOOST_ASIO_HAS_STD_INVOKE_RESULT 1
1313
1352
  # endif // (_MSC_VER >= 1911 && _MSVC_LANG >= 201703)
1353
+ # else // defined(BOOST_ASIO_MSVC)
1354
+ # if (__cplusplus >= 201703)
1355
+ # define BOOST_ASIO_HAS_STD_INVOKE_RESULT 1
1356
+ # endif // (__cplusplus >= 201703)
1314
1357
  # endif // defined(BOOST_ASIO_MSVC)
1315
- # if defined(BOOST_ASIO_HAS_CLANG_LIBCXX)
1316
- # if (_LIBCPP_VERSION >= 13000)
1317
- # if (__cplusplus >= 201703)
1318
- # define BOOST_ASIO_HAS_STD_INVOKE_RESULT 1
1319
- # endif // (__cplusplus >= 201703)
1320
- # endif // (_LIBCPP_VERSION >= 13000)
1321
- # endif // defined(BOOST_ASIO_HAS_CLANG_LIBCXX)
1322
1358
  # endif // !defined(BOOST_ASIO_DISABLE_STD_INVOKE_RESULT)
1323
1359
  #endif // !defined(BOOST_ASIO_HAS_STD_INVOKE_RESULT)
1324
1360
 
@@ -2054,11 +2090,23 @@
2054
2090
  # endif // defined(_RESUMABLE_FUNCTIONS_SUPPORTED)
2055
2091
  # endif // (_MSC_FULL_VER >= 190023506)
2056
2092
  # elif defined(__clang__)
2057
- # if (__cplusplus >= 201703) && (__cpp_coroutines >= 201703)
2058
- # if __has_include(<experimental/coroutine>)
2059
- # define BOOST_ASIO_HAS_CO_AWAIT 1
2060
- # endif // __has_include(<experimental/coroutine>)
2061
- # endif // (__cplusplus >= 201703) && (__cpp_coroutines >= 201703)
2093
+ # if (__clang_major__ >= 14)
2094
+ # if (__cplusplus >= 202002) && (__cpp_impl_coroutine >= 201902)
2095
+ # if __has_include(<coroutine>)
2096
+ # define BOOST_ASIO_HAS_CO_AWAIT 1
2097
+ # endif // __has_include(<coroutine>)
2098
+ # elif (__cplusplus >= 201703) && (__cpp_coroutines >= 201703)
2099
+ # if __has_include(<experimental/coroutine>)
2100
+ # define BOOST_ASIO_HAS_CO_AWAIT 1
2101
+ # endif // __has_include(<experimental/coroutine>)
2102
+ # endif // (__cplusplus >= 201703) && (__cpp_coroutines >= 201703)
2103
+ # else // (__clang_major__ >= 14)
2104
+ # if (__cplusplus >= 201703) && (__cpp_coroutines >= 201703)
2105
+ # if __has_include(<experimental/coroutine>)
2106
+ # define BOOST_ASIO_HAS_CO_AWAIT 1
2107
+ # endif // __has_include(<experimental/coroutine>)
2108
+ # endif // (__cplusplus >= 201703) && (__cpp_coroutines >= 201703)
2109
+ # endif // (__clang_major__ >= 14)
2062
2110
  # elif defined(__GNUC__)
2063
2111
  # if (__cplusplus >= 201709) && (__cpp_impl_coroutine >= 201902)
2064
2112
  # if __has_include(<coroutine>)
@@ -2076,8 +2124,15 @@
2076
2124
  # if (_MSC_VER >= 1928) && (_MSVC_LANG >= 201705)
2077
2125
  # define BOOST_ASIO_HAS_STD_COROUTINE 1
2078
2126
  # endif // (_MSC_VER >= 1928) && (_MSVC_LANG >= 201705)
2079
- # endif // defined(BOOST_ASIO_MSVC)
2080
- # if defined(__GNUC__)
2127
+ # elif defined(__clang__)
2128
+ # if (__clang_major__ >= 14)
2129
+ # if (__cplusplus >= 202002) && (__cpp_impl_coroutine >= 201902)
2130
+ # if __has_include(<coroutine>)
2131
+ # define BOOST_ASIO_HAS_STD_COROUTINE 1
2132
+ # endif // __has_include(<coroutine>)
2133
+ # endif // (__cplusplus >= 202002) && (__cpp_impl_coroutine >= 201902)
2134
+ # endif // (__clang_major__ >= 14)
2135
+ # elif defined(__GNUC__)
2081
2136
  # if (__cplusplus >= 201709) && (__cpp_impl_coroutine >= 201902)
2082
2137
  # if __has_include(<coroutine>)
2083
2138
  # define BOOST_ASIO_HAS_STD_COROUTINE 1
@@ -2158,4 +2213,15 @@
2158
2213
  # endif // !defined(BOOST_ASIO_DISABLE_STD_TO_ADDRESS)
2159
2214
  #endif // !defined(BOOST_ASIO_HAS_STD_TO_ADDRESS)
2160
2215
 
2216
+ // Standard library support for snprintf.
2217
+ #if !defined(BOOST_ASIO_HAS_SNPRINTF)
2218
+ # if !defined(BOOST_ASIO_DISABLE_SNPRINTF)
2219
+ # if defined(__apple_build_version__)
2220
+ # if (__clang_major__ >= 14)
2221
+ # define BOOST_ASIO_HAS_SNPRINTF 1
2222
+ # endif // (__clang_major__ >= 14)
2223
+ # endif // defined(__apple_build_version__)
2224
+ # endif // !defined(BOOST_ASIO_DISABLE_SNPRINTF)
2225
+ #endif // !defined(BOOST_ASIO_HAS_SNPRINTF)
2226
+
2161
2227
  #endif // BOOST_ASIO_DETAIL_CONFIG_HPP
@@ -55,7 +55,7 @@ inline void* allocate(std::size_t s, Handler& h,
55
55
  std::size_t align = BOOST_ASIO_DEFAULT_ALIGN)
56
56
  {
57
57
  #if !defined(BOOST_ASIO_HAS_HANDLER_HOOKS)
58
- return aligned_new(align, s);
58
+ return boost::asio::aligned_new(align, s);
59
59
  #elif defined(BOOST_ASIO_NO_DEPRECATED)
60
60
  // The asio_handler_allocate hook is no longer used to obtain memory.
61
61
  (void)&error_if_hooks_are_defined<Handler>;
@@ -65,7 +65,7 @@ inline void* allocate(std::size_t s, Handler& h,
65
65
  boost::asio::detail::thread_context::top_of_thread_call_stack(),
66
66
  s, align);
67
67
  # else // !defined(BOOST_ASIO_DISABLE_SMALL_BLOCK_RECYCLING)
68
- return aligned_new(align, s);
68
+ return boost::asio::aligned_new(align, s);
69
69
  # endif // !defined(BOOST_ASIO_DISABLE_SMALL_BLOCK_RECYCLING)
70
70
  #else
71
71
  (void)align;
@@ -78,7 +78,7 @@ template <typename Handler>
78
78
  inline void deallocate(void* p, std::size_t s, Handler& h)
79
79
  {
80
80
  #if !defined(BOOST_ASIO_HAS_HANDLER_HOOKS)
81
- aligned_delete(p);
81
+ boost::asio::aligned_delete(p);
82
82
  #elif defined(BOOST_ASIO_NO_DEPRECATED)
83
83
  // The asio_handler_allocate hook is no longer used to obtain memory.
84
84
  (void)&error_if_hooks_are_defined<Handler>;
@@ -88,7 +88,7 @@ inline void deallocate(void* p, std::size_t s, Handler& h)
88
88
  boost::asio::detail::thread_context::top_of_thread_call_stack(), p, s);
89
89
  #else // !defined(BOOST_ASIO_DISABLE_SMALL_BLOCK_RECYCLING)
90
90
  (void)s;
91
- aligned_delete(p);
91
+ boost::asio::aligned_delete(p);
92
92
  #endif // !defined(BOOST_ASIO_DISABLE_SMALL_BLOCK_RECYCLING)
93
93
  #else
94
94
  using boost::asio::asio_handler_deallocate;
@@ -37,6 +37,7 @@ class io_context;
37
37
 
38
38
  #if !defined(BOOST_ASIO_USE_TS_EXECUTOR_AS_DEFAULT)
39
39
 
40
+ class any_completion_executor;
40
41
  class any_io_executor;
41
42
 
42
43
  #endif // !defined(BOOST_ASIO_USE_TS_EXECUTOR_AS_DEFAULT)
@@ -95,11 +96,16 @@ public:
95
96
  template <typename Function, typename Handler>
96
97
  void dispatch(Function& function, Handler& handler)
97
98
  {
99
+ #if defined(BOOST_ASIO_NO_DEPRECATED)
100
+ boost::asio::prefer(executor_,
101
+ execution::allocator((get_associated_allocator)(handler))
102
+ ).execute(BOOST_ASIO_MOVE_CAST(Function)(function));
103
+ #else // defined(BOOST_ASIO_NO_DEPRECATED)
98
104
  execution::execute(
99
105
  boost::asio::prefer(executor_,
100
- execution::blocking.possibly,
101
106
  execution::allocator((get_associated_allocator)(handler))),
102
107
  BOOST_ASIO_MOVE_CAST(Function)(function));
108
+ #endif // defined(BOOST_ASIO_NO_DEPRECATED)
103
109
  }
104
110
 
105
111
  private:
@@ -361,9 +367,11 @@ public:
361
367
  template <typename Function, typename Handler>
362
368
  void dispatch(Function& function, Handler&)
363
369
  {
364
- execution::execute(
365
- boost::asio::prefer(executor_, execution::blocking.possibly),
366
- BOOST_ASIO_MOVE_CAST(Function)(function));
370
+ #if defined(BOOST_ASIO_NO_DEPRECATED)
371
+ executor_.execute(BOOST_ASIO_MOVE_CAST(Function)(function));
372
+ #else // defined(BOOST_ASIO_NO_DEPRECATED)
373
+ execution::execute(executor_, BOOST_ASIO_MOVE_CAST(Function)(function));
374
+ #endif // defined(BOOST_ASIO_NO_DEPRECATED)
367
375
  }
368
376
 
369
377
  private:
@@ -378,10 +386,8 @@ class handler_work_base<
378
386
  Executor, CandidateExecutor,
379
387
  IoContext, PolymorphicExecutor,
380
388
  typename enable_if<
381
- is_same<
382
- Executor,
383
- any_io_executor
384
- >::value
389
+ is_same<Executor, any_completion_executor>::value
390
+ || is_same<Executor, any_io_executor>::value
385
391
  >::type>
386
392
  {
387
393
  public:
@@ -436,9 +442,11 @@ public:
436
442
  template <typename Function, typename Handler>
437
443
  void dispatch(Function& function, Handler&)
438
444
  {
439
- execution::execute(
440
- boost::asio::prefer(executor_, execution::blocking.possibly),
441
- BOOST_ASIO_MOVE_CAST(Function)(function));
445
+ #if defined(BOOST_ASIO_NO_DEPRECATED)
446
+ executor_.execute(BOOST_ASIO_MOVE_CAST(Function)(function));
447
+ #else // defined(BOOST_ASIO_NO_DEPRECATED)
448
+ execution::execute(executor_, BOOST_ASIO_MOVE_CAST(Function)(function));
449
+ #endif // defined(BOOST_ASIO_NO_DEPRECATED)
442
450
  }
443
451
 
444
452
  private:
@@ -70,7 +70,18 @@ int close(int d, state_type& state, boost::system::error_code& ec)
70
70
  ::fcntl(d, F_SETFL, flags & ~O_NONBLOCK);
71
71
  #else // defined(__SYMBIAN32__) || defined(__EMSCRIPTEN__)
72
72
  ioctl_arg_type arg = 0;
73
+ # if defined(ENOTTY)
74
+ result = ::ioctl(d, FIONBIO, &arg);
75
+ get_last_error(ec, result < 0);
76
+ if (ec.value() == ENOTTY)
77
+ {
78
+ int flags = ::fcntl(d, F_GETFL, 0);
79
+ if (flags >= 0)
80
+ ::fcntl(d, F_SETFL, flags & ~O_NONBLOCK);
81
+ }
82
+ # else // defined(ENOTTY)
73
83
  ::ioctl(d, FIONBIO, &arg);
84
+ # endif // defined(ENOTTY)
74
85
  #endif // defined(__SYMBIAN32__) || defined(__EMSCRIPTEN__)
75
86
  state &= ~non_blocking;
76
87
 
@@ -104,6 +115,19 @@ bool set_user_non_blocking(int d, state_type& state,
104
115
  ioctl_arg_type arg = (value ? 1 : 0);
105
116
  int result = ::ioctl(d, FIONBIO, &arg);
106
117
  get_last_error(ec, result < 0);
118
+ # if defined(ENOTTY)
119
+ if (ec.value() == ENOTTY)
120
+ {
121
+ int result = ::fcntl(d, F_GETFL, 0);
122
+ get_last_error(ec, result < 0);
123
+ if (result >= 0)
124
+ {
125
+ int flag = (value ? (result | O_NONBLOCK) : (result & ~O_NONBLOCK));
126
+ result = ::fcntl(d, F_SETFL, flag);
127
+ get_last_error(ec, result < 0);
128
+ }
129
+ }
130
+ # endif // defined(ENOTTY)
107
131
  #endif // defined(__SYMBIAN32__) || defined(__EMSCRIPTEN__)
108
132
 
109
133
  if (result >= 0)
@@ -154,6 +178,19 @@ bool set_internal_non_blocking(int d, state_type& state,
154
178
  ioctl_arg_type arg = (value ? 1 : 0);
155
179
  int result = ::ioctl(d, FIONBIO, &arg);
156
180
  get_last_error(ec, result < 0);
181
+ # if defined(ENOTTY)
182
+ if (ec.value() == ENOTTY)
183
+ {
184
+ int result = ::fcntl(d, F_GETFL, 0);
185
+ get_last_error(ec, result < 0);
186
+ if (result >= 0)
187
+ {
188
+ int flag = (value ? (result | O_NONBLOCK) : (result & ~O_NONBLOCK));
189
+ result = ::fcntl(d, F_SETFL, flag);
190
+ get_last_error(ec, result < 0);
191
+ }
192
+ }
193
+ # endif // defined(ENOTTY)
157
194
  #endif // defined(__SYMBIAN32__) || defined(__EMSCRIPTEN__)
158
195
 
159
196
  if (result >= 0)
@@ -366,7 +366,9 @@ void handler_tracking::write_line(const char* format, ...)
366
366
  va_start(args, format);
367
367
 
368
368
  char line[256] = "";
369
- #if defined(BOOST_ASIO_HAS_SECURE_RTL)
369
+ #if defined(BOOST_ASIO_HAS_SNPRINTF)
370
+ int length = vsnprintf(line, sizeof(line), format, args);
371
+ #elif defined(BOOST_ASIO_HAS_SECURE_RTL)
370
372
  int length = vsprintf_s(line, sizeof(line), format, args);
371
373
  #else // defined(BOOST_ASIO_HAS_SECURE_RTL)
372
374
  int length = vsprintf(line, format, args);
@@ -310,7 +310,7 @@ void select_reactor::run_thread()
310
310
  {
311
311
  lock.unlock();
312
312
  op_queue<operation> ops;
313
- run(true, ops);
313
+ run(-1, ops);
314
314
  scheduler_.post_deferred_completions(ops);
315
315
  lock.lock();
316
316
  }
@@ -2520,7 +2520,11 @@ const char* inet_ntop(int af, const void* src, char* dest, size_t length,
2520
2520
  && ((ipv6_address->s6_addr[1] & 0x0f) == 0x02));
2521
2521
  if ((!is_link_local && !is_multicast_link_local)
2522
2522
  || if_indextoname(static_cast<unsigned>(scope_id), if_name + 1) == 0)
2523
+ #if defined(BOOST_ASIO_HAS_SNPRINTF)
2524
+ snprintf(if_name + 1, sizeof(if_name) - 1, "%lu", scope_id);
2525
+ #else // defined(BOOST_ASIO_HAS_SNPRINTF)
2523
2526
  sprintf(if_name + 1, "%lu", scope_id);
2527
+ #endif // defined(BOOST_ASIO_HAS_SNPRINTF)
2524
2528
  strcat(dest, if_name);
2525
2529
  }
2526
2530
  return result;
@@ -3628,7 +3632,9 @@ inline boost::system::error_code getnameinfo_emulation(
3628
3632
  {
3629
3633
  return ec = boost::asio::error::no_buffer_space;
3630
3634
  }
3631
- #if defined(BOOST_ASIO_HAS_SECURE_RTL)
3635
+ #if defined(BOOST_ASIO_HAS_SNPRINTF)
3636
+ snprintf(serv, servlen, "%u", ntohs(port));
3637
+ #elif defined(BOOST_ASIO_HAS_SECURE_RTL)
3632
3638
  sprintf_s(serv, servlen, "%u", ntohs(port));
3633
3639
  #else // defined(BOOST_ASIO_HAS_SECURE_RTL)
3634
3640
  sprintf(serv, "%u", ntohs(port));
@@ -3651,7 +3657,9 @@ inline boost::system::error_code getnameinfo_emulation(
3651
3657
  {
3652
3658
  return ec = boost::asio::error::no_buffer_space;
3653
3659
  }
3654
- #if defined(BOOST_ASIO_HAS_SECURE_RTL)
3660
+ #if defined(BOOST_ASIO_HAS_SNPRINTF)
3661
+ snprintf(serv, servlen, "%u", ntohs(port));
3662
+ #elif defined(BOOST_ASIO_HAS_SECURE_RTL)
3655
3663
  sprintf_s(serv, servlen, "%u", ntohs(port));
3656
3664
  #else // defined(BOOST_ASIO_HAS_SECURE_RTL)
3657
3665
  sprintf(serv, "%u", ntohs(port));
@@ -107,13 +107,22 @@ public:
107
107
  {
108
108
  recycling_allocator<void> allocator;
109
109
  executor_type ex = this_->executor_;
110
+ #if defined(BOOST_ASIO_NO_DEPRECATED)
111
+ boost::asio::prefer(
112
+ boost::asio::require(
113
+ BOOST_ASIO_MOVE_CAST(executor_type)(ex),
114
+ execution::blocking.never),
115
+ execution::allocator(allocator)
116
+ ).execute(BOOST_ASIO_MOVE_CAST(invoker)(*this_));
117
+ #else // defined(BOOST_ASIO_NO_DEPRECATED)
110
118
  execution::execute(
111
119
  boost::asio::prefer(
112
120
  boost::asio::require(
113
121
  BOOST_ASIO_MOVE_CAST(executor_type)(ex),
114
122
  execution::blocking.never),
115
- execution::allocator(allocator)),
123
+ execution::allocator(allocator)),
116
124
  BOOST_ASIO_MOVE_CAST(invoker)(*this_));
125
+ #endif // defined(BOOST_ASIO_NO_DEPRECATED)
117
126
  }
118
127
  }
119
128
  };
@@ -255,7 +264,11 @@ void strand_executor_service::do_execute(const implementation_type& impl,
255
264
  p.v = p.p = 0;
256
265
  if (first)
257
266
  {
267
+ #if defined(BOOST_ASIO_NO_DEPRECATED)
268
+ ex.execute(invoker<Executor>(impl, ex));
269
+ #else // defined(BOOST_ASIO_NO_DEPRECATED)
258
270
  execution::execute(ex, invoker<Executor>(impl, ex));
271
+ #endif // defined(BOOST_ASIO_NO_DEPRECATED)
259
272
  }
260
273
  }
261
274
 
@@ -20,6 +20,7 @@
20
20
  #include <cstdlib>
21
21
  #include <memory>
22
22
  #include <new>
23
+ #include <boost/asio/detail/cstdint.hpp>
23
24
  #include <boost/asio/detail/throw_exception.hpp>
24
25
 
25
26
  #if !defined(BOOST_ASIO_HAS_STD_SHARED_PTR)
@@ -73,6 +74,23 @@ template <typename T>
73
74
  inline const volatile T* to_address(const volatile T* p) { return p; }
74
75
  #endif // defined(BOOST_ASIO_HAS_STD_TO_ADDRESS)
75
76
 
77
+ inline void* align(std::size_t alignment,
78
+ std::size_t size, void*& ptr, std::size_t& space)
79
+ {
80
+ #if defined(BOOST_ASIO_HAS_STD_ALIGN)
81
+ return std::align(alignment, size, ptr, space);
82
+ #else // defined(BOOST_ASIO_HAS_STD_ALIGN)
83
+ const uintptr_t intptr = reinterpret_cast<uintptr_t>(ptr);
84
+ const uintptr_t aligned = (intptr - 1u + alignment) & -alignment;
85
+ const std::size_t padding = aligned - intptr;
86
+ if (size + padding > space)
87
+ return 0;
88
+ space -= padding;
89
+ ptr = reinterpret_cast<void*>(aligned);
90
+ return ptr;
91
+ #endif // defined(BOOST_ASIO_HAS_STD_ALIGN)
92
+ }
93
+
76
94
  } // namespace detail
77
95
 
78
96
  #if defined(BOOST_ASIO_HAS_CXX11_ALLOCATORS)
@@ -16,8 +16,7 @@
16
16
  #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17
17
 
18
18
  #include <boost/asio/detail/config.hpp>
19
-
20
- # include <utility>
19
+ #include <utility>
21
20
 
22
21
  namespace boost {
23
22
  namespace asio {
@@ -81,12 +81,16 @@ public:
81
81
  {
82
82
  typename associated_allocator<Handler>::type alloc(
83
83
  (get_associated_allocator)(handler_));
84
+ #if defined(BOOST_ASIO_NO_DEPRECATED)
85
+ boost::asio::prefer(executor_, execution::allocator(alloc)).execute(
86
+ boost::asio::detail::bind_handler(
87
+ BOOST_ASIO_MOVE_CAST(Handler)(handler_)));
88
+ #else // defined(BOOST_ASIO_NO_DEPRECATED)
84
89
  execution::execute(
85
- boost::asio::prefer(executor_,
86
- execution::blocking.possibly,
87
- execution::allocator(alloc)),
90
+ boost::asio::prefer(executor_, execution::allocator(alloc)),
88
91
  boost::asio::detail::bind_handler(
89
92
  BOOST_ASIO_MOVE_CAST(Handler)(handler_)));
93
+ #endif // defined(BOOST_ASIO_NO_DEPRECATED)
90
94
  }
91
95
 
92
96
  private:
@@ -63,10 +63,7 @@ template <typename> class initiate_dispatch_with_executor;
63
63
  * @code auto alloc = get_associated_allocator(handler); @endcode
64
64
  *
65
65
  * @li If <tt>execution::is_executor<Ex>::value</tt> is true, performs
66
- * @code execution::execute(
67
- * prefer(ex,
68
- * execution::blocking.possibly,
69
- * execution::allocator(alloc)),
66
+ * @code prefer(ex, execution::allocator(alloc)).execute(
70
67
  * std::forward<CompletionHandler>(completion_handler)); @endcode
71
68
  *
72
69
  * @li If <tt>execution::is_executor<Ex>::value</tt> is false, performs
@@ -126,11 +123,8 @@ BOOST_ASIO_INITFN_AUTO_RESULT_TYPE_PREFIX(NullaryToken, void()) dispatch(
126
123
  * handler_ that is a decay-copy of @c completion_handler, and a function call
127
124
  * operator that performs:
128
125
  * @code auto a = get_associated_allocator(handler_);
129
- * execution::execute(
130
- * prefer(executor_,
131
- * execution::blocking.possibly,
132
- * execution::allocator(a)),
133
- * std::move(handler_)); @endcode
126
+ * prefer(executor_, execution::allocator(a)).execute(std::move(handler_));
127
+ * @endcode
134
128
  *
135
129
  * @li If <tt>execution::is_executor<Ex1>::value</tt> is false, constructs a
136
130
  * function object @c f with a member @c work_ that is initialised with
@@ -141,11 +135,7 @@ BOOST_ASIO_INITFN_AUTO_RESULT_TYPE_PREFIX(NullaryToken, void()) dispatch(
141
135
  * work_.reset(); @endcode
142
136
  *
143
137
  * @li If <tt>execution::is_executor<Ex>::value</tt> is true, performs
144
- * @code execution::execute(
145
- * prefer(ex,
146
- * execution::blocking.possibly,
147
- * execution::allocator(alloc)),
148
- * std::move(f)); @endcode
138
+ * @code prefer(ex, execution::allocator(alloc)).execute(std::move(f)); @endcode
149
139
  *
150
140
  * @li If <tt>execution::is_executor<Ex>::value</tt> is false, performs
151
141
  * @code ex.dispatch(std::move(f), alloc); @endcode
@@ -79,6 +79,12 @@ template <typename ProtoAllocator>
79
79
  struct allocator_t
80
80
  {
81
81
  #if defined(BOOST_ASIO_HAS_VARIABLE_TEMPLATES)
82
+ # if defined(BOOST_ASIO_NO_DEPRECATED)
83
+ template <typename T>
84
+ BOOST_ASIO_STATIC_CONSTEXPR(bool,
85
+ is_applicable_property_v = (
86
+ is_executor<T>::value));
87
+ # else // defined(BOOST_ASIO_NO_DEPRECATED)
82
88
  template <typename T>
83
89
  BOOST_ASIO_STATIC_CONSTEXPR(bool,
84
90
  is_applicable_property_v = (
@@ -92,7 +98,9 @@ struct allocator_t
92
98
  is_executor<T>::value,
93
99
  false_type,
94
100
  is_scheduler<T>
95
- >::type::value));
101
+ >::type::value
102
+ ));
103
+ # endif // defined(BOOST_ASIO_NO_DEPRECATED)
96
104
  #endif // defined(BOOST_ASIO_HAS_VARIABLE_TEMPLATES)
97
105
 
98
106
  BOOST_ASIO_STATIC_CONSTEXPR(bool, is_requirable = true);
@@ -173,6 +181,12 @@ template <>
173
181
  struct allocator_t<void>
174
182
  {
175
183
  #if defined(BOOST_ASIO_HAS_VARIABLE_TEMPLATES)
184
+ # if defined(BOOST_ASIO_NO_DEPRECATED)
185
+ template <typename T>
186
+ BOOST_ASIO_STATIC_CONSTEXPR(bool,
187
+ is_applicable_property_v = (
188
+ is_executor<T>::value));
189
+ # else // defined(BOOST_ASIO_NO_DEPRECATED)
176
190
  template <typename T>
177
191
  BOOST_ASIO_STATIC_CONSTEXPR(bool,
178
192
  is_applicable_property_v = (
@@ -186,7 +200,9 @@ struct allocator_t<void>
186
200
  is_executor<T>::value,
187
201
  false_type,
188
202
  is_scheduler<T>
189
- >::type::value));
203
+ >::type::value
204
+ ));
205
+ # endif // defined(BOOST_ASIO_NO_DEPRECATED)
190
206
  #endif // defined(BOOST_ASIO_HAS_VARIABLE_TEMPLATES)
191
207
 
192
208
  BOOST_ASIO_STATIC_CONSTEXPR(bool, is_requirable = true);
@@ -284,6 +300,7 @@ template <typename T, typename ProtoAllocator>
284
300
  struct is_applicable_property<T, execution::allocator_t<ProtoAllocator> >
285
301
  : integral_constant<bool,
286
302
  execution::is_executor<T>::value
303
+ #if !defined(BOOST_ASIO_NO_DEPRECATED)
287
304
  || conditional<
288
305
  execution::is_executor<T>::value,
289
306
  false_type,
@@ -293,7 +310,9 @@ struct is_applicable_property<T, execution::allocator_t<ProtoAllocator> >
293
310
  execution::is_executor<T>::value,
294
311
  false_type,
295
312
  execution::is_scheduler<T>
296
- >::type::value>
313
+ >::type::value
314
+ #endif // !defined(BOOST_ASIO_NO_DEPRECATED)
315
+ >
297
316
  {
298
317
  };
299
318