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
@@ -1,6 +1,7 @@
1
1
  /////////////////////////////////////////////////////////////////////////////
2
2
  //
3
- // (C) Copyright Ion Gaztanaga 2007-2014
3
+ // (C) Copyright Ion Gaztanaga 2007-2021
4
+ // (C) Copyright Daniel Steck 2021
4
5
  //
5
6
  // Distributed under the Boost Software License, Version 1.0.
6
7
  // (See accompanying file LICENSE_1_0.txt or copy at
@@ -212,7 +213,7 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
212
213
  //! <b>Complexity</b>: Constant time.
213
214
  //!
214
215
  //! <b>Throws</b>: Nothing.
215
- BOOST_INTRUSIVE_FORCEINLINE static node_ptr begin_node(const const_node_ptr & header)
216
+ BOOST_INTRUSIVE_FORCEINLINE static node_ptr begin_node(const const_node_ptr & header) BOOST_NOEXCEPT
216
217
  { return node_traits::get_left(header); }
217
218
 
218
219
  //! <b>Requires</b>: 'header' is the header node of a tree.
@@ -222,7 +223,7 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
222
223
  //! <b>Complexity</b>: Constant time.
223
224
  //!
224
225
  //! <b>Throws</b>: Nothing.
225
- BOOST_INTRUSIVE_FORCEINLINE static node_ptr end_node(const const_node_ptr & header)
226
+ BOOST_INTRUSIVE_FORCEINLINE static node_ptr end_node(const const_node_ptr & header) BOOST_NOEXCEPT
226
227
  { return detail::uncast(header); }
227
228
 
228
229
  //! <b>Requires</b>: 'header' is the header node of a tree.
@@ -246,7 +247,7 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
246
247
  //! <b>Complexity</b>: Constant time.
247
248
  //!
248
249
  //! <b>Throws</b>: Nothing.
249
- BOOST_INTRUSIVE_FORCEINLINE static bool unique(const const_node_ptr & node)
250
+ BOOST_INTRUSIVE_FORCEINLINE static bool unique(const const_node_ptr & node) BOOST_NOEXCEPT
250
251
  { return !NodeTraits::get_parent(node); }
251
252
 
252
253
  #if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
@@ -275,7 +276,7 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
275
276
  //! node1 and node2 are not equivalent according to the ordering rules.
276
277
  //!
277
278
  //!Experimental function
