passenger 6.0.11 → 6.0.12

Sign up to get free protection for your applications and to get access to all the features.
Files changed (280) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG +24 -1
  3. data/CONTRIBUTORS +3 -0
  4. data/src/agent/Core/Config.h +1 -1
  5. data/src/agent/Core/Controller/CheckoutSession.cpp +24 -13
  6. data/src/agent/Core/Controller/Config.h +1 -1
  7. data/src/agent/Core/Controller/InternalUtils.cpp +32 -6
  8. data/src/agent/Core/Controller.h +4 -1
  9. data/src/agent/Watchdog/Config.h +1 -1
  10. data/src/cxx_supportlib/Constants.h +1 -1
  11. data/src/cxx_supportlib/IOTools/IOUtils.cpp +4 -4
  12. data/src/cxx_supportlib/vendor-modified/boost/align/aligned_alloc.hpp +47 -0
  13. data/src/cxx_supportlib/vendor-modified/boost/align/detail/aligned_alloc_posix.hpp +41 -0
  14. data/src/cxx_supportlib/vendor-modified/boost/align/detail/is_alignment.hpp +28 -0
  15. data/src/cxx_supportlib/vendor-modified/boost/asio/associated_allocator.hpp +53 -1
  16. data/src/cxx_supportlib/vendor-modified/boost/asio/associated_cancellation_slot.hpp +179 -0
  17. data/src/cxx_supportlib/vendor-modified/boost/asio/associated_executor.hpp +57 -1
  18. data/src/cxx_supportlib/vendor-modified/boost/asio/associator.hpp +37 -0
  19. data/src/cxx_supportlib/vendor-modified/boost/asio/async_result.hpp +789 -106
  20. data/src/cxx_supportlib/vendor-modified/boost/asio/awaitable.hpp +1 -1
  21. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_datagram_socket.hpp +80 -0
  22. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_deadline_timer.hpp +10 -0
  23. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_raw_socket.hpp +80 -0
  24. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_seq_packet_socket.hpp +30 -0
  25. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket.hpp +20 -0
  26. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket_acceptor.hpp +90 -0
  27. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_stream_socket.hpp +60 -0
  28. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_waitable_timer.hpp +10 -0
  29. data/src/cxx_supportlib/vendor-modified/boost/asio/bind_cancellation_slot.hpp +723 -0
  30. data/src/cxx_supportlib/vendor-modified/boost/asio/bind_executor.hpp +191 -12
  31. data/src/cxx_supportlib/vendor-modified/boost/asio/cancellation_signal.hpp +361 -0
  32. data/src/cxx_supportlib/vendor-modified/boost/asio/cancellation_state.hpp +237 -0
  33. data/src/cxx_supportlib/vendor-modified/boost/asio/cancellation_type.hpp +176 -0
  34. data/src/cxx_supportlib/vendor-modified/boost/asio/co_spawn.hpp +30 -2
  35. data/src/cxx_supportlib/vendor-modified/boost/asio/connect.hpp +60 -0
  36. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/base_from_cancellation_state.hpp +165 -0
  37. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/bind_handler.hpp +209 -76
  38. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/config.hpp +149 -60
  39. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/deadline_timer_service.hpp +40 -0
  40. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/dev_poll_reactor.hpp +8 -4
  41. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/epoll_reactor.hpp +14 -4
  42. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/functional.hpp +6 -0
  43. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_alloc_helpers.hpp +14 -10
  44. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_type_requirements.hpp +21 -18
  45. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_work.hpp +30 -19
  46. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/dev_poll_reactor.hpp +8 -0
  47. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/dev_poll_reactor.ipp +14 -0
  48. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/epoll_reactor.hpp +20 -0
  49. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/epoll_reactor.ipp +30 -0
  50. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/kqueue_reactor.hpp +20 -0
  51. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/kqueue_reactor.ipp +29 -0
  52. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/select_reactor.hpp +24 -0
  53. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/select_reactor.ipp +19 -0
  54. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_executor_service.hpp +3 -1
  55. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/timer_queue_ptime.ipp +6 -0
  56. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/kqueue_reactor.hpp +15 -5
  57. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/memory.hpp +60 -0
  58. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/pop_options.hpp +8 -0
  59. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/push_options.hpp +27 -0
  60. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_descriptor_service.hpp +93 -0
  61. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_service.hpp +77 -0
  62. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_service_base.hpp +111 -0
  63. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor_op.hpp +4 -0
  64. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor_op_queue.hpp +44 -0
  65. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/recycling_allocator.hpp +2 -1
  66. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolve_endpoint_op.hpp +2 -2
  67. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/select_reactor.hpp +14 -4
  68. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread_info_base.hpp +90 -24
  69. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue.hpp +30 -1
  70. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue_ptime.hpp +4 -0
  71. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/wait_op.hpp +5 -1
  72. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/work_dispatcher.hpp +5 -2
  73. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/any_executor.hpp +12 -12
  74. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/bulk_execute.hpp +10 -8
  75. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/connect.hpp +8 -8
  76. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/execute.hpp +7 -7
  77. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/schedule.hpp +7 -7
  78. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/set_done.hpp +7 -7
  79. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/set_error.hpp +7 -7
  80. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/set_value.hpp +13 -13
  81. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/start.hpp +7 -7
  82. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/submit.hpp +8 -8
  83. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/append.hpp +73 -0
  84. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/as_tuple.hpp +133 -0
  85. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/awaitable_operators.hpp +538 -0
  86. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/cancellation_condition.hpp +157 -0
  87. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/coro.hpp +1057 -0
  88. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/deferred.hpp +607 -0
  89. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/completion_handler_erasure.hpp +160 -0
  90. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/coro_promise_allocator.hpp +120 -0
  91. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/coro_traits.hpp +185 -0
  92. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/partial_promise.hpp +181 -0
  93. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/append.hpp +219 -0
  94. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/as_single.hpp +14 -28
  95. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/as_tuple.hpp +248 -0
  96. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/deferred.hpp +106 -0
  97. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/parallel_group.hpp +434 -0
  98. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/prepend.hpp +219 -0
  99. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/promise.hpp +100 -0
  100. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/parallel_group.hpp +217 -0
  101. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/prepend.hpp +73 -0
  102. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/promise.hpp +608 -0
  103. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/use_coro.hpp +284 -0
  104. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/awaitable.hpp +344 -20
  105. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/buffered_read_stream.hpp +23 -54
  106. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/buffered_write_stream.hpp +23 -54
  107. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/co_spawn.hpp +66 -18
  108. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/compose.hpp +55 -5
  109. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/connect.hpp +68 -80
  110. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/defer.hpp +8 -4
  111. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/dispatch.hpp +8 -4
  112. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/handler_alloc_hook.ipp +3 -2
  113. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/post.hpp +8 -4
  114. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read.hpp +98 -113
  115. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_at.hpp +71 -82
  116. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_until.hpp +210 -266
  117. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/redirect_error.hpp +248 -30
  118. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/spawn.hpp +11 -21
  119. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/use_awaitable.hpp +15 -3
  120. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/write.hpp +71 -87
  121. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/write_at.hpp +46 -68
  122. data/src/cxx_supportlib/vendor-modified/boost/asio/io_context.hpp +4 -4
  123. data/src/cxx_supportlib/vendor-modified/boost/asio/local/detail/impl/endpoint.ipp +2 -7
  124. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/basic_descriptor.hpp +10 -0
  125. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/basic_stream_descriptor.hpp +23 -3
  126. data/src/cxx_supportlib/vendor-modified/boost/asio/prefer.hpp +21 -21
  127. data/src/cxx_supportlib/vendor-modified/boost/asio/query.hpp +9 -9
  128. data/src/cxx_supportlib/vendor-modified/boost/asio/read.hpp +88 -0
  129. data/src/cxx_supportlib/vendor-modified/boost/asio/read_at.hpp +44 -0
  130. data/src/cxx_supportlib/vendor-modified/boost/asio/read_until.hpp +132 -0
  131. data/src/cxx_supportlib/vendor-modified/boost/asio/require.hpp +21 -21
  132. data/src/cxx_supportlib/vendor-modified/boost/asio/require_concept.hpp +9 -9
  133. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/buffered_handshake_op.hpp +1 -1
  134. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/engine.hpp +5 -0
  135. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/handshake_op.hpp +1 -1
  136. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/impl/engine.ipp +14 -0
  137. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/io.hpp +36 -27
  138. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/read_op.hpp +1 -1
  139. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/shutdown_op.hpp +2 -2
  140. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/stream_core.hpp +37 -0
  141. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/write_op.hpp +1 -1
  142. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/context.ipp +14 -7
  143. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/stream.hpp +73 -1
  144. data/src/cxx_supportlib/vendor-modified/boost/asio/system_executor.hpp +4 -4
  145. data/src/cxx_supportlib/vendor-modified/boost/asio/this_coro.hpp +235 -0
  146. data/src/cxx_supportlib/vendor-modified/boost/asio/thread_pool.hpp +4 -4
  147. data/src/cxx_supportlib/vendor-modified/boost/asio/use_awaitable.hpp +7 -10
  148. data/src/cxx_supportlib/vendor-modified/boost/asio/version.hpp +1 -1
  149. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_random_access_handle.hpp +20 -0
  150. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_stream_handle.hpp +20 -0
  151. data/src/cxx_supportlib/vendor-modified/boost/asio/write.hpp +88 -0
  152. data/src/cxx_supportlib/vendor-modified/boost/asio/write_at.hpp +44 -0
  153. data/src/cxx_supportlib/vendor-modified/boost/asio.hpp +6 -0
  154. data/src/cxx_supportlib/vendor-modified/boost/atomic/atomic_ref.hpp +14 -1
  155. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/config.hpp +17 -13
  156. data/src/cxx_supportlib/vendor-modified/boost/atomic/ipc_atomic_ref.hpp +14 -1
  157. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx03.hpp +2 -5
  158. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx11.hpp +2 -5
  159. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx14.hpp +2 -2
  160. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx17.hpp +2 -2
  161. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx20.hpp +56 -0
  162. data/src/cxx_supportlib/vendor-modified/boost/config/auto_link.hpp +1 -5
  163. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/common_edg.hpp +31 -11
  164. data/src/cxx_supportlib/vendor-modified/boost/config/detail/cxx_composite.hpp +20 -4
  165. data/src/cxx_supportlib/vendor-modified/boost/config/detail/select_platform_config.hpp +5 -0
  166. data/src/cxx_supportlib/vendor-modified/boost/config/detail/suffix.hpp +81 -0
  167. data/src/cxx_supportlib/vendor-modified/boost/config/platform/bsd.hpp +5 -8
  168. data/src/cxx_supportlib/vendor-modified/boost/config/platform/wasm.hpp +17 -0
  169. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/dinkumware.hpp +26 -0
  170. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libcpp.hpp +49 -0
  171. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libstdcpp3.hpp +46 -4
  172. data/src/cxx_supportlib/vendor-modified/boost/container/adaptive_pool.hpp +2 -2
  173. data/src/cxx_supportlib/vendor-modified/boost/container/allocator.hpp +1 -1
  174. data/src/cxx_supportlib/vendor-modified/boost/container/detail/adaptive_node_pool.hpp +2 -2
  175. data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_pool.hpp +2 -2
  176. data/src/cxx_supportlib/vendor-modified/boost/container/detail/std_fwd.hpp +3 -0
  177. data/src/cxx_supportlib/vendor-modified/boost/container/devector.hpp +2 -2
  178. data/src/cxx_supportlib/vendor-modified/boost/container/new_allocator.hpp +1 -1
  179. data/src/cxx_supportlib/vendor-modified/boost/container/node_allocator.hpp +1 -1
  180. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/polymorphic_allocator.hpp +6 -6
  181. data/src/cxx_supportlib/vendor-modified/boost/container/static_vector.hpp +4 -4
  182. data/src/cxx_supportlib/vendor-modified/boost/container/throw_exception.hpp +45 -38
  183. data/src/cxx_supportlib/vendor-modified/boost/container/vector.hpp +24 -0
  184. data/src/cxx_supportlib/vendor-modified/boost/core/ignore_unused.hpp +32 -2
  185. data/src/cxx_supportlib/vendor-modified/boost/core/uncaught_exceptions.hpp +7 -7
  186. data/src/cxx_supportlib/vendor-modified/boost/date_time/compiler_config.hpp +0 -24
  187. data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/time_parsers.hpp +4 -0
  188. data/src/cxx_supportlib/vendor-modified/boost/intrusive/any_hook.hpp +4 -4
  189. data/src/cxx_supportlib/vendor-modified/boost/intrusive/avl_set.hpp +83 -83
  190. data/src/cxx_supportlib/vendor-modified/boost/intrusive/avltree.hpp +43 -43
  191. data/src/cxx_supportlib/vendor-modified/boost/intrusive/avltree_algorithms.hpp +31 -31
  192. data/src/cxx_supportlib/vendor-modified/boost/intrusive/bs_set.hpp +85 -85
  193. data/src/cxx_supportlib/vendor-modified/boost/intrusive/bstree.hpp +68 -68
  194. data/src/cxx_supportlib/vendor-modified/boost/intrusive/bstree_algorithms.hpp +72 -62
  195. data/src/cxx_supportlib/vendor-modified/boost/intrusive/circular_list_algorithms.hpp +19 -20
  196. data/src/cxx_supportlib/vendor-modified/boost/intrusive/circular_slist_algorithms.hpp +19 -19
  197. data/src/cxx_supportlib/vendor-modified/boost/intrusive/derivation_value_traits.hpp +4 -4
  198. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/any_node_and_algorithms.hpp +2 -2
  199. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/bstree_algorithms_base.hpp +3 -3
  200. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/common_slist_algorithms.hpp +5 -5
  201. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/config_begin.hpp +1 -0
  202. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/generic_hook.hpp +8 -8
  203. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hash_combine.hpp +2 -4
  204. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hashtable_node.hpp +1 -1
  205. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/math.hpp +2 -50
  206. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/node_cloner_disposer.hpp +1 -1
  207. data/src/cxx_supportlib/vendor-modified/boost/intrusive/hashtable.hpp +71 -70
  208. data/src/cxx_supportlib/vendor-modified/boost/intrusive/linear_slist_algorithms.hpp +15 -14
  209. data/src/cxx_supportlib/vendor-modified/boost/intrusive/list.hpp +84 -82
  210. data/src/cxx_supportlib/vendor-modified/boost/intrusive/list_hook.hpp +10 -10
  211. data/src/cxx_supportlib/vendor-modified/boost/intrusive/member_value_traits.hpp +4 -4
  212. data/src/cxx_supportlib/vendor-modified/boost/intrusive/parent_from_member.hpp +2 -2
  213. data/src/cxx_supportlib/vendor-modified/boost/intrusive/pointer_plus_bits.hpp +4 -4
  214. data/src/cxx_supportlib/vendor-modified/boost/intrusive/pointer_traits.hpp +18 -18
  215. data/src/cxx_supportlib/vendor-modified/boost/intrusive/rbtree.hpp +43 -43
  216. data/src/cxx_supportlib/vendor-modified/boost/intrusive/rbtree_algorithms.hpp +26 -26
  217. data/src/cxx_supportlib/vendor-modified/boost/intrusive/set.hpp +85 -85
  218. data/src/cxx_supportlib/vendor-modified/boost/intrusive/set_hook.hpp +12 -12
  219. data/src/cxx_supportlib/vendor-modified/boost/intrusive/sg_set.hpp +93 -93
  220. data/src/cxx_supportlib/vendor-modified/boost/intrusive/sgtree.hpp +51 -51
  221. data/src/cxx_supportlib/vendor-modified/boost/intrusive/sgtree_algorithms.hpp +24 -24
  222. data/src/cxx_supportlib/vendor-modified/boost/intrusive/slist.hpp +104 -104
  223. data/src/cxx_supportlib/vendor-modified/boost/intrusive/slist_hook.hpp +8 -6
  224. data/src/cxx_supportlib/vendor-modified/boost/intrusive/splay_set.hpp +91 -91
  225. data/src/cxx_supportlib/vendor-modified/boost/intrusive/splaytree.hpp +46 -46
  226. data/src/cxx_supportlib/vendor-modified/boost/intrusive/splaytree_algorithms.hpp +31 -31
  227. data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap.hpp +51 -51
  228. data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap_algorithms.hpp +18 -18
  229. data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap_set.hpp +97 -97
  230. data/src/cxx_supportlib/vendor-modified/boost/intrusive/trivial_value_traits.hpp +6 -4
  231. data/src/cxx_supportlib/vendor-modified/boost/intrusive/unordered_set.hpp +63 -63
  232. data/src/cxx_supportlib/vendor-modified/boost/intrusive/unordered_set_hook.hpp +15 -15
  233. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_numeric.hpp +4 -1
  234. data/src/cxx_supportlib/vendor-modified/boost/move/detail/config_begin.hpp +1 -0
  235. data/src/cxx_supportlib/vendor-modified/boost/move/detail/iterator_traits.hpp +1 -0
  236. data/src/cxx_supportlib/vendor-modified/boost/move/detail/nsec_clock.hpp +1 -1
  237. data/src/cxx_supportlib/vendor-modified/boost/operators.hpp +2 -0
  238. data/src/cxx_supportlib/vendor-modified/boost/regex/concepts.hpp +1 -1
  239. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex_parser.hpp +3 -0
  240. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/unicode_iterator.hpp +112 -31
  241. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/basic_regex_parser.hpp +3 -0
  242. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/mem_block_cache.hpp +4 -8
  243. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/unicode_iterator.hpp +0 -2
  244. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/w32_regex_traits.hpp +6 -2
  245. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/shared_count.hpp +1 -1
  246. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_impl.hpp +22 -2
  247. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/shared_ptr.hpp +59 -1
  248. data/src/cxx_supportlib/vendor-modified/boost/system/detail/config.hpp +9 -11
  249. data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_category.hpp +27 -21
  250. data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_category_impl.hpp +34 -3
  251. data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_code.hpp +378 -36
  252. data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_condition.hpp +97 -21
  253. data/src/cxx_supportlib/vendor-modified/boost/system/detail/interop_category.hpp +107 -0
  254. data/src/cxx_supportlib/vendor-modified/boost/system/detail/is_same.hpp +33 -0
  255. data/src/cxx_supportlib/vendor-modified/boost/system/detail/snprintf.hpp +70 -0
  256. data/src/cxx_supportlib/vendor-modified/boost/system/detail/{to_std_category.hpp → std_category.hpp} +5 -55
  257. data/src/cxx_supportlib/vendor-modified/boost/system/detail/system_category_impl.hpp +2 -12
  258. data/src/cxx_supportlib/vendor-modified/boost/system/error_code.hpp +0 -33
  259. data/src/cxx_supportlib/vendor-modified/boost/utility/detail/result_of_variadic.hpp +190 -0
  260. data/src/cxx_supportlib/vendor-modified/boost/utility/result_of.hpp +20 -9
  261. data/src/cxx_supportlib/vendor-modified/boost/utility/string_view.hpp +3 -1
  262. data/src/cxx_supportlib/vendor-modified/boost/version.hpp +2 -2
  263. data/src/nginx_module/ConfigGeneral/AutoGeneratedDefinitions.c +8 -0
  264. data/src/nginx_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.c +6 -0
  265. data/src/nginx_module/ConfigGeneral/AutoGeneratedSetterFuncs.c +12 -0
  266. data/src/nginx_module/LocationConfig/AutoGeneratedCreateFunction.c +5 -0
  267. data/src/nginx_module/LocationConfig/AutoGeneratedHeaderSerialization.c +21 -0
  268. data/src/nginx_module/LocationConfig/AutoGeneratedManifestGeneration.c +13 -0
  269. data/src/nginx_module/LocationConfig/AutoGeneratedMergeFunction.c +3 -0
  270. data/src/nginx_module/LocationConfig/AutoGeneratedStruct.h +4 -0
  271. data/src/ruby_supportlib/phusion_passenger/admin_tools/instance_registry.rb +3 -2
  272. data/src/ruby_supportlib/phusion_passenger/loader_shared_helpers.rb +8 -1
  273. data/src/ruby_supportlib/phusion_passenger/nginx/config_options.rb +6 -0
  274. data/src/ruby_supportlib/phusion_passenger/packaging.rb +1 -0
  275. data/src/ruby_supportlib/phusion_passenger/platform_info/openssl.rb +1 -1
  276. data/src/ruby_supportlib/phusion_passenger/platform_info/operating_system.rb +8 -0
  277. data/src/ruby_supportlib/phusion_passenger/request_handler.rb +4 -1
  278. data/src/ruby_supportlib/phusion_passenger.rb +1 -1
  279. metadata +39 -4
  280. data/src/cxx_supportlib/vendor-modified/boost/system/detail/is_generic_value.hpp +0 -125
