passenger 6.0.16 → 6.0.18

Sign up to get free protection for your applications and to get access to all the features.
Files changed (290) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG +46 -2
  3. data/CONTRIBUTORS +2 -0
  4. data/build/integration_tests.rb +6 -6
  5. data/build/ruby_tests.rb +1 -1
  6. data/build/test_basics.rb +0 -1
  7. data/src/agent/Core/Config.h +1 -1
  8. data/src/agent/Core/Controller/Config.h +1 -1
  9. data/src/agent/Core/SpawningKit/PipeWatcher.h +18 -3
  10. data/src/agent/Watchdog/Config.h +1 -1
  11. data/src/cxx_supportlib/Constants.h +1 -1
  12. data/src/cxx_supportlib/vendor-modified/boost/align/aligned_alloc.hpp +1 -1
  13. data/src/cxx_supportlib/vendor-modified/boost/array.hpp +1 -1
  14. data/src/cxx_supportlib/vendor-modified/boost/asio/any_completion_executor.hpp +344 -0
  15. data/src/cxx_supportlib/vendor-modified/boost/asio/any_completion_handler.hpp +686 -0
  16. data/src/cxx_supportlib/vendor-modified/boost/asio/any_io_executor.hpp +56 -0
  17. data/src/cxx_supportlib/vendor-modified/boost/asio/associated_allocator.hpp +81 -25
  18. data/src/cxx_supportlib/vendor-modified/boost/asio/associated_cancellation_slot.hpp +68 -8
  19. data/src/cxx_supportlib/vendor-modified/boost/asio/associated_executor.hpp +46 -11
  20. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_datagram_socket.hpp +4 -4
  21. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_deadline_timer.hpp +2 -2
  22. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_file.hpp +1 -1
  23. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_random_access_file.hpp +2 -2
  24. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_raw_socket.hpp +4 -4
  25. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_readable_pipe.hpp +2 -2
  26. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_seq_packet_socket.hpp +2 -2
  27. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_serial_port.hpp +3 -3
  28. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_signal_set.hpp +2 -2
  29. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket.hpp +3 -3
  30. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket_acceptor.hpp +4 -4
  31. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_stream_file.hpp +2 -2
  32. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_stream_socket.hpp +2 -2
  33. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_waitable_timer.hpp +2 -2
  34. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_writable_pipe.hpp +2 -2
  35. data/src/cxx_supportlib/vendor-modified/boost/asio/bind_allocator.hpp +13 -3
  36. data/src/cxx_supportlib/vendor-modified/boost/asio/bind_cancellation_slot.hpp +14 -3
  37. data/src/cxx_supportlib/vendor-modified/boost/asio/bind_executor.hpp +13 -3
  38. data/src/cxx_supportlib/vendor-modified/boost/asio/compose.hpp +30 -305
  39. data/src/cxx_supportlib/vendor-modified/boost/asio/consign.hpp +90 -0
  40. data/src/cxx_supportlib/vendor-modified/boost/asio/defer.hpp +17 -18
  41. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/bind_handler.hpp +98 -24
  42. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/composed_work.hpp +330 -0
  43. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/config.hpp +81 -15
  44. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_alloc_helpers.hpp +4 -4
  45. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_work.hpp +19 -11
  46. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/descriptor_ops.ipp +37 -0
  47. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/handler_tracking.ipp +3 -1
  48. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/select_reactor.ipp +1 -1
  49. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/socket_ops.ipp +10 -2
  50. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_executor_service.hpp +14 -1
  51. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/memory.hpp +18 -0
  52. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/utility.hpp +1 -2
  53. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/work_dispatcher.hpp +7 -3
  54. data/src/cxx_supportlib/vendor-modified/boost/asio/dispatch.hpp +4 -14
  55. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/allocator.hpp +22 -3
  56. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/any_executor.hpp +447 -142
  57. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/blocking.hpp +57 -8
  58. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/blocking_adaptation.hpp +51 -6
  59. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/bulk_execute.hpp +5 -0
  60. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/bulk_guarantee.hpp +41 -4
  61. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/connect.hpp +5 -0
  62. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/context.hpp +13 -2
  63. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/context_as.hpp +13 -2
  64. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/detail/as_operation.hpp +4 -0
  65. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/execute.hpp +9 -2
  66. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/executor.hpp +11 -1
  67. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/mapping.hpp +52 -8
  68. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/occupancy.hpp +13 -2
  69. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/operation_state.hpp +5 -0
  70. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/outstanding_work.hpp +39 -6
  71. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/receiver.hpp +5 -0
  72. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/relationship.hpp +39 -6
  73. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/schedule.hpp +5 -0
  74. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/scheduler.hpp +5 -0
  75. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/sender.hpp +5 -0
  76. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/set_done.hpp +5 -0
  77. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/set_error.hpp +5 -0
  78. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/set_value.hpp +5 -0
  79. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/start.hpp +5 -0
  80. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/submit.hpp +5 -0
  81. data/src/cxx_supportlib/vendor-modified/boost/asio/executor_work_guard.hpp +6 -9
  82. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/basic_channel.hpp +3 -3
  83. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/basic_concurrent_channel.hpp +3 -3
  84. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/channel_traits.hpp +70 -0
  85. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/co_composed.hpp +146 -0
  86. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/coro.hpp +35 -5
  87. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_handler.hpp +13 -3
  88. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_operation.hpp +7 -0
  89. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_service.hpp +180 -0
  90. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/coro_completion_handler.hpp +171 -0
  91. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/coro_promise_allocator.hpp +89 -66
  92. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/partial_promise.hpp +66 -45
  93. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/as_single.hpp +13 -3
  94. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/co_composed.hpp +1134 -0
  95. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/coro.hpp +130 -106
  96. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/parallel_group.hpp +377 -3
  97. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/promise.hpp +168 -29
  98. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/use_coro.hpp +149 -203
  99. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/use_promise.hpp +68 -0
  100. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/parallel_group.hpp +256 -0
  101. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/promise.hpp +76 -80
  102. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/use_coro.hpp +40 -14
  103. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/use_promise.hpp +113 -0
  104. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/any_completion_executor.ipp +132 -0
  105. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/any_io_executor.ipp +12 -0
  106. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/append.hpp +12 -3
  107. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/as_tuple.hpp +12 -3
  108. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/buffered_read_stream.hpp +25 -6
  109. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/buffered_write_stream.hpp +25 -6
  110. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/co_spawn.hpp +34 -45
  111. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/connect.hpp +28 -6
  112. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/consign.hpp +204 -0
  113. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/defer.hpp +33 -1
  114. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/deferred.hpp +13 -3
  115. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/dispatch.hpp +21 -9
  116. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/handler_alloc_hook.ipp +1 -1
  117. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/post.hpp +33 -1
  118. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/prepend.hpp +12 -3
  119. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read.hpp +40 -9
  120. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_at.hpp +27 -6
  121. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_until.hpp +104 -24
  122. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/redirect_error.hpp +12 -3
  123. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/spawn.hpp +70 -15
  124. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/src.hpp +1 -0
  125. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/use_future.hpp +25 -0
  126. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/write.hpp +38 -30
  127. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/write_at.hpp +27 -6
  128. data/src/cxx_supportlib/vendor-modified/boost/asio/io_context.hpp +0 -13
  129. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/network_v4.ipp +3 -1
  130. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/network_v6.ipp +3 -1
  131. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/basic_descriptor.hpp +2 -2
  132. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/basic_stream_descriptor.hpp +2 -2
  133. data/src/cxx_supportlib/vendor-modified/boost/asio/post.hpp +17 -18
  134. data/src/cxx_supportlib/vendor-modified/boost/asio/spawn.hpp +3 -1
  135. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/io.hpp +13 -3
  136. data/src/cxx_supportlib/vendor-modified/boost/asio/strand.hpp +11 -7
  137. data/src/cxx_supportlib/vendor-modified/boost/asio/system_executor.hpp +0 -13
  138. data/src/cxx_supportlib/vendor-modified/boost/asio/thread_pool.hpp +23 -18
  139. data/src/cxx_supportlib/vendor-modified/boost/asio/version.hpp +1 -1
  140. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_object_handle.hpp +2 -2
  141. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_overlapped_handle.hpp +1 -1
  142. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_random_access_handle.hpp +2 -2
  143. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_stream_handle.hpp +2 -2
  144. data/src/cxx_supportlib/vendor-modified/boost/asio.hpp +4 -0
  145. data/src/cxx_supportlib/vendor-modified/boost/bind/bind.hpp +1 -1
  146. data/src/cxx_supportlib/vendor-modified/boost/chrono/config.hpp +1 -0
  147. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/mac/chrono.hpp +4 -4
  148. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/scan_keyword.hpp +4 -2
  149. data/src/cxx_supportlib/vendor-modified/boost/chrono/duration.hpp +2 -2
  150. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/duration_io.hpp +3 -3
  151. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/duration_put.hpp +5 -5
  152. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/duration_units.hpp +2 -2
  153. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/time_point_io.hpp +2 -2
  154. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/utility/ios_base_state_ptr.hpp +7 -7
  155. data/src/cxx_supportlib/vendor-modified/boost/chrono/time_point.hpp +1 -1
  156. data/src/cxx_supportlib/vendor-modified/boost/circular_buffer/details.hpp +5 -1
  157. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/clang.hpp +10 -3
  158. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/clang_version.hpp +9 -3
  159. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/gcc.hpp +9 -3
  160. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/sunpro_cc.hpp +6 -0
  161. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/visualc.hpp +8 -0
  162. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/xlcpp.hpp +4 -0
  163. data/src/cxx_supportlib/vendor-modified/boost/config/detail/suffix.hpp +33 -0
  164. data/src/cxx_supportlib/vendor-modified/boost/config/header_deprecated.hpp +1 -1
  165. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libcpp.hpp +9 -0
  166. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libstdcpp3.hpp +4 -2
  167. data/src/cxx_supportlib/vendor-modified/boost/container/allocator.hpp +1 -1
  168. data/src/cxx_supportlib/vendor-modified/boost/container/container_fwd.hpp +29 -0
  169. data/src/cxx_supportlib/vendor-modified/boost/container/deque.hpp +13 -13
  170. data/src/cxx_supportlib/vendor-modified/boost/container/detail/advanced_insert_int.hpp +80 -95
  171. data/src/cxx_supportlib/vendor-modified/boost/container/detail/config_begin.hpp +10 -0
  172. data/src/cxx_supportlib/vendor-modified/boost/container/detail/config_end.hpp +3 -0
  173. data/src/cxx_supportlib/vendor-modified/boost/container/detail/copy_move_algo.hpp +738 -34
  174. data/src/cxx_supportlib/vendor-modified/boost/container/detail/destroyers.hpp +38 -10
  175. data/src/cxx_supportlib/vendor-modified/boost/container/detail/flat_tree.hpp +1 -0
  176. data/src/cxx_supportlib/vendor-modified/boost/container/detail/iterator.hpp +2 -0
  177. data/src/cxx_supportlib/vendor-modified/boost/container/detail/workaround.hpp +3 -4
  178. data/src/cxx_supportlib/vendor-modified/boost/container/devector.hpp +1150 -1213
  179. data/src/cxx_supportlib/vendor-modified/boost/container/node_allocator.hpp +1 -1
  180. data/src/cxx_supportlib/vendor-modified/boost/container/options.hpp +104 -12
  181. data/src/cxx_supportlib/vendor-modified/boost/container/stable_vector.hpp +1 -0
  182. data/src/cxx_supportlib/vendor-modified/boost/container/string.hpp +11 -1
  183. data/src/cxx_supportlib/vendor-modified/boost/container/vector.hpp +31 -331
  184. data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/hash_mix.hpp +113 -0
  185. data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/hash_range.hpp +173 -0
  186. data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/hash_tuple.hpp +133 -0
  187. data/src/cxx_supportlib/vendor-modified/boost/container_hash/hash.hpp +461 -566
  188. data/src/cxx_supportlib/vendor-modified/boost/container_hash/hash_fwd.hpp +24 -24
  189. data/src/cxx_supportlib/vendor-modified/boost/container_hash/is_contiguous_range.hpp +91 -0
  190. data/src/cxx_supportlib/vendor-modified/boost/container_hash/is_described_class.hpp +38 -0
  191. data/src/cxx_supportlib/vendor-modified/boost/container_hash/is_range.hpp +73 -0
  192. data/src/cxx_supportlib/vendor-modified/boost/container_hash/is_unordered_range.hpp +39 -0
  193. data/src/cxx_supportlib/vendor-modified/boost/core/bit.hpp +32 -4
  194. data/src/cxx_supportlib/vendor-modified/boost/core/detail/string_view.hpp +16 -0
  195. data/src/cxx_supportlib/vendor-modified/boost/core/empty_value.hpp +16 -16
  196. data/src/cxx_supportlib/vendor-modified/boost/core/fclose_deleter.hpp +46 -0
  197. data/src/cxx_supportlib/vendor-modified/boost/date_time/date.hpp +1 -1
  198. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/formatters.hpp +3 -3
  199. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/formatters_limited.hpp +3 -3
  200. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_date.hpp +12 -13
  201. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/parsers.hpp +2 -2
  202. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian_calendar.ipp +2 -2
  203. data/src/cxx_supportlib/vendor-modified/boost/date_time/iso_format.hpp +13 -13
  204. data/src/cxx_supportlib/vendor-modified/boost/date_time/local_time/local_date_time.hpp +2 -2
  205. data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/time_formatters.hpp +4 -4
  206. data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/time_formatters_limited.hpp +2 -2
  207. data/src/cxx_supportlib/vendor-modified/boost/date_time/special_values_parser.hpp +1 -1
  208. data/src/cxx_supportlib/vendor-modified/boost/date_time/time_facet.hpp +1 -1
  209. data/src/cxx_supportlib/vendor-modified/boost/date_time/time_parsing.hpp +2 -2
  210. data/src/cxx_supportlib/vendor-modified/boost/describe/bases.hpp +50 -0
  211. data/src/cxx_supportlib/vendor-modified/boost/describe/detail/config.hpp +40 -0
  212. data/src/cxx_supportlib/vendor-modified/boost/describe/detail/cx_streq.hpp +30 -0
  213. data/src/cxx_supportlib/vendor-modified/boost/describe/detail/void_t.hpp +32 -0
  214. data/src/cxx_supportlib/vendor-modified/boost/describe/members.hpp +159 -0
  215. data/src/cxx_supportlib/vendor-modified/boost/describe/modifiers.hpp +33 -0
  216. data/src/cxx_supportlib/vendor-modified/boost/intrusive/avltree_algorithms.hpp +9 -9
  217. data/src/cxx_supportlib/vendor-modified/boost/intrusive/bstree_algorithms.hpp +45 -45
  218. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/any_node_and_algorithms.hpp +8 -8
  219. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/bstree_algorithms_base.hpp +37 -38
  220. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/iterator.hpp +16 -0
  221. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/workaround.hpp +1 -1
  222. data/src/cxx_supportlib/vendor-modified/boost/intrusive/hashtable.hpp +145 -90
  223. data/src/cxx_supportlib/vendor-modified/boost/intrusive/pack_options.hpp +2 -0
  224. data/src/cxx_supportlib/vendor-modified/boost/intrusive/rbtree_algorithms.hpp +7 -7
  225. data/src/cxx_supportlib/vendor-modified/boost/intrusive/sgtree_algorithms.hpp +5 -5
  226. data/src/cxx_supportlib/vendor-modified/boost/intrusive/splaytree_algorithms.hpp +11 -9
  227. data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap_algorithms.hpp +7 -7
  228. data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_facade.hpp +106 -25
  229. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical_streams.hpp +1 -1
  230. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_numeric.hpp +8 -5
  231. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_unsigned_converters.hpp +1 -1
  232. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/adaptive_sort_merge.hpp +4 -2
  233. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/pdqsort.hpp +2 -1
  234. data/src/cxx_supportlib/vendor-modified/boost/move/detail/type_traits.hpp +8 -4
  235. data/src/cxx_supportlib/vendor-modified/boost/mp11/bind.hpp +111 -0
  236. data/src/cxx_supportlib/vendor-modified/boost/mp11/version.hpp +1 -1
  237. data/src/cxx_supportlib/vendor-modified/boost/numeric/conversion/detail/int_float_mixture.hpp +5 -5
  238. data/src/cxx_supportlib/vendor-modified/boost/numeric/conversion/detail/sign_mixture.hpp +5 -5
  239. data/src/cxx_supportlib/vendor-modified/boost/numeric/conversion/detail/udt_builtin_mixture.hpp +5 -5
  240. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/variadic/has_opt.hpp +6 -2
  241. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock_gcc_atomic.hpp +11 -2
  242. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/intrusive_ptr.hpp +1 -1
  243. data/src/cxx_supportlib/vendor-modified/boost/system/detail/config.hpp +7 -1
  244. data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_category.hpp +2 -2
  245. data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_category_impl.hpp +10 -1
  246. data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_code.hpp +38 -43
  247. data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_condition.hpp +52 -0
  248. data/src/cxx_supportlib/vendor-modified/boost/throw_exception.hpp +1 -1
  249. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_function_ptr_helper.hpp +27 -27
  250. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp +27 -27
  251. data/src/cxx_supportlib/vendor-modified/boost/type_traits/intrinsics.hpp +22 -8
  252. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/fca.hpp +37 -7
  253. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa.hpp +1921 -0
  254. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/implementation.hpp +66 -82
  255. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/prime_fmod.hpp +6 -0
  256. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/type_traits.hpp +109 -0
  257. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/xmx.hpp +75 -0
  258. data/src/cxx_supportlib/vendor-modified/boost/unordered/hash_traits.hpp +45 -0
  259. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_map.hpp +732 -0
  260. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_map_fwd.hpp +49 -0
  261. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_set.hpp +586 -0
  262. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_set_fwd.hpp +49 -0
  263. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_map.hpp +166 -66
  264. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_set.hpp +145 -28
  265. data/src/cxx_supportlib/vendor-modified/boost/version.hpp +2 -2
  266. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/md5.hpp +1 -1
  267. data/src/ruby_native_extension/extconf.rb +1 -1
  268. data/src/ruby_supportlib/phusion_passenger/native_support.rb +4 -2
  269. data/src/ruby_supportlib/phusion_passenger/platform_info/operating_system.rb +1 -1
  270. data/src/ruby_supportlib/phusion_passenger/public_api.rb +3 -0
  271. data/src/ruby_supportlib/phusion_passenger/utils.rb +1 -0
  272. data/src/ruby_supportlib/phusion_passenger.rb +5 -5
  273. metadata +36 -19
  274. data/src/cxx_supportlib/vendor-modified/boost/align/align.hpp +0 -19
  275. data/src/cxx_supportlib/vendor-modified/boost/align/alignment_of.hpp +0 -54
  276. data/src/cxx_supportlib/vendor-modified/boost/align/alignment_of_forward.hpp +0 -20
  277. data/src/cxx_supportlib/vendor-modified/boost/align/detail/align_cxx11.hpp +0 -21
  278. data/src/cxx_supportlib/vendor-modified/boost/align/detail/aligned_alloc.hpp +0 -52
  279. data/src/cxx_supportlib/vendor-modified/boost/align/detail/alignment_of.hpp +0 -31
  280. data/src/cxx_supportlib/vendor-modified/boost/align/detail/alignment_of_cxx11.hpp +0 -23
  281. data/src/cxx_supportlib/vendor-modified/boost/align/detail/element_type.hpp +0 -91
  282. data/src/cxx_supportlib/vendor-modified/boost/align/detail/integral_constant.hpp +0 -53
  283. data/src/cxx_supportlib/vendor-modified/boost/align/detail/min_size.hpp +0 -26
  284. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/completion_handler_erasure.hpp +0 -196
  285. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/compose.hpp +0 -709
  286. data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/float_functions.hpp +0 -336
  287. data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/hash_float.hpp +0 -271
  288. data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/limits.hpp +0 -62
  289. data/src/cxx_supportlib/vendor-modified/boost/container_hash/extensions.hpp +0 -361
  290. data/src/cxx_supportlib/vendor-modified/boost/detail/container_fwd.hpp +0 -157