278
- static void swap_nodes(node_ptr node1, node_ptr node2)
279
+ static void swap_nodes(node_ptr node1, node_ptr node2) BOOST_NOEXCEPT
279
280
  {
280
281
  if(node1 == node2)
281
282
  return;
@@ -299,7 +300,7 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
299
300
  //! node1 and node2 are not equivalent according to the ordering rules.
300
301
  //!
301
302
  //!Experimental function
302
- static void swap_nodes(node_ptr node1, node_ptr header1, node_ptr node2, node_ptr header2)
303
+ static void swap_nodes(node_ptr node1, node_ptr header1, node_ptr node2, node_ptr header2) BOOST_NOEXCEPT
303
304
  {
304
305
  if(node1 == node2)
305
306
  return;
@@ -396,38 +397,47 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
396
397
  NodeTraits::set_parent(node1, NodeTraits::get_parent(node2));
397
398
  NodeTraits::set_parent(node2, temp);
398
399
 
399
- //Now adjust adjacent nodes for newly inserted node 1
400
+ //Now adjust child nodes for newly inserted node 1
400
401
  if((temp = NodeTraits::get_left(node1))){
401
402
  NodeTraits::set_parent(temp, node1);
402
403
  }
403
404
  if((temp = NodeTraits::get_right(node1))){
404
405
  NodeTraits::set_parent(temp, node1);
405
406
  }
406
- if((temp = NodeTraits::get_parent(node1)) &&
407
- //The header has been already updated so avoid it
408
- temp != header2){
409
- if(NodeTraits::get_left(temp) == node2){
410
- NodeTraits::set_left(temp, node1);
411
- }
412
- if(NodeTraits::get_right(temp) == node2){
413
- NodeTraits::set_right(temp, node1);
414
- }
415
- }
416
- //Now adjust adjacent nodes for newly inserted node 2
407
+ //Now adjust child nodes for newly inserted node 2
417
408
  if((temp = NodeTraits::get_left(node2))){
418
409
  NodeTraits::set_parent(temp, node2);
419
410
  }
420
411
  if((temp = NodeTraits::get_right(node2))){
421
412
  NodeTraits::set_parent(temp, node2);
422
413
  }
423
- if((temp = NodeTraits::get_parent(node2)) &&
424
- //The header has been already updated so avoid it
425
- temp != header1){
426
- if(NodeTraits::get_left(temp) == node1){
427
- NodeTraits::set_left(temp, node2);
414
+
415
+ //Finally adjust parent nodes
416
+ if ((temp = NodeTraits::get_parent(node1)) == NodeTraits::get_parent(node2)) {
417
+ // special logic for the case where the nodes are siblings
418
+ const node_ptr left = NodeTraits::get_left(temp);
419
+ NodeTraits::set_left(temp, NodeTraits::get_right(temp));
420
+ NodeTraits::set_right(temp, left);
421
+ } else {
422
+ if ((temp = NodeTraits::get_parent(node1)) &&
423
+ //The header has been already updated so avoid it
424
+ temp != header2) {
425
+ if (NodeTraits::get_left(temp) == node2) {
426
+ NodeTraits::set_left(temp, node1);
427
+ }
428
+ if (NodeTraits::get_right(temp) == node2) {
429
+ NodeTraits::set_right(temp, node1);
430
+ }
428
431
  }
429
- if(NodeTraits::get_right(temp) == node1){
430
- NodeTraits::set_right(temp, node2);
432
+ if ((temp = NodeTraits::get_parent(node2)) &&
433
+ //The header has been already updated so avoid it
434
+ temp != header1) {
435
+ if (NodeTraits::get_left(temp) == node1) {
436
+ NodeTraits::set_left(temp, node2);
437
+ }
438
+ if (NodeTraits::get_right(temp) == node1) {
439
+ NodeTraits::set_right(temp, node2);
440
+ }
431
441
  }
432
442
  }
433
443
  }
@@ -446,7 +456,7 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
446
456
  //! new_node is not equivalent to node_to_be_replaced according to the
447
457
  //! ordering rules. This function is faster than erasing and inserting
448
458
  //! the node, since no rebalancing and comparison is needed. Experimental function
449
- BOOST_INTRUSIVE_FORCEINLINE static void replace_node(node_ptr node_to_be_replaced, node_ptr new_node)
459
+ BOOST_INTRUSIVE_FORCEINLINE static void replace_node(node_ptr node_to_be_replaced, node_ptr new_node) BOOST_NOEXCEPT
450
460
  {
451
461
  if(node_to_be_replaced == new_node)
452
462
  return;
@@ -467,7 +477,7 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
467
477
  //! new_node is not equivalent to node_to_be_replaced according to the
468
478
  //! ordering rules. This function is faster than erasing and inserting
469
479
  //! the node, since no rebalancing or comparison is needed. Experimental function
470
- static void replace_node(node_ptr node_to_be_replaced, node_ptr header, node_ptr new_node)
480
+ static void replace_node(node_ptr node_to_be_replaced, node_ptr header, node_ptr new_node) BOOST_NOEXCEPT
471
481
  {
472
482
  if(node_to_be_replaced == new_node)
473
483
  return;
@@ -518,7 +528,7 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
518
528
  //! <b>Complexity</b>: Average constant time.
519
529
  //!
520
530
  //! <b>Throws</b>: Nothing.
521
- static node_ptr next_node(const node_ptr & node);
531
+ static node_ptr next_node(const node_ptr & node) BOOST_NOEXCEPT;
522
532
 
523
533
  //! <b>Requires</b>: 'node' is a node from the tree except the leftmost node.
524
534
  //!
@@ -527,7 +537,7 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
527
537
  //! <b>Complexity</b>: Average constant time.
528
538
  //!
529
539
  //! <b>Throws</b>: Nothing.
530
- static node_ptr prev_node(const node_ptr & node);
540
+ static node_ptr prev_node(const node_ptr & node) BOOST_NOEXCEPT;
531
541
 
532
542
  //! <b>Requires</b>: 'node' is a node of a tree but not the header.
533
543
  //!
@@ -557,7 +567,7 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
557
567
  //! <b>Throws</b>: Nothing.
558
568
  //!
559
569
  //! <b>Nodes</b>: If node is inserted in a tree, this function corrupts the tree.
560
- BOOST_INTRUSIVE_FORCEINLINE static void init(node_ptr node)
570
+ BOOST_INTRUSIVE_FORCEINLINE static void init(node_ptr node) BOOST_NOEXCEPT
561
571
  {
562
572
  NodeTraits::set_parent(node, node_ptr());
563
573
  NodeTraits::set_left(node, node_ptr());
@@ -586,7 +596,7 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
586
596
  //! <b>Throws</b>: Nothing.
587
597
  //!
588
598
  //! <b>Nodes</b>: If node is inserted in a tree, this function corrupts the tree.
589
- BOOST_INTRUSIVE_FORCEINLINE static void init_header(node_ptr header)
599
+ BOOST_INTRUSIVE_FORCEINLINE static void init_header(node_ptr header) BOOST_NOEXCEPT
590
600
  {
591
601
  NodeTraits::set_parent(header, node_ptr());
592
602
  NodeTraits::set_left(header, header);
@@ -603,9 +613,9 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
603
613
  //! <b>Complexity</b>: Linear to the number of element of the source tree plus the.
604
614
  //! number of elements of tree target tree when calling this function.
605
615
  //!
606
- //! <b>Throws</b>: If cloner functor throws. If this happens target nodes are disposed.
616
+ //! <b>Throws</b>: Nothing.
607
617
  template<class Disposer>
608
- static void clear_and_dispose(const node_ptr & header, Disposer disposer)
618
+ static void clear_and_dispose(const node_ptr & header, Disposer disposer) BOOST_NOEXCEPT
609
619
  {
610
620
  node_ptr source_root = NodeTraits::get_parent(header);
611
621
  if(!source_root)
@@ -627,7 +637,7 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
627
637
  //! only be used for more unlink_leftmost_without_rebalance calls.
628
638
  //! This function is normally used to achieve a step by step
629
639
  //! controlled destruction of the tree.
630
- static node_ptr unlink_leftmost_without_rebalance(node_ptr header)
640
+ static node_ptr unlink_leftmost_without_rebalance(node_ptr header) BOOST_NOEXCEPT
631
641
  {
632
642
  node_ptr leftmost = NodeTraits::get_left(header);
633
643
  if (leftmost == header)
@@ -664,7 +674,7 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
664
674
  //! <b>Complexity</b>: Linear time.
665
675
  //!
666
676
  //! <b>Throws</b>: Nothing.
667
- static std::size_t size(const const_node_ptr & header)
677
+ static std::size_t size(const const_node_ptr & header) BOOST_NOEXCEPT
668
678
  {
669
679
  node_ptr beg(begin_node(header));
670
680
  node_ptr end(end_node(header));
@@ -682,7 +692,7 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
682
692
  //! <b>Complexity</b>: Constant.
683
693
  //!
684
694
  //! <b>Throws</b>: Nothing.
685
- static void swap_tree(node_ptr header1, node_ptr header2)
695
+ static void swap_tree(node_ptr header1, node_ptr header2) BOOST_NOEXCEPT
686
696
  {
687
697
  if(header1 == header2)
688
698
  return;
@@ -730,7 +740,7 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
730
740
  //! <b>Complexity</b>: Constant.
731
741
  //!
732
742
  //! <b>Throws</b>: Nothing.
733
- static bool is_header(const const_node_ptr & p);
743
+ static bool is_header(const const_node_ptr & p) BOOST_NOEXCEPT;
734
744
  #endif
735
745
 
736
746
  //! <b>Requires</b>: "header" must be the header node of a tree.
@@ -954,7 +964,7 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
954
964
  //! previously executed to fill "commit_data". No value should be inserted or
955
965
  //! erased between the "insert_check" and "insert_commit" calls.
956
966
  BOOST_INTRUSIVE_FORCEINLINE static void insert_unique_commit
957
- (node_ptr header, node_ptr new_value, const insert_commit_data &commit_data)
967
+ (node_ptr header, node_ptr new_value, const insert_commit_data &commit_data) BOOST_NOEXCEPT
958
968
  { return insert_commit(header, new_value, commit_data); }
959
969
 
960
970
  //! <b>Requires</b>: "header" must be the header node of a tree.
@@ -1194,7 +1204,7 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
1194
1204
  #ifndef BOOST_INTRUSIVE_DOXYGEN_INVOKED
1195
1205
  , std::size_t *pdepth = 0
1196
1206
  #endif
1197
- )
1207
+ ) BOOST_NOEXCEPT
1198
1208
  {
1199
1209
  insert_commit_data commit_data;
1200
1210
  insert_before_check(header, pos, commit_data, pdepth);
@@ -1220,7 +1230,7 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
1220
1230
  #ifndef BOOST_INTRUSIVE_DOXYGEN_INVOKED
1221
1231
  , std::size_t *pdepth = 0
1222
1232
  #endif
1223
- )
1233
+ ) BOOST_NOEXCEPT
1224
1234
  {
1225
1235
  insert_commit_data commit_data;
1226
1236
  push_back_check(header, commit_data, pdepth);
@@ -1245,7 +1255,7 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
1245
1255
  #ifndef BOOST_INTRUSIVE_DOXYGEN_INVOKED
1246
1256
  , std::size_t *pdepth = 0
1247
1257
  #endif
1248
- )
1258
+ ) BOOST_NOEXCEPT
1249
1259
  {
1250
1260
  insert_commit_data commit_data;
1251
1261
  push_front_check(header, commit_data, pdepth);
@@ -1261,7 +1271,7 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
1261
1271
  //! <b>Complexity</b>: Logarithmic to the number of nodes in the tree.
1262
1272
  //!
1263
1273
  //! <b>Throws</b>: Nothing.
1264
- static std::size_t depth(const_node_ptr node)
1274
+ static std::size_t depth(const_node_ptr node) BOOST_NOEXCEPT
1265
1275
  {
1266
1276
  std::size_t depth = 0;
1267
1277
  node_ptr p_parent;
@@ -1315,7 +1325,7 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
1315
1325
  //! <b>Complexity</b>: Amortized constant time.
1316
1326
  //!
1317
1327
  //! <b>Throws</b>: Nothing.
1318
- BOOST_INTRUSIVE_FORCEINLINE static void erase(node_ptr header, node_ptr z)
1328
+ BOOST_INTRUSIVE_FORCEINLINE static void erase(node_ptr header, node_ptr z) BOOST_NOEXCEPT
1319
1329
  {
1320
1330
  data_for_rebalance ignored;
1321
1331
  erase(header, z, ignored);
@@ -1365,7 +1375,7 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
1365
1375
  //! <b>Complexity</b>: Average complexity is constant time.
1366
1376
  //!
1367
1377
  //! <b>Throws</b>: Nothing.
1368
- static void unlink(node_ptr node)
1378
+ static void unlink(node_ptr node) BOOST_NOEXCEPT
1369
1379
  {
1370
1380
  node_ptr x = NodeTraits::get_parent(node);
1371
1381
  if(x){
@@ -1382,7 +1392,7 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
1382
1392
  //! <b>Throws</b>: Nothing.
1383
1393
  //!
1384
1394
  //! <b>Complexity</b>: Linear.
1385
- static void rebalance(node_ptr header)
1395
+ static void rebalance(node_ptr header) BOOST_NOEXCEPT
1386
1396
  {
1387
1397
  node_ptr root = NodeTraits::get_parent(header);
1388
1398
  if(root){
@@ -1399,7 +1409,7 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
1399
1409
  //! <b>Throws</b>: Nothing.
1400
1410
  //!
1401
1411
  //! <b>Complexity</b>: Linear.
1402
- static node_ptr rebalance_subtree(node_ptr old_root)
1412
+ static node_ptr rebalance_subtree(node_ptr old_root) BOOST_NOEXCEPT
1403
1413
  {
1404
1414
  //Taken from:
1405
1415
  //"Tree rebalancing in optimal time and space"
@@ -1585,7 +1595,7 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
1585
1595
  //! <b>Complexity</b>: Linear time.
1586
1596
  //!
1587
1597
  //! <b>Throws</b>: Nothing.
1588
- static std::size_t subtree_size(const const_node_ptr & subtree)
1598
+ static std::size_t subtree_size(const const_node_ptr & subtree) BOOST_NOEXCEPT
1589
1599
  {
1590
1600
  std::size_t count = 0;
1591
1601
  if (subtree){
@@ -1628,7 +1638,7 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
1628
1638
  //! <b>Complexity</b>: Constant.
1629
1639
  //!
1630
1640
  //! <b>Throws</b>: Nothing.
1631
- BOOST_INTRUSIVE_FORCEINLINE static bool is_left_child(const node_ptr & p)
1641
+ BOOST_INTRUSIVE_FORCEINLINE static bool is_left_child(const node_ptr & p) BOOST_NOEXCEPT
1632
1642
  { return NodeTraits::get_left(NodeTraits::get_parent(p)) == p; }
1633
1643
 
1634
1644
  //! <b>Requires</b>: p is a node of a tree.
@@ -1638,7 +1648,7 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
1638
1648
  //! <b>Complexity</b>: Constant.
1639
1649
  //!
1640
1650
  //! <b>Throws</b>: Nothing.
1641
- BOOST_INTRUSIVE_FORCEINLINE static bool is_right_child(const node_ptr & p)
1651
+ BOOST_INTRUSIVE_FORCEINLINE static bool is_right_child(const node_ptr & p) BOOST_NOEXCEPT
1642
1652
  { return NodeTraits::get_right(NodeTraits::get_parent(p)) == p; }
1643
1653
 
1644
1654
  static void insert_before_check
@@ -1665,7 +1675,7 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
1665
1675
  #ifndef BOOST_INTRUSIVE_DOXYGEN_INVOKED
1666
1676
  , std::size_t *pdepth = 0
1667
1677
  #endif
1668
- )
1678
+ ) BOOST_NOEXCEPT
1669
1679
  {
1670
1680
  node_ptr prev(NodeTraits::get_right(header));
1671
1681
  if(pdepth){
@@ -1680,7 +1690,7 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
1680
1690
  #ifndef BOOST_INTRUSIVE_DOXYGEN_INVOKED
1681
1691
  , std::size_t *pdepth = 0
1682
1692
  #endif
1683
- )
1693
+ ) BOOST_NOEXCEPT
1684
1694
  {
1685
1695
  node_ptr pos(NodeTraits::get_left(header));
1686
1696
  if(pdepth){
@@ -1758,7 +1768,7 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
1758
1768
  }
1759
1769
 
1760
1770
  static void insert_commit
1761
- (node_ptr header, node_ptr new_node, const insert_commit_data &commit_data)
1771
+ (node_ptr header, node_ptr new_node, const insert_commit_data &commit_data) BOOST_NOEXCEPT
1762
1772
  {
1763
1773
  //Check if commit_data has not been initialized by a insert_unique_check call.
1764
1774
  BOOST_INTRUSIVE_INVARIANT_ASSERT(commit_data.node != node_ptr());
@@ -1784,7 +1794,7 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
1784
1794
  }
1785
1795
 
1786
1796
  //Fix header and own's parent data when replacing x with own, providing own's old data with parent
1787
- static void set_child(node_ptr header, node_ptr new_child, node_ptr new_parent, const bool link_left)
1797
+ static void set_child(node_ptr header, node_ptr new_child, node_ptr new_parent, const bool link_left) BOOST_NOEXCEPT
1788
1798
  {
1789
1799
  if(new_parent == header)
1790
1800
  NodeTraits::set_parent(header, new_child);
@@ -1795,7 +1805,7 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
1795
1805
  }
1796
1806
 
1797
1807
  // rotate p to left (no header and p's parent fixup)
1798
- static void rotate_left_no_parent_fix(node_ptr p, node_ptr p_right)
1808
+ static void rotate_left_no_parent_fix(node_ptr p, node_ptr p_right) BOOST_NOEXCEPT
1799
1809
  {
1800
1810
  node_ptr p_right_left(NodeTraits::get_left(p_right));
1801
1811
  NodeTraits::set_right(p, p_right_left);
@@ -1807,7 +1817,7 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
1807
1817
  }
1808
1818
 
1809
1819
  // rotate p to left (with header and p's parent fixup)
1810
- static void rotate_left(node_ptr p, node_ptr p_right, node_ptr p_parent, node_ptr header)
1820
+ static void rotate_left(node_ptr p, node_ptr p_right, node_ptr p_parent, node_ptr header) BOOST_NOEXCEPT
1811
1821
  {
1812
1822
  const bool p_was_left(NodeTraits::get_left(p_parent) == p);
1813
1823
  rotate_left_no_parent_fix(p, p_right);
@@ -1816,7 +1826,7 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
1816
1826
  }
1817
1827
 
1818
1828
  // rotate p to right (no header and p's parent fixup)
1819
- static void rotate_right_no_parent_fix(node_ptr p, node_ptr p_left)
1829
+ static void rotate_right_no_parent_fix(node_ptr p, node_ptr p_left) BOOST_NOEXCEPT
1820
1830
  {
1821
1831
  node_ptr p_left_right(NodeTraits::get_right(p_left));
1822
1832
  NodeTraits::set_left(p, p_left_right);
@@ -1828,7 +1838,7 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
1828
1838
  }
1829
1839
 
1830
1840
  // rotate p to right (with header and p's parent fixup)
1831
- static void rotate_right(node_ptr p, node_ptr p_left, node_ptr p_parent, node_ptr header)
1841
+ static void rotate_right(node_ptr p, node_ptr p_left, node_ptr p_parent, node_ptr header) BOOST_NOEXCEPT
1832
1842
  {
1833
1843
  const bool p_was_left(NodeTraits::get_left(p_parent) == p);
1834
1844
  rotate_right_no_parent_fix(p, p_left);
@@ -1838,7 +1848,7 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
1838
1848
 
1839
1849
  private:
1840
1850
 
1841
- static void subtree_to_vine(node_ptr vine_tail, std::size_t &size)
1851
+ static void subtree_to_vine(node_ptr vine_tail, std::size_t &size) BOOST_NOEXCEPT
1842
1852
  {
1843
1853
  //Inspired by LibAVL:
1844
1854
  //It uses a clever optimization for trees with parent pointers.
@@ -1865,7 +1875,7 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
1865
1875
  size = len;
1866
1876
  }
1867
1877
 
1868
- static void compress_subtree(node_ptr scanner, std::size_t count)
1878
+ static void compress_subtree(node_ptr scanner, std::size_t count) BOOST_NOEXCEPT
1869
1879
  {
1870
1880
  while(count--){ //compress "count" spine nodes in the tree with pseudo-root scanner
1871
1881
  node_ptr child = NodeTraits::get_right(scanner);
@@ -1882,7 +1892,7 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
1882
1892
  }
1883
1893
  }
1884
1894
 
1885
- static void vine_to_subtree(node_ptr super_root, std::size_t count)
1895
+ static void vine_to_subtree(node_ptr super_root, std::size_t count) BOOST_NOEXCEPT
1886
1896
  {
1887
1897
  const std::size_t one_szt = 1u;
1888
1898
  std::size_t leaf_nodes = count + one_szt - std::size_t(one_szt << detail::floor_log2(count + one_szt));
@@ -1909,7 +1919,7 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
1909
1919
  //! <b>Complexity</b>: Logarithmic.
1910
1920
  //!
1911
1921
  //! <b>Throws</b>: Nothing.
1912
- static node_ptr get_root(const node_ptr & node)
1922
+ static node_ptr get_root(const node_ptr & node) BOOST_NOEXCEPT
1913
1923
  {
1914
1924
  BOOST_INTRUSIVE_INVARIANT_ASSERT((!inited(node)));
1915
1925
  node_ptr x = NodeTraits::get_parent(node);
@@ -2001,7 +2011,7 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
2001
2011
  }
2002
2012
 
2003
2013
  template<class Disposer>
2004
- static void dispose_subtree(node_ptr x, Disposer disposer)
2014
+ static void dispose_subtree(node_ptr x, Disposer disposer) BOOST_NOEXCEPT
2005
2015
  {
2006
2016
  while (x){
2007
2017
  node_ptr save(NodeTraits::get_left(x));
@@ -67,7 +67,7 @@ class circular_list_algorithms
67
67
  //! <b>Complexity</b>: Constant
68
68
  //!
69
69
  //! <b>Throws</b>: Nothing.
70
- BOOST_INTRUSIVE_FORCEINLINE static void init(node_ptr this_node)
70
+ BOOST_INTRUSIVE_FORCEINLINE static void init(node_ptr this_node) BOOST_NOEXCEPT
71
71
  {
72
72
  const node_ptr null_node = node_ptr();
73
73
  NodeTraits::set_next(this_node, null_node);
@@ -80,7 +80,7 @@ class circular_list_algorithms
80
80
  //! <b>Complexity</b>: Constant
81
81
  //!
82
82
  //! <b>Throws</b>: Nothing.
83
- BOOST_INTRUSIVE_FORCEINLINE static bool inited(const const_node_ptr &this_node)
83
+ BOOST_INTRUSIVE_FORCEINLINE static bool inited(const const_node_ptr &this_node) BOOST_NOEXCEPT
84
84
  { return !NodeTraits::get_next(this_node); }
85
85
 
86
86
  //! <b>Effects</b>: Constructs an empty list, making this_node the only
@@ -91,13 +91,12 @@ class circular_list_algorithms
91
91
  //! <b>Complexity</b>: Constant
92
92
  //!
93
93
  //! <b>Throws</b>: Nothing.
94
- BOOST_INTRUSIVE_FORCEINLINE static void init_header(node_ptr this_node)
94
+ BOOST_INTRUSIVE_FORCEINLINE static void init_header(node_ptr this_node) BOOST_NOEXCEPT
95
95
  {
96
96
  NodeTraits::set_next(this_node, this_node);
97
97
  NodeTraits::set_previous(this_node, this_node);
98
98
  }
99
99
 
100
-
101
100
  //! <b>Requires</b>: this_node must be in a circular list or be an empty circular list.
102
101
  //!
103
102
  //! <b>Effects</b>: Returns true is "this_node" is the only node of a circular list:
@@ -106,7 +105,7 @@ class circular_list_algorithms
106
105
  //! <b>Complexity</b>: Constant
107
106
  //!
108
107
  //! <b>Throws</b>: Nothing.
109
- BOOST_INTRUSIVE_FORCEINLINE static bool unique(const const_node_ptr &this_node)
108
+ BOOST_INTRUSIVE_FORCEINLINE static bool unique(const const_node_ptr &this_node) BOOST_NOEXCEPT
110
109
  {
111
110
  node_ptr next = NodeTraits::get_next(this_node);
112
111
  return !next || next == this_node;
@@ -120,7 +119,7 @@ class circular_list_algorithms
120
119
  //! <b>Complexity</b>: Linear
121
120
  //!
122
121
  //! <b>Throws</b>: Nothing.
123
- static std::size_t count(const const_node_ptr &this_node)
122
+ static std::size_t count(const const_node_ptr &this_node) BOOST_NOEXCEPT
124
123
  {
125
124
  std::size_t result = 0;
126
125
  const_node_ptr p = this_node;
@@ -138,7 +137,7 @@ class circular_list_algorithms
138
137
  //! <b>Complexity</b>: Constant
139
138
  //!
140
139
  //! <b>Throws</b>: Nothing.
141
- BOOST_INTRUSIVE_FORCEINLINE static node_ptr unlink(node_ptr this_node)
140
+ BOOST_INTRUSIVE_FORCEINLINE static node_ptr unlink(node_ptr this_node) BOOST_NOEXCEPT
142
141
  {
143
142
  node_ptr next(NodeTraits::get_next(this_node));
144
143
  node_ptr prev(NodeTraits::get_previous(this_node));
@@ -154,7 +153,7 @@ class circular_list_algorithms
154
153
  //! <b>Complexity</b>: Constant
155
154
  //!
156
155
  //! <b>Throws</b>: Nothing.
157
- BOOST_INTRUSIVE_FORCEINLINE static void unlink(node_ptr b, node_ptr e)
156
+ BOOST_INTRUSIVE_FORCEINLINE static void unlink(node_ptr b, node_ptr e) BOOST_NOEXCEPT
158
157
  {
159
158
  if (b != e) {
160
159
  node_ptr prevb(NodeTraits::get_previous(b));
@@ -170,7 +169,7 @@ class circular_list_algorithms
170
169
  //! <b>Complexity</b>: Constant
171
170
  //!
172
171
  //! <b>Throws</b>: Nothing.
173
- BOOST_INTRUSIVE_FORCEINLINE static void link_before(node_ptr nxt_node, node_ptr this_node)
172
+ BOOST_INTRUSIVE_FORCEINLINE static void link_before(node_ptr nxt_node, node_ptr this_node) BOOST_NOEXCEPT
174
173
  {
175
174
  node_ptr prev(NodeTraits::get_previous(nxt_node));
176
175
  NodeTraits::set_previous(this_node, prev);
@@ -189,7 +188,7 @@ class circular_list_algorithms
189
188
  //! <b>Complexity</b>: Constant
190
189
  //!
191
190
  //! <b>Throws</b>: Nothing.
192
- BOOST_INTRUSIVE_FORCEINLINE static void link_after(node_ptr prev_node, node_ptr this_node)
191
+ BOOST_INTRUSIVE_FORCEINLINE static void link_after(node_ptr prev_node, node_ptr this_node) BOOST_NOEXCEPT
193
192
  {
194
193
  node_ptr next(NodeTraits::get_next(prev_node));
195
194
  NodeTraits::set_previous(this_node, prev_node);
@@ -211,7 +210,7 @@ class circular_list_algorithms
211
210
  //! <b>Complexity</b>: Constant
212
211
  //!
213
212
  //! <b>Throws</b>: Nothing.
214
- static void swap_nodes(node_ptr this_node, node_ptr other_node)
213
+ static void swap_nodes(node_ptr this_node, node_ptr other_node) BOOST_NOEXCEPT
215
214
  {
216
215
  if (other_node == this_node)
217
216
  return;
@@ -252,9 +251,9 @@ class circular_list_algorithms
252
251
  //! <b>Complexity</b>: Constant
253
252
  //!
254
253
  //! <b>Throws</b>: Nothing.
255
- static void transfer(node_ptr p, node_ptr b, node_ptr e)
254
+ static void transfer(node_ptr p, node_ptr b, node_ptr e) BOOST_NOEXCEPT
256
255
  {
257
- if (b != e) {
256
+ if (b != e && p != b && p != e) {
258
257
  node_ptr prev_p(NodeTraits::get_previous(p));
259
258
  node_ptr prev_b(NodeTraits::get_previous(b));
260
259
  node_ptr prev_e(NodeTraits::get_previous(e));
@@ -277,7 +276,7 @@ class circular_list_algorithms
277
276
  //! <b>Complexity</b>: Constant
278
277
  //!
279
278
  //! <b>Throws</b>: Nothing.
280
- static void transfer(node_ptr p, node_ptr i)
279
+ static void transfer(node_ptr p, node_ptr i) BOOST_NOEXCEPT
281
280
  {
282
281
  node_ptr n(NodeTraits::get_next(i));
283
282
  if(n != p && i != p){
@@ -298,7 +297,7 @@ class circular_list_algorithms
298
297
  //! <b>Throws</b>: Nothing.
299
298
  //!
300
299
  //! <b>Complexity</b>: This function is linear time.
301
- static void reverse(node_ptr p)
300
+ static void reverse(node_ptr p) BOOST_NOEXCEPT
302
301
  {
303
302
  node_ptr f(NodeTraits::get_next(p));
304
303
  node_ptr i(NodeTraits::get_next(f)), e(p);
@@ -316,7 +315,7 @@ class circular_list_algorithms
316
315
  //! <b>Throws</b>: Nothing.
317
316
  //!
318
317
  //! <b>Complexity</b>: Linear to the number of moved positions.
319
- static void move_backwards(node_ptr p, std::size_t n)
318
+ static void move_backwards(node_ptr p, std::size_t n) BOOST_NOEXCEPT
320
319
  {
321
320
  //Null shift, nothing to do
322
321
  if(!n) return;
@@ -336,7 +335,7 @@ class circular_list_algorithms
336
335
  //! <b>Throws</b>: Nothing.
337
336
  //!
338
337
  //! <b>Complexity</b>: Linear to the number of moved positions.
339
- static void move_forward(node_ptr p, std::size_t n)
338
+ static void move_forward(node_ptr p, std::size_t n) BOOST_NOEXCEPT
340
339
  {
341
340
  //Null shift, nothing to do
342
341
  if(!n) return;
@@ -359,7 +358,7 @@ class circular_list_algorithms
359
358
  //! <b>Complexity</b>: Linear
360
359
  //!
361
360
  //! <b>Throws</b>: Nothing.
362
- static std::size_t distance(const const_node_ptr &f, const const_node_ptr &l)
361
+ static std::size_t distance(const const_node_ptr &f, const const_node_ptr &l) BOOST_NOEXCEPT
363
362
  {
364
363
  const_node_ptr i(f);
365
364
  std::size_t result = 0;
@@ -435,14 +434,14 @@ class circular_list_algorithms
435
434
  }
436
435
 
437
436
  private:
438
- BOOST_INTRUSIVE_FORCEINLINE static void swap_prev(node_ptr this_node, node_ptr other_node)
437
+ BOOST_INTRUSIVE_FORCEINLINE static void swap_prev(node_ptr this_node, node_ptr other_node) BOOST_NOEXCEPT
439
438
  {
440
439
  node_ptr temp(NodeTraits::get_previous(this_node));
441
440
  NodeTraits::set_previous(this_node, NodeTraits::get_previous(other_node));
442
441
  NodeTraits::set_previous(other_node, temp);
443
442
  }
444
443
 
445
- BOOST_INTRUSIVE_FORCEINLINE static void swap_next(node_ptr this_node, node_ptr other_node)
444
+ BOOST_INTRUSIVE_FORCEINLINE static void swap_next(node_ptr this_node, node_ptr other_node) BOOST_NOEXCEPT
446
445
  {
447
446
  node_ptr temp(NodeTraits::get_next(this_node));
448
447
  NodeTraits::set_next(this_node, NodeTraits::get_next(other_node));