@@ -10,15 +10,29 @@
10
10
  //
11
11
  // See library home page at http://www.boost.org/libs/system
12
12
 
13
+ #include <boost/system/is_error_code_enum.hpp>
13
14
  #include <boost/system/detail/error_category.hpp>
14
15
  #include <boost/system/detail/error_condition.hpp>
15
16
  #include <boost/system/detail/system_category.hpp>
17
+ #include <boost/system/detail/system_category_impl.hpp>
18
+ #include <boost/system/detail/interop_category.hpp>
16
19
  #include <boost/system/detail/enable_if.hpp>
17
- #include <boost/system/is_error_code_enum.hpp>
20
+ #include <boost/system/detail/is_same.hpp>
21
+ #include <boost/system/detail/snprintf.hpp>
18
22
  #include <boost/system/detail/config.hpp>
19
23
  #include <boost/cstdint.hpp>
20
24
  #include <boost/config.hpp>
21
25
  #include <ostream>
26
+ #include <new>
27
+
28
+ #if defined(BOOST_SYSTEM_HAS_SYSTEM_ERROR)
29
+ # include <system_error>
30
+ #endif
31
+
32
+ #if defined(BOOST_GCC) && BOOST_GCC >= 40600 && BOOST_GCC < 70000
33
+ # pragma GCC diagnostic push
34
+ # pragma GCC diagnostic ignored "-Wstrict-aliasing"
35
+ #endif
22
36
 