@@ -218,13 +218,13 @@ class avltree_algorithms
218
218
  }
219
219
 
220
220
  //! @copydoc ::boost::intrusive::bstree_algorithms::unlink(node_ptr)
221
- static void unlink(node_ptr node) BOOST_NOEXCEPT
221
+ static void unlink(node_ptr n) BOOST_NOEXCEPT
222
222
  {
223
- node_ptr x = NodeTraits::get_parent(node);
223
+ node_ptr x = NodeTraits::get_parent(n);
224
224
  if(x){
225
225
  while(!is_header(x))
226
226
  x = NodeTraits::get_parent(x);
227
- erase(x, node);
227
+ erase(x, n);
228
228
  }
229
229
  }
230
230
 
@@ -233,22 +233,22 @@ class avltree_algorithms
233
233
  static node_ptr unlink_leftmost_without_rebalance(node_ptr header) BOOST_NOEXCEPT;
234
234
 
235
235
  //! @copydoc ::boost::intrusive::bstree_algorithms::unique(const_node_ptr)
236
- static bool unique(const_node_ptr node) BOOST_NOEXCEPT;
236
+ static bool unique(const_node_ptr n) BOOST_NOEXCEPT;
237
237
 
238
238
  //! @copydoc ::boost::intrusive::bstree_algorithms::size(const_node_ptr)
239
239
  static std::size_t size(const_node_ptr header) BOOST_NOEXCEPT;
240
240
 
241
241
  //! @copydoc ::boost::intrusive::bstree_algorithms::next_node(node_ptr)
242
- static node_ptr next_node(node_ptr node) BOOST_NOEXCEPT;
242
+ static node_ptr next_node(node_ptr n) BOOST_NOEXCEPT;
243
243
 
244
244
  //! @copydoc ::boost::intrusive::bstree_algorithms::prev_node(node_ptr)
245
- static node_ptr prev_node(node_ptr node) BOOST_NOEXCEPT;
245
+ static node_ptr prev_node(node_ptr n) BOOST_NOEXCEPT;
246
246
 
247
247
  //! @copydoc ::boost::intrusive::bstree_algorithms::init(node_ptr)
248
- static void init(node_ptr node) BOOST_NOEXCEPT;
248
+ static void init(node_ptr n) BOOST_NOEXCEPT;
249
249
  #endif //#ifdef BOOST_INTRUSIVE_DOXYGEN_INVOKED
250
250
 
251
- //! <b>Requires</b>: node must not be part of any tree.
251
+ //! <b>Requires</b>: header must not be part of any tree.
252
252
  //!
253
253
  //! <b>Effects</b>: Initializes the header to represent an empty tree.