23
37
  namespace boost
24
38
  {
@@ -35,26 +49,50 @@ namespace system
35
49
  // and error_code containing a pointer to an object of a type derived
36
50
  // from error_category.
37
51
 
52
+ std::size_t hash_value( error_code const & ec );
53
+
38
54
  class error_code
39
55
  {
40
56
  private:
41
57
 
42
- int val_;
43
- bool failed_;
44
- const error_category * cat_;
58
+ friend std::size_t hash_value( error_code const & ec );
59
+
60
+ private:
61
+
62
+ struct data
63
+ {
64
+ int val_;
65
+ const error_category * cat_;
66
+ };
67
+
68
+ union
69
+ {
70
+ data d1_;
71
+ #if defined(BOOST_SYSTEM_HAS_SYSTEM_ERROR)
72
+ unsigned char d2_[ sizeof(std::error_code) ];
73
+ #endif
74
+ };
75
+
76
+ // 0: default constructed, d1_ value initialized
77
+ // 1: holds std::error_code in d2_
78
+ // 2: holds error code in d1_, failed == false
79
+ // 3: holds error code in d1_, failed == true
80
+ unsigned flags_;
45
81
 
46
82
  public:
47
83
 
48
84
  // constructors:
49
85
 
50
86
  BOOST_SYSTEM_CONSTEXPR error_code() BOOST_NOEXCEPT:
51
- val_( 0 ), failed_( false ), cat_( &system_category() )
87
+ d1_(), flags_( 0 )
52
88
  {
53
89
  }
54
90
 
55
91
  BOOST_SYSTEM_CONSTEXPR error_code( int val, const error_category & cat ) BOOST_NOEXCEPT:
56
- val_( val ), failed_( detail::failed_impl( val, cat ) ), cat_( &cat )
92
+ d1_(), flags_( 2 + detail::failed_impl( val, cat ) )
57
93
  {
94
+ d1_.val_ = val;
95
+ d1_.cat_ = &cat;
58
96
  }
59
97
 
60
98
  template<class ErrorCodeEnum> BOOST_SYSTEM_CONSTEXPR error_code( ErrorCodeEnum e,
@@ -63,13 +101,21 @@ public:
63
101
  *this = make_error_code( e );
64
102
  }
65
103
 
104
+ #if defined(BOOST_SYSTEM_HAS_SYSTEM_ERROR)
105
+
106
+ error_code( std::error_code const& ec ) BOOST_NOEXCEPT:
107
+ flags_( 1 )
108
+ {
109
+ ::new( d2_ ) std::error_code( ec );
110
+ }
111
+
112
+ #endif
113
+
66
114
  // modifiers:
67
115
 
68
116
  BOOST_SYSTEM_CONSTEXPR void assign( int val, const error_category & cat ) BOOST_NOEXCEPT
69
117
  {
70
- val_ = val;
71
- failed_ = detail::failed_impl( val, cat );
72
- cat_ = &cat;
118
+ *this = error_code( val, cat );
73
119
  }
74
120
 
75
121
  template<typename ErrorCodeEnum>
@@ -82,48 +128,113 @@ public:
82
128
 
83
129
  BOOST_SYSTEM_CONSTEXPR void clear() BOOST_NOEXCEPT
84
130
  {
85
- val_ = 0;
86
- failed_ = false;
87
- cat_ = &system_category();
131
+ *this = error_code();
88
132
  }
89
133
 
90
134
  // observers:
91
135
 
92
136
  BOOST_SYSTEM_CONSTEXPR int value() const BOOST_NOEXCEPT
93
137
  {
94
- return val_;
138
+ if( flags_ != 1 )
139
+ {
140
+ return d1_.val_;
141
+ }
142
+ else
143
+ {
144
+ #if defined(BOOST_SYSTEM_HAS_SYSTEM_ERROR)
145
+
146
+ std::error_code const& ec = *reinterpret_cast<std::error_code const*>( d2_ );
147
+ return ec.value() + 1000 * static_cast<unsigned>( reinterpret_cast<boost::uintptr_t>( &ec.category() ) % 2097143 ); // 2^21-9, prime
148
+ #else
149
+
150
+ return -1;
151
+ #endif
152
+ }
95
153
  }
96
154
 
97
155
  BOOST_SYSTEM_CONSTEXPR const error_category & category() const BOOST_NOEXCEPT
98
156
  {
99
- return *cat_;
157
+ if( flags_ == 0 )
158
+ {
159
+ return system_category();
160
+ }
161
+ else if( flags_ == 1 )
162
+ {
163
+ return detail::interop_category();
164
+ }
165
+ else
166
+ {
167
+ return *d1_.cat_;
168
+ }
100
169
  }
101
170
 
171
+ // deprecated?
102
172
  error_condition default_error_condition() const BOOST_NOEXCEPT
103
173
  {
104
- return cat_->default_error_condition( value() );
174
+ return category().default_error_condition( value() );
105
175
  }
106
176
 
107
177
  std::string message() const
108
178
  {
109
- return cat_->message( value() );
179
+ #if defined(BOOST_SYSTEM_HAS_SYSTEM_ERROR)
180
+
181
+ if( flags_ == 1 )
182
+ {
183
+ std::error_code const& ec = *reinterpret_cast<std::error_code const*>( d2_ );
184
+ return ec.message();
185
+ }
186
+
187
+ #endif
188
+
189
+ return category().message( value() );
110
190
  }
111
191
 
112
192
  char const * message( char * buffer, std::size_t len ) const BOOST_NOEXCEPT
113
193
  {
114
- return cat_->message( value(), buffer, len );
194
+ #if defined(BOOST_SYSTEM_HAS_SYSTEM_ERROR)
195
+ if( flags_ == 1 )
196
+ {
197
+ #if !defined(BOOST_NO_EXCEPTIONS)
198
+ try
199
+ #endif
200
+ {
201
+ std::error_code const& ec = *reinterpret_cast<std::error_code const*>( d2_ );
202
+ detail::snprintf( buffer, len, "%s", ec.message().c_str() );
203
+ return buffer;
204
+ }
205
+ #if !defined(BOOST_NO_EXCEPTIONS)
206
+ catch( ... )
207
+ {
208
+ }
209
+ #endif
210
+ }
211
+ #endif
212
+
213
+ return category().message( value(), buffer, len );
115
214
  }
116
215
 
117
216
  BOOST_SYSTEM_CONSTEXPR bool failed() const BOOST_NOEXCEPT
118
217
  {
119
- return failed_;
218
+ #if defined(BOOST_SYSTEM_HAS_SYSTEM_ERROR)
219
+
220
+ if( flags_ == 1 )
221
+ {
222
+ std::error_code const& ec = *reinterpret_cast<std::error_code const*>( d2_ );
223
+ return ec.value() != 0;
224
+ }
225
+ else
226
+
227
+ #endif
228
+ {
229
+ return (flags_ & 1) != 0;
230
+ }
120
231
  }
121
232
 
122
233
  #if !defined(BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS)
123
234
 
124
235
  BOOST_SYSTEM_CONSTEXPR explicit operator bool() const BOOST_NOEXCEPT // true if error
125
236
  {
126
- return failed_;
237
+ return failed();
127
238
  }
128
239
 
129
240
  #else
@@ -133,12 +244,12 @@ public:
133
244
 
134
245
  BOOST_SYSTEM_CONSTEXPR operator unspecified_bool_type() const BOOST_NOEXCEPT // true if error
135
246
  {
136
- return failed_? unspecified_bool_true: 0;
247
+ return failed()? unspecified_bool_true: 0;
137
248
  }
138
249
 
139
250
  BOOST_SYSTEM_CONSTEXPR bool operator!() const BOOST_NOEXCEPT // true if no error
140
251
  {
141
- return !failed_;
252
+ return !failed();
142
253
  }
143
254
 
144
255
  #endif
@@ -150,39 +261,266 @@ public:
150
261
 
151
262
  BOOST_SYSTEM_CONSTEXPR inline friend bool operator==( const error_code & lhs, const error_code & rhs ) BOOST_NOEXCEPT
152
263
  {
153
- return lhs.val_ == rhs.val_ && *lhs.cat_ == *rhs.cat_;
264
+ #if defined(BOOST_SYSTEM_HAS_SYSTEM_ERROR)
265
+
266
+ if( lhs.flags_ == 1 && rhs.flags_ == 1 )
267
+ {
268
+ std::error_code const& e1 = *reinterpret_cast<std::error_code const*>( lhs.d2_ );
269
+ std::error_code const& e2 = *reinterpret_cast<std::error_code const*>( rhs.d2_ );
270
+
271
+ return e1 == e2;
272
+ }
273
+ else
274
+ #endif
275
+ {
276
+ return lhs.value() == rhs.value() && lhs.category() == rhs.category();
277
+ }
154
278
  }
155
279
 
156
280
  BOOST_SYSTEM_CONSTEXPR inline friend bool operator<( const error_code & lhs, const error_code & rhs ) BOOST_NOEXCEPT
157
281
  {
158
- return *lhs.cat_ < *rhs.cat_ || ( *lhs.cat_ == *rhs.cat_ && lhs.val_ < rhs.val_ );
282
+ #if defined(BOOST_SYSTEM_HAS_SYSTEM_ERROR)
283
+
284
+ if( lhs.flags_ == 1 && rhs.flags_ == 1 )
285
+ {
286
+ std::error_code const& e1 = *reinterpret_cast<std::error_code const*>( lhs.d2_ );
287
+ std::error_code const& e2 = *reinterpret_cast<std::error_code const*>( rhs.d2_ );
288
+
289
+ return e1 < e2;
290
+ }
291
+ else
292
+ #endif
293
+ {
294
+ return lhs.category() < rhs.category() || (lhs.category() == rhs.category() && lhs.value() < rhs.value());
295
+ }
296
+ }
297
+
298
+ BOOST_SYSTEM_CONSTEXPR inline friend bool operator!=( const error_code & lhs, const error_code & rhs ) BOOST_NOEXCEPT
299
+ {
300
+ return !( lhs == rhs );
159
301
  }
160
302
 
303
+ inline friend bool operator==( const error_code & code, const error_condition & condition ) BOOST_NOEXCEPT
304
+ {
161
305
  #if defined(BOOST_SYSTEM_HAS_SYSTEM_ERROR)
162
306
 
307
+ if( code.flags_ == 1 )
308
+ {
309
+ return static_cast<std::error_code>( code ) == static_cast<std::error_condition>( condition );
310
+ }
311
+ else
312
+
313
+ #endif
314
+ {
315
+ return code.category().equivalent( code.value(), condition ) || condition.category().equivalent( code, condition.value() );
316
+ }
317
+ }
318
+
319
+ inline friend bool operator==( const error_condition & condition, const error_code & code ) BOOST_NOEXCEPT
320
+ {
321
+ #if defined(BOOST_SYSTEM_HAS_SYSTEM_ERROR)
322
+
323
+ if( code.flags_ == 1 )
324
+ {
325
+ return static_cast<std::error_code>( code ) == static_cast<std::error_condition>( condition );
326
+ }
327
+ else
328
+
329
+ #endif
330
+ {
331
+ return code.category().equivalent( code.value(), condition ) || condition.category().equivalent( code, condition.value() );
332
+ }
333
+ }
334
+
335
+ inline friend bool operator!=( const error_code & lhs, const error_condition & rhs ) BOOST_NOEXCEPT
336
+ {
337
+ return !( lhs == rhs );
338
+ }
339
+
340
+ inline friend bool operator!=( const error_condition & lhs, const error_code & rhs ) BOOST_NOEXCEPT
341
+ {
342
+ return !( lhs == rhs );
343
+ }
344
+
345
+ #if defined(BOOST_SYSTEM_HAS_SYSTEM_ERROR)
346
+
347
+ inline friend bool operator==( std::error_code const & lhs, error_code const & rhs ) BOOST_NOEXCEPT
348
+ {
349
+ return lhs == static_cast< std::error_code >( rhs );
350
+ }
351
+
352
+ inline friend bool operator==( error_code const & lhs, std::error_code const & rhs ) BOOST_NOEXCEPT
353
+ {
354
+ return static_cast< std::error_code >( lhs ) == rhs;
355
+ }
356
+
357
+ inline friend bool operator!=( std::error_code const & lhs, error_code const & rhs ) BOOST_NOEXCEPT
358
+ {
359
+ return !( lhs == rhs );
360
+ }
361
+
362
+ inline friend bool operator!=( error_code const & lhs, std::error_code const & rhs ) BOOST_NOEXCEPT
363
+ {
364
+ return !( lhs == rhs );
365
+ }
366
+
367
+ //
368
+
369
+ template<class E, class N = typename detail::enable_if<std::is_error_condition_enum<E>::value>::type>
370
+ inline friend bool operator==( error_code const & lhs, E rhs ) BOOST_NOEXCEPT
371
+ {
372
+ return lhs == make_error_condition( rhs );
373
+ }
374
+
375
+ template<class E, class N = typename detail::enable_if<std::is_error_condition_enum<E>::value>::type>
376
+ inline friend bool operator==( E lhs, error_code const & rhs ) BOOST_NOEXCEPT
377
+ {
378
+ return make_error_condition( lhs ) == rhs;
379
+ }
380
+
381
+ template<class E, class N = typename detail::enable_if<std::is_error_condition_enum<E>::value>::type>
382
+ inline friend bool operator!=( error_code const & lhs, E rhs ) BOOST_NOEXCEPT
383
+ {
384
+ return !( lhs == rhs );
385
+ }
386
+
387
+ template<class E, class N = typename detail::enable_if<std::is_error_condition_enum<E>::value>::type>
388
+ inline friend bool operator!=( E lhs, error_code const & rhs ) BOOST_NOEXCEPT
389
+ {
390
+ return !( lhs == rhs );
391
+ }
392
+
393
+ //
394
+
395
+ template<class E, class N1 = void, class N2 = typename detail::enable_if<std::is_error_code_enum<E>::value>::type>
396
+ BOOST_SYSTEM_CONSTEXPR inline friend bool operator==( error_code const & lhs, E rhs ) BOOST_NOEXCEPT
397
+ {
398
+ return lhs == make_error_code( rhs );
399
+ }
400
+
401
+ template<class E, class N1 = void, class N2 = typename detail::enable_if<std::is_error_code_enum<E>::value>::type>
402
+ BOOST_SYSTEM_CONSTEXPR inline friend bool operator==( E lhs, error_code const & rhs ) BOOST_NOEXCEPT
403
+ {
404
+ return make_error_code( lhs ) == rhs;
405
+ }
406
+
407
+ template<class E, class N1 = void, class N2 = typename detail::enable_if<std::is_error_code_enum<E>::value>::type>
408
+ BOOST_SYSTEM_CONSTEXPR inline friend bool operator!=( error_code const & lhs, E rhs ) BOOST_NOEXCEPT
409
+ {
410
+ return !( lhs == rhs );
411
+ }
412
+
413
+ template<class E, class N1 = void, class N2 = typename detail::enable_if<std::is_error_code_enum<E>::value>::type>
414
+ BOOST_SYSTEM_CONSTEXPR inline friend bool operator!=( E lhs, error_code const & rhs ) BOOST_NOEXCEPT
415
+ {
416
+ return !( lhs == rhs );
417
+ }
418
+
419
+ #if defined(BOOST_SYSTEM_CLANG_6)
420
+
421
+ inline friend bool operator==( error_code const & lhs, std::error_condition const & rhs ) BOOST_NOEXCEPT
422
+ {
423
+ return static_cast< std::error_code >( lhs ) == rhs;
424
+ }
425
+
426
+ inline friend bool operator==( std::error_condition const & lhs, error_code const & rhs ) BOOST_NOEXCEPT
427
+ {
428
+ return lhs == static_cast< std::error_code >( rhs );
429
+ }
430
+
431
+ inline friend bool operator!=( error_code const & lhs, std::error_condition const & rhs ) BOOST_NOEXCEPT
432
+ {
433
+ return !( lhs == rhs );
434
+ }
435
+
436
+ inline friend bool operator!=( std::error_condition const & lhs, error_code const & rhs ) BOOST_NOEXCEPT
437
+ {
438
+ return !( lhs == rhs );
439
+ }
440
+
441
+ #endif
442
+
443
+ // conversions
444
+
163
445
  operator std::error_code () const
164
446
  {
165
- return std::error_code( value(), category() );
447
+ if( flags_ == 1 )
448
+ {
449
+ return *reinterpret_cast<std::error_code const*>( d2_ );
450
+ }
451
+ else if( flags_ == 0 )
452
+ {
453
+ //return std::error_code();
454
+ return std::error_code( 0, boost::system::system_category() );
455
+ }
456
+ else
457
+ {
458
+ return std::error_code( d1_.val_, *d1_.cat_ );
459
+ }
460
+ }
461
+
462
+ operator std::error_code ()
463
+ {
464
+ return const_cast<error_code const&>( *this );
465
+ }
466
+
467
+ template<class T,
468
+ class E = typename detail::enable_if<detail::is_same<T, std::error_code>::value>::type>
469
+ operator T& ()
470
+ {
471
+ if( flags_ != 1 )
472
+ {
473
+ std::error_code e2( *this );
474
+ ::new( d2_ ) std::error_code( e2 );
475
+ flags_ = 1;
476
+ }
477
+
478
+ return *reinterpret_cast<std::error_code*>( d2_ );
166
479
  }
167
480
 
481
+ #if defined(BOOST_SYSTEM_CLANG_6)
482
+
483
+ template<class T,
484
+ class E = typename std::enable_if<std::is_same<T, std::error_code>::value>::type>
485
+ operator T const& () = delete;
486
+
168
487
  #endif
169
- };
170
488
 
171
- BOOST_SYSTEM_CONSTEXPR inline bool operator!=( const error_code & lhs, const error_code & rhs ) BOOST_NOEXCEPT
172
- {
173
- return !( lhs == rhs );
174
- }
489
+ #endif
175
490
 
176
- template<class Ch, class Tr>
177
- inline std::basic_ostream<Ch, Tr>&
178
- operator<< (std::basic_ostream<Ch, Tr>& os, error_code const & ec)
179
- {
180
- os << ec.category().name() << ':' << ec.value();
181
- return os;
182
- }
491
+ template<class Ch, class Tr>
492
+ inline friend std::basic_ostream<Ch, Tr>&
493
+ operator<< (std::basic_ostream<Ch, Tr>& os, error_code const & ec)
494
+ {
495
+ #if defined(BOOST_SYSTEM_HAS_SYSTEM_ERROR)
496
+
497
+ if( ec.flags_ == 1 )
498
+ {
499
+ std::error_code const& e2 = *reinterpret_cast<std::error_code const*>( ec.d2_ );
500
+ os << "std:" << e2.category().name() << ':' << e2.value();
501
+ }
502
+ else
503
+ #endif
504
+ {
505
+ os << ec.category().name() << ':' << ec.value();
506
+ }
507
+
508
+ return os;
509
+ }
510
+ };
183
511
 
184
512
  inline std::size_t hash_value( error_code const & ec )
185
513
  {
514
+ #if defined(BOOST_SYSTEM_HAS_SYSTEM_ERROR)
515
+
516
+ if( ec.flags_ == 1 )
517
+ {
518
+ std::error_code const& e2 = *reinterpret_cast<std::error_code const*>( ec.d2_ );
519
+ return std::hash<std::error_code>()( e2 );
520
+ }
521
+
522
+ #endif
523
+
186
524
  error_category const & cat = ec.category();
187
525
 
188
526
  boost::ulong_long_type id_ = cat.id_;
@@ -212,4 +550,8 @@ inline std::size_t hash_value( error_code const & ec )
212
550
 
213
551
  } // namespace boost
214
552
 
553
+ #if defined(BOOST_GCC) && BOOST_GCC >= 40600 && BOOST_GCC < 70000
554
+ # pragma GCC diagnostic pop
555
+ #endif
556
+
215
557
  #endif // #ifndef BOOST_SYSTEM_DETAIL_ERROR_CODE_HPP_INCLUDED