254
254
  //! unique(header) == true.
@@ -257,7 +257,7 @@ class avltree_algorithms
257
257
  //!
258
258
  //! <b>Throws</b>: Nothing.
259
259
  //!
260
- //! <b>Nodes</b>: If node is inserted in a tree, this function corrupts the tree.
260
+ //! <b>Nodes</b>: If header is inserted in a tree, this function corrupts the tree.
261
261
  static void init_header(node_ptr header) BOOST_NOEXCEPT
262
262
  {
263
263
  bstree_algo::init_header(header);
@@ -239,7 +239,7 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
239
239
  return p ? p : detail::uncast(header);
240
240
  }
241
241
 
242
- //! <b>Requires</b>: 'node' is a node of the tree or a node initialized
242
+ //! <b>Requires</b>: 'n' is a node of the tree or a node initialized
243
243
  //! by init(...) or init_node.
244
244
  //!
245
245
  //! <b>Effects</b>: Returns true if the node is initialized by init() or init_node().
@@ -247,18 +247,18 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
247
247
  //! <b>Complexity</b>: Constant time.
248
248
  //!
249
249
  //! <b>Throws</b>: Nothing.
250
- BOOST_INTRUSIVE_FORCEINLINE static bool unique(const_node_ptr node) BOOST_NOEXCEPT
251
- { return !NodeTraits::get_parent(node); }
250
+ BOOST_INTRUSIVE_FORCEINLINE static bool unique(const_node_ptr n) BOOST_NOEXCEPT
251
+ { return !NodeTraits::get_parent(n); }
252
252
 
253
253
  #if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
254
- //! <b>Requires</b>: 'node' is a node of the tree or a header node.
254
+ //! <b>Requires</b>: 'n' is a node of the tree or a header node.
255
255
  //!
256
256
  //! <b>Effects</b>: Returns the header of the tree.
257
257
  //!
258
258
  //! <b>Complexity</b>: Logarithmic.
259
259
  //!
260
260
  //! <b>Throws</b>: Nothing.
261
- static node_ptr get_header(const_node_ptr node);
261
+ static node_ptr get_header(const_node_ptr n);
262
262
  #endif
263
263
 
264
264
  //! <b>Requires</b>: node1 and node2 can't be header nodes
@@ -518,44 +518,44 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
518
518
  }
519
519
 
520
520
  #if defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
521
- //! <b>Requires</b>: 'node' is a node from the tree except the header.
521
+ //! <b>Requires</b>: 'n' is a node from the tree except the header.
522
522
  //!
523
523
  //! <b>Effects</b>: Returns the next node of the tree.
524
524
  //!
525
525
  //! <b>Complexity</b>: Average constant time.
526
526
  //!
527
527
  //! <b>Throws</b>: Nothing.
528
- static node_ptr next_node(node_ptr node) BOOST_NOEXCEPT;
528
+ static node_ptr next_node(node_ptr n) BOOST_NOEXCEPT;
529
529
 
530
- //! <b>Requires</b>: 'node' is a node from the tree except the leftmost node.
530
+ //! <b>Requires</b>: 'n' is a node from the tree except the leftmost node.
531
531
  //!
532
532
  //! <b>Effects</b>: Returns the previous node of the tree.
533
533
  //!
534
534
  //! <b>Complexity</b>: Average constant time.
535
535
  //!
536
536
  //! <b>Throws</b>: Nothing.
537
- static node_ptr prev_node(node_ptr node) BOOST_NOEXCEPT;
537
+ static node_ptr prev_node(node_ptr n) BOOST_NOEXCEPT;
538
538
 
539
- //! <b>Requires</b>: 'node' is a node of a tree but not the header.
539
+ //! <b>Requires</b>: 'n' is a node of a tree but not the header.
540
540
  //!
541
541
  //! <b>Effects</b>: Returns the minimum node of the subtree starting at p.
542
542
  //!
543
543
  //! <b>Complexity</b>: Logarithmic to the size of the subtree.
544
544
  //!
545
545
  //! <b>Throws</b>: Nothing.
546
- static node_ptr minimum(node_ptr node);
546
+ static node_ptr minimum(node_ptr n);
547
547
 
548
- //! <b>Requires</b>: 'node' is a node of a tree but not the header.
548
+ //! <b>Requires</b>: 'n' is a node of a tree but not the header.
549
549
  //!
550
550
  //! <b>Effects</b>: Returns the maximum node of the subtree starting at p.
551
551
  //!
552
552
  //! <b>Complexity</b>: Logarithmic to the size of the subtree.
553
553
  //!
554
554
  //! <b>Throws</b>: Nothing.
555
- static node_ptr maximum(node_ptr node);
555
+ static node_ptr maximum(node_ptr n);
556
556
  #endif
557
557
 
558
- //! <b>Requires</b>: 'node' must not be part of any tree.
558
+ //! <b>Requires</b>: 'n' must not be part of any tree.
559
559
  //!
560
560
  //! <b>Effects</b>: After the function unique(node) == true.
561
561
  //!
@@ -564,11 +564,11 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
564
564
  //! <b>Throws</b>: Nothing.
565
565
  //!
566
566
  //! <b>Nodes</b>: If node is inserted in a tree, this function corrupts the tree.
567
- static void init(node_ptr node) BOOST_NOEXCEPT
567
+ static void init(node_ptr n) BOOST_NOEXCEPT
568
568
  {
569
- NodeTraits::set_parent(node, node_ptr());
570
- NodeTraits::set_left(node, node_ptr());
571
- NodeTraits::set_right(node, node_ptr());
569
+ NodeTraits::set_parent(n, node_ptr());
570
+ NodeTraits::set_left(n, node_ptr());
571
+ NodeTraits::set_right(n, node_ptr());
572
572
  }
573
573
 
574
574
  //! <b>Effects</b>: Returns true if node is in the same state as if called init(node)
@@ -576,14 +576,14 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
576
576
  //! <b>Complexity</b>: Constant.
577
577
  //!
578
578
  //! <b>Throws</b>: Nothing.
579
- static bool inited(const_node_ptr node)
579
+ static bool inited(const_node_ptr n)
580
580
  {
581
- return !NodeTraits::get_parent(node) &&
582
- !NodeTraits::get_left(node) &&
583
- !NodeTraits::get_right(node) ;
581
+ return !NodeTraits::get_parent(n) &&
582
+ !NodeTraits::get_left(n) &&
583
+ !NodeTraits::get_right(n) ;
584
584
  }
585
585
 
586
- //! <b>Requires</b>: node must not be part of any tree.
586
+ //! <b>Requires</b>: header must not be part of any tree.
587
587
  //!
588
588
  //! <b>Effects</b>: Initializes the header to represent an empty tree.
589
589
  //! unique(header) == true.
@@ -592,7 +592,7 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
592
592
  //!
593
593
  //! <b>Throws</b>: Nothing.
594
594
  //!
595
- //! <b>Nodes</b>: If node is inserted in a tree, this function corrupts the tree.
595
+ //! <b>Nodes</b>: If header is inserted in a tree, this function corrupts the tree.
596
596
  static void init_header(node_ptr header) BOOST_NOEXCEPT
597
597
  {
598
598
  NodeTraits::set_parent(header, node_ptr());
@@ -664,9 +664,9 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
664
664
  return leftmost;
665
665
  }
666
666
 
667
- //! <b>Requires</b>: node is a node of the tree but it's not the header.
667
+ //! <b>Requires</b>: 'header' the header of the tree.
668
668
  //!
669
- //! <b>Effects</b>: Returns the number of nodes of the subtree.
669
+ //! <b>Effects</b>: Returns the number of nodes of the tree.
670
670
  //!
671
671
  //! <b>Complexity</b>: Linear time.
672
672
  //!
@@ -1259,7 +1259,7 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
1259
1259
  insert_commit(header, new_node, commit_data);
1260
1260
  }
1261
1261
 
1262
- //! <b>Requires</b>: 'node' can't be a header node.
1262
+ //! <b>Requires</b>: 'n' can't be a header node.
1263
1263
  //!
1264
1264
  //! <b>Effects</b>: Calculates the depth of a node: the depth of a
1265
1265
  //! node is the length (number of edges) of the path from the root
@@ -1268,13 +1268,13 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
1268
1268
  //! <b>Complexity</b>: Logarithmic to the number of nodes in the tree.
1269
1269
  //!
1270
1270
  //! <b>Throws</b>: Nothing.
1271
- static std::size_t depth(const_node_ptr node) BOOST_NOEXCEPT
1271
+ static std::size_t depth(const_node_ptr n) BOOST_NOEXCEPT
1272
1272
  {
1273
1273
  std::size_t depth = 0;
1274
1274
  node_ptr p_parent;
1275
- while(node != NodeTraits::get_parent(p_parent = NodeTraits::get_parent(node))){
1275
+ while(n != NodeTraits::get_parent(p_parent = NodeTraits::get_parent(n))){
1276
1276
  ++depth;
1277
- node = p_parent;
1277
+ n = p_parent;
1278
1278
  }
1279
1279
  return depth;
1280
1280
  }
@@ -1365,20 +1365,20 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
1365
1365
  transfer_equal(header1, comp, header2, z, ignored);
1366
1366
  }
1367
1367
 
1368
- //! <b>Requires</b>: node is a tree node but not the header.
1368
+ //! <b>Requires</b>: 'n' is a tree node but not the header.
1369
1369
  //!
1370
1370
  //! <b>Effects</b>: Unlinks the node and rebalances the tree.
1371
1371
  //!
1372
1372
  //! <b>Complexity</b>: Average complexity is constant time.
1373
1373
  //!
1374
1374
  //! <b>Throws</b>: Nothing.
1375
- static void unlink(node_ptr node) BOOST_NOEXCEPT
1375
+ static void unlink(node_ptr n) BOOST_NOEXCEPT
1376
1376
  {
1377
- node_ptr x = NodeTraits::get_parent(node);
1377
+ node_ptr x = NodeTraits::get_parent(n);
1378
1378
  if(x){
1379
1379
  while(!base_type::is_header(x))
1380
1380
  x = NodeTraits::get_parent(x);
1381
- erase(x, node);
1381
+ erase(x, n);
1382
1382
  }
1383
1383
  }
1384
1384
 
@@ -1585,7 +1585,7 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
1585
1585
  info.x_parent = x_parent;
1586
1586
  }
1587
1587
 
1588
- //! <b>Requires</b>: node is a node of the tree but it's not the header.
1588
+ //! <b>Requires</b>: 'subtree' is a node of the tree but it's not the header.
1589
1589
  //!
1590
1590
  //! <b>Effects</b>: Returns the number of nodes of the subtree.
1591
1591
  //!
@@ -1916,10 +1916,10 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
1916
1916
  //! <b>Complexity</b>: Logarithmic.
1917
1917
  //!
1918
1918
  //! <b>Throws</b>: Nothing.
1919
- static node_ptr get_root(node_ptr node) BOOST_NOEXCEPT
1919
+ static node_ptr get_root(node_ptr n) BOOST_NOEXCEPT
1920
1920
  {
1921
- BOOST_INTRUSIVE_INVARIANT_ASSERT((!inited(node)));
1922
- node_ptr x = NodeTraits::get_parent(node);
1921
+ BOOST_INTRUSIVE_INVARIANT_ASSERT((!inited(n)));
1922
+ node_ptr x = NodeTraits::get_parent(n);
1923
1923
  if(x){
1924
1924
  while(!base_type::is_header(x)){
1925
1925
  x = NodeTraits::get_parent(x);
@@ -1927,7 +1927,7 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
1927
1927
  return x;
1928
1928
  }
1929
1929
  else{
1930
- return node;
1930
+ return n;
1931
1931
  }
1932
1932
  }
1933
1933
 
@@ -2059,23 +2059,23 @@ class bstree_algorithms : public bstree_algorithms_base<NodeTraits>
2059
2059
  }
2060
2060
 
2061
2061
  template<class Checker>
2062
- static void check_subtree(const_node_ptr node, Checker checker, typename Checker::return_type& check_return)
2062
+ static void check_subtree(const_node_ptr n, Checker checker, typename Checker::return_type& check_return)
2063
2063
  {
2064
- const_node_ptr left = NodeTraits::get_left(node);
2065
- const_node_ptr right = NodeTraits::get_right(node);
2064
+ const_node_ptr left = NodeTraits::get_left(n);
2065
+ const_node_ptr right = NodeTraits::get_right(n);
2066
2066
  typename Checker::return_type check_return_left;
2067
2067
  typename Checker::return_type check_return_right;
2068
2068
  if (left)
2069
2069
  {
2070
- BOOST_INTRUSIVE_INVARIANT_ASSERT(NodeTraits::get_parent(left) == node);
2070
+ BOOST_INTRUSIVE_INVARIANT_ASSERT(NodeTraits::get_parent(left) == n);
2071
2071
  check_subtree(left, checker, check_return_left);
2072
2072
  }
2073
2073
  if (right)
2074
2074
  {
2075
- BOOST_INTRUSIVE_INVARIANT_ASSERT(NodeTraits::get_parent(right) == node);
2075
+ BOOST_INTRUSIVE_INVARIANT_ASSERT(NodeTraits::get_parent(right) == n);
2076
2076
  check_subtree(right, checker, check_return_right);
2077
2077
  }
2078
- checker(node, check_return_left, check_return_right, check_return);
2078
+ checker(n, check_return_left, check_return_right, check_return);
2079
2079
  }
2080
2080
  };
2081
2081
 
@@ -243,7 +243,7 @@ class any_algorithms
243
243
  typedef typename node::const_node_ptr const_node_ptr;
244
244
  typedef any_node_traits<VoidPointer> node_traits;
245
245
 
246
- //! <b>Requires</b>: node must not be part of any tree.
246
+ //! <b>Requires</b>: 'n' must not be part of any tree.
247
247
  //!
248
248
  //! <b>Effects</b>: After the function unique(node) == true.
249
249
  //!
@@ -252,19 +252,19 @@ class any_algorithms
252
252
  //! <b>Throws</b>: Nothing.
253
253
  //!
254
254
  //! <b>Nodes</b>: If node is inserted in a tree, this function corrupts the tree.
255
- BOOST_INTRUSIVE_FORCEINLINE static void init(node_ptr node) BOOST_NOEXCEPT
256
- { node->node_ptr_1 = node_ptr(); };
255
+ BOOST_INTRUSIVE_FORCEINLINE static void init(node_ptr n) BOOST_NOEXCEPT
256
+ { n->node_ptr_1 = node_ptr(); };
257
257
 
258
- //! <b>Effects</b>: Returns true if node is in the same state as if called init(node)
258
+ //! <b>Effects</b>: Returns true if 'n' is in the same state as if called init(node)
259
259
  //!
260
260
  //! <b>Complexity</b>: Constant.
261
261
  //!
262
262
  //! <b>Throws</b>: Nothing.
263
- BOOST_INTRUSIVE_FORCEINLINE static bool inited(const_node_ptr node)
264
- { return !node->node_ptr_1; };
263
+ BOOST_INTRUSIVE_FORCEINLINE static bool inited(const_node_ptr n)
264
+ { return !n->node_ptr_1; };
265
265
 
266
- BOOST_INTRUSIVE_FORCEINLINE static bool unique(const_node_ptr node) BOOST_NOEXCEPT
267
- { return !node->node_ptr_1; }
266
+ BOOST_INTRUSIVE_FORCEINLINE static bool unique(const_node_ptr n) BOOST_NOEXCEPT
267
+ { return !n->node_ptr_1; }
268
268
 
269
269
  static void unlink(node_ptr)
270
270
  {
@@ -35,21 +35,20 @@ class bstree_algorithms_base
35
35
  typedef typename NodeTraits::node_ptr node_ptr;
36
36
  typedef typename NodeTraits::const_node_ptr const_node_ptr;
37
37
 
38
- //! <b>Requires</b>: 'node' is a node from the tree except the header.
38
+ //! <b>Requires</b>: 'n' is a node from the tree except the header.
39
39
  //!
40
40
  //! <b>Effects</b>: Returns the next node of the tree.
41
41
  //!
42
42
  //! <b>Complexity</b>: Average constant time.
43
43
  //!
44
44
  //! <b>Throws</b>: Nothing.
45
- static node_ptr next_node(node_ptr node) BOOST_NOEXCEPT
45
+ static node_ptr next_node(node_ptr n) BOOST_NOEXCEPT
46
46
  {
47
- node_ptr const n_right(NodeTraits::get_right(node));
47
+ node_ptr const n_right(NodeTraits::get_right(n));
48
48
  if(n_right){
49
49
  return minimum(n_right);
50
50
  }
51
51
  else {
52
- node_ptr n(node);
53
52
  node_ptr p(NodeTraits::get_parent(n));
54
53
  while(n == NodeTraits::get_right(p)){
55
54
  n = p;
@@ -59,23 +58,23 @@ class bstree_algorithms_base
59
58
  }
60
59
  }
61
60
 
62
- //! <b>Requires</b>: 'node' is a node from the tree except the leftmost node.
61
+ //! <b>Requires</b>: 'n' is a node from the tree except the leftmost node.
63
62
  //!
64
63
  //! <b>Effects</b>: Returns the previous node of the tree.
65
64
  //!
66
65
  //! <b>Complexity</b>: Average constant time.
67
66
  //!
68
67
  //! <b>Throws</b>: Nothing.
69
- static node_ptr prev_node(node_ptr node) BOOST_NOEXCEPT
68
+ static node_ptr prev_node(node_ptr n) BOOST_NOEXCEPT
70
69
  {
71
- if(is_header(node)){
72
- return NodeTraits::get_right(node);
70
+ if(is_header(n)){
71
+ return NodeTraits::get_right(n);
73
72
  }
74
- else if(NodeTraits::get_left(node)){
75
- return maximum(NodeTraits::get_left(node));
73
+ else if(NodeTraits::get_left(n)){
74
+ return maximum(NodeTraits::get_left(n));
76
75
  }
77
76
  else {
78
- node_ptr p(node);
77
+ node_ptr p(n);
79
78
  node_ptr x = NodeTraits::get_parent(p);
80
79
  while(p == NodeTraits::get_left(x)){
81
80
  p = x;
@@ -85,38 +84,38 @@ class bstree_algorithms_base
85
84
  }
86
85
  }
87
86
 
88
- //! <b>Requires</b>: 'node' is a node of a tree but not the header.
87
+ //! <b>Requires</b>: 'n' is a node of a tree but not the header.
89
88
  //!
90
89
  //! <b>Effects</b>: Returns the minimum node of the subtree starting at p.
91
90
  //!
92
91
  //! <b>Complexity</b>: Logarithmic to the size of the subtree.
93
92
  //!
94
93
  //! <b>Throws</b>: Nothing.
95
- static node_ptr minimum(node_ptr node)
94
+ static node_ptr minimum(node_ptr n)
96
95
  {
97
- for(node_ptr p_left = NodeTraits::get_left(node)
96
+ for(node_ptr p_left = NodeTraits::get_left(n)
98
97
  ;p_left
99
- ;p_left = NodeTraits::get_left(node)){
100
- node = p_left;
98
+ ;p_left = NodeTraits::get_left(n)){
99
+ n = p_left;
101
100
  }
102
- return node;
101
+ return n;
103
102
  }
104
103
 
105
- //! <b>Requires</b>: 'node' is a node of a tree but not the header.
104
+ //! <b>Requires</b>: 'n' is a node of a tree but not the header.
106
105
  //!
107
106
  //! <b>Effects</b>: Returns the maximum node of the subtree starting at p.
108
107
  //!
109
108
  //! <b>Complexity</b>: Logarithmic to the size of the subtree.
110
109
  //!
111
110
  //! <b>Throws</b>: Nothing.
112
- static node_ptr maximum(node_ptr node)
111
+ static node_ptr maximum(node_ptr n)
113
112
  {
114
- for(node_ptr p_right = NodeTraits::get_right(node)
113
+ for(node_ptr p_right = NodeTraits::get_right(n)
115
114
  ;p_right
116
- ;p_right = NodeTraits::get_right(node)){
117
- node = p_right;
115
+ ;p_right = NodeTraits::get_right(n)){
116
+ n = p_right;
118
117
  }
119
- return node;
118
+ return n;
120
119
  }
121
120
 
122
121
  //! <b>Requires</b>: p is a node of a tree.
@@ -143,37 +142,37 @@ class bstree_algorithms_base
143
142
  return false;
144
143
  }
145
144
 
146
- //! <b>Requires</b>: 'node' is a node of the tree or a header node.
145
+ //! <b>Requires</b>: 'n' is a node of the tree or a header node.
147
146
  //!
148
147
  //! <b>Effects</b>: Returns the header of the tree.
149
148
  //!
150
149
  //! <b>Complexity</b>: Logarithmic.
151
150
  //!
152
151
  //! <b>Throws</b>: Nothing.
153
- static node_ptr get_header(const_node_ptr node)
152
+ static node_ptr get_header(const_node_ptr n)
154
153
  {
155
- node_ptr n(detail::uncast(node));
156
- node_ptr p(NodeTraits::get_parent(node));
157
- //If p is null, then n is the header of an empty tree
154
+ node_ptr nn(detail::uncast(n));
155
+ node_ptr p(NodeTraits::get_parent(n));
156
+ //If p is null, then nn is the header of an empty tree
158
157
  if(p){
159
- //Non-empty tree, check if n is neither root nor header
158
+ //Non-empty tree, check if nn is neither root nor header
160
159
  node_ptr pp(NodeTraits::get_parent(p));
161
- //If granparent is not equal to n, then n is neither root nor header,
160
+ //If granparent is not equal to nn, then nn is neither root nor header,
162
161
  //the try the fast path
163
- if(n != pp){
162
+ if(nn != pp){
164
163
  do{
165
- n = p;
164
+ nn = p;
166
165
  p = pp;
167
166
  pp = NodeTraits::get_parent(pp);
168
- }while(n != pp);
169
- n = p;
167
+ }while(nn != pp);
168
+ nn = p;
170
169
  }
171
- //Check if n is root or header when size() > 0
172
- else if(!bstree_algorithms_base::is_header(n)){
173
- n = p;
170
+ //Check if nn is root or header when size() > 0
171
+ else if(!bstree_algorithms_base::is_header(nn)){
172
+ nn = p;
174
173
  }
175
174
  }
176
- return n;
175
+ return nn;
177
176
  }
178
177
  };
179
178
 
@@ -213,6 +213,14 @@ BOOST_INTRUSIVE_FORCEINLINE typename iterator_enable_if_tag<InputIt, std::random
213
213
  it += n;
214
214
  }
215
215
 
216
+ template<class InputIt, class Distance>
217
+ BOOST_INTRUSIVE_FORCEINLINE typename iterator_enable_if_tag<InputIt, std::random_access_iterator_tag, InputIt>::type
218
+ make_iterator_advance(InputIt it, Distance n)
219
+ {
220
+ (iterator_advance)(it, n);
221
+ return it;
222
+ }
223
+
216
224
  template<class It>
217
225
  BOOST_INTRUSIVE_FORCEINLINE
218
226
  void iterator_uadvance(It& it, typename iter_size<It>::type n)
@@ -220,6 +228,14 @@ BOOST_INTRUSIVE_FORCEINLINE
220
228
  (iterator_advance)(it, (typename iterator_traits<It>::difference_type)n);
221
229
  }
222
230
 
231
+ template<class It>
232
+ BOOST_INTRUSIVE_FORCEINLINE
233
+ It make_iterator_uadvance(It it, typename iter_size<It>::type n)
234
+ {
235
+ (iterator_uadvance)(it, n);
236
+ return it;
237
+ }
238
+
223
239
  ////////////////////////////////////////
224
240
  // iterator_distance
225
241
  ////////////////////////////////////////
@@ -48,7 +48,7 @@
48
48
  #elif defined(BOOST_MSVC) && (_MSC_VER < 1900 || defined(_DEBUG))
49
49
  //"__forceinline" and MSVC seems to have some bugs in old versions and in debug mode
50
50
  #define BOOST_INTRUSIVE_FORCEINLINE inline
51
- #elif defined(BOOST_GCC) && (__GNUC__ <= 5)
51
+ #elif defined(BOOST_GCC) && ((__GNUC__ <= 5) || defined(__MINGW32__))
52
52
  //Older GCCs have problems with forceinline
53
53
  #define BOOST_INTRUSIVE_FORCEINLINE inline
54
54
  #else