passenger 6.0.2 → 6.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (468) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG +152 -19
  3. data/CONTRIBUTING.md +1 -1
  4. data/CONTRIBUTORS +5 -0
  5. data/bin/passenger-install-nginx-module +1 -1
  6. data/bin/passenger-memory-stats +65 -12
  7. data/build/support/vendor/cxxcodebuilder/lib/cxxcodebuilder/builder.rb +56 -3
  8. data/dev/copy_boost_headers +1 -0
  9. data/package.json +1 -1
  10. data/passenger.gemspec +9 -1
  11. data/resources/templates/error_renderer/with_details/dist/bundle.js +1 -1
  12. data/resources/templates/error_renderer/with_details/src/GetHelpView.jsx +1 -1
  13. data/resources/templates/error_renderer/with_details/src/bootstrap/bootstrap.css +0 -0
  14. data/resources/templates/error_renderer/with_details/src/bootstrap/bootstrap.js +0 -0
  15. data/resources/templates/error_renderer/with_details/src/bootstrap/config.json +0 -0
  16. data/resources/templates/standalone/http.erb +1 -0
  17. data/resources/templates/standalone/rails_asset_pipeline.erb +1 -1
  18. data/resources/templates/standalone/server.erb +1 -0
  19. data/src/agent/Core/ApplicationPool/Group/ProcessListManagement.cpp +1 -1
  20. data/src/agent/Core/ApplicationPool/Group/StateInspection.cpp +2 -0
  21. data/src/agent/Core/ApplicationPool/Implementation.cpp +0 -1
  22. data/src/agent/Core/ApplicationPool/Options.h +19 -0
  23. data/src/agent/Core/ApplicationPool/Pool/GarbageCollection.cpp +1 -1
  24. data/src/agent/Core/ApplicationPool/Pool/StateInspection.cpp +1 -1
  25. data/src/agent/Core/Config.h +15 -1
  26. data/src/agent/Core/Controller.h +1 -0
  27. data/src/agent/Core/Controller/Config.h +9 -1
  28. data/src/agent/Core/Controller/ForwardResponse.cpp +13 -0
  29. data/src/agent/Core/Controller/InitRequest.cpp +5 -0
  30. data/src/agent/Core/Controller/InitializationAndShutdown.cpp +1 -0
  31. data/src/agent/Core/CoreMain.cpp +1 -0
  32. data/src/agent/Core/OptionParser.h +3 -0
  33. data/src/agent/Core/SpawningKit/Config.h +11 -0
  34. data/src/agent/Core/SpawningKit/Config/AutoGeneratedCode.h +13 -0
  35. data/src/agent/Core/SpawningKit/Context.h +1 -0
  36. data/src/agent/Core/SpawningKit/Handshake/Prepare.h +1 -1
  37. data/src/agent/Core/SpawningKit/Handshake/WorkDir.h +5 -2
  38. data/src/agent/Core/SpawningKit/Spawner.h +1 -0
  39. data/src/agent/TempDirToucher/TempDirToucherMain.cpp +2 -0
  40. data/src/agent/Watchdog/Config.h +16 -1
  41. data/src/agent/Watchdog/WatchdogMain.cpp +7 -0
  42. data/src/apache2_module/Config.cpp +1 -1
  43. data/src/apache2_module/ConfigGeneral/AutoGeneratedDefinitions.cpp +15 -0
  44. data/src/apache2_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.cpp +15 -0
  45. data/src/apache2_module/ConfigGeneral/AutoGeneratedSetterFuncs.cpp +40 -0
  46. data/src/apache2_module/DirConfig/AutoGeneratedCreateFunction.cpp +10 -0
  47. data/src/apache2_module/DirConfig/AutoGeneratedHeaderSerialization.cpp +6 -0
  48. data/src/apache2_module/DirConfig/AutoGeneratedManifestGeneration.cpp +26 -0
  49. data/src/apache2_module/DirConfig/AutoGeneratedMergeFunction.cpp +14 -0
  50. data/src/apache2_module/DirConfig/AutoGeneratedStruct.h +34 -0
  51. data/src/apache2_module/Hooks.cpp +5 -0
  52. data/src/apache2_module/ServerConfig/AutoGeneratedManifestGeneration.cpp +11 -0
  53. data/src/apache2_module/ServerConfig/AutoGeneratedStruct.h +13 -0
  54. data/src/cxx_supportlib/Constants.h +4 -2
  55. data/src/cxx_supportlib/Hooks.h +1 -0
  56. data/src/cxx_supportlib/LoggingKit/Config.h +1 -0
  57. data/src/cxx_supportlib/ServerKit/HttpChunkedBodyParser.h +1 -1
  58. data/src/cxx_supportlib/SystemTools/ContainerHelpers.h +2 -2
  59. data/src/cxx_supportlib/WebSocketCommandReverseServer.h +11 -7
  60. data/src/cxx_supportlib/oxt/system_calls.cpp +10 -10
  61. data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/finder.hpp +0 -4
  62. data/src/cxx_supportlib/vendor-modified/boost/asio/buffer.hpp +46 -37
  63. data/src/cxx_supportlib/vendor-modified/boost/asio/connect.hpp +16 -15
  64. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/config.hpp +45 -26
  65. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/future.hpp +33 -0
  66. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/socket_ops.ipp +1 -1
  67. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/is_buffer_sequence.hpp +38 -14
  68. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue.hpp +2 -0
  69. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/io_context.hpp +1 -1
  70. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_until.hpp +3 -1
  71. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/use_future.hpp +0 -1
  72. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/bad_address_cast.hpp +6 -1
  73. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver.hpp +6 -4
  74. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_results.hpp +4 -4
  75. data/src/cxx_supportlib/vendor-modified/boost/asio/packaged_task.hpp +3 -3
  76. data/src/cxx_supportlib/vendor-modified/boost/asio/read.hpp +4 -4
  77. data/src/cxx_supportlib/vendor-modified/boost/asio/read_at.hpp +4 -4
  78. data/src/cxx_supportlib/vendor-modified/boost/asio/read_until.hpp +8 -6
  79. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/context_base.hpp +17 -0
  80. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/context.ipp +50 -5
  81. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/stream.hpp +2 -1
  82. data/src/cxx_supportlib/vendor-modified/boost/asio/thread_pool.hpp +1 -1
  83. data/src/cxx_supportlib/vendor-modified/boost/asio/use_future.hpp +3 -2
  84. data/src/cxx_supportlib/vendor-modified/boost/asio/version.hpp +1 -1
  85. data/src/cxx_supportlib/vendor-modified/boost/asio/write.hpp +4 -3
  86. data/src/cxx_supportlib/vendor-modified/boost/asio/write_at.hpp +5 -3
  87. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_x86_dcas.hpp +13 -12
  88. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/mac/chrono.hpp +10 -10
  89. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/mac/process_cpu_clocks.hpp +34 -34
  90. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/mac/thread_clock.hpp +4 -4
  91. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/posix/chrono.hpp +8 -8
  92. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/posix/process_cpu_clocks.hpp +27 -27
  93. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/posix/thread_clock.hpp +4 -4
  94. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/system.hpp +5 -4
  95. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/time_point_io.hpp +1 -1
  96. data/src/cxx_supportlib/vendor-modified/boost/circular_buffer.hpp +3 -3
  97. data/src/cxx_supportlib/vendor-modified/boost/circular_buffer/allocators.hpp +89 -0
  98. data/src/cxx_supportlib/vendor-modified/boost/circular_buffer/base.hpp +83 -74
  99. data/src/cxx_supportlib/vendor-modified/boost/circular_buffer/details.hpp +21 -33
  100. data/src/cxx_supportlib/vendor-modified/boost/circular_buffer/space_optimized.hpp +5 -5
  101. data/src/cxx_supportlib/vendor-modified/boost/concept/assert.hpp +1 -1
  102. data/src/cxx_supportlib/vendor-modified/boost/concept/detail/general.hpp +3 -3
  103. data/src/cxx_supportlib/vendor-modified/boost/concept/detail/has_constraints.hpp +3 -3
  104. data/src/cxx_supportlib/vendor-modified/boost/concept/usage.hpp +1 -1
  105. data/src/cxx_supportlib/vendor-modified/boost/concept_check.hpp +19 -19
  106. data/src/cxx_supportlib/vendor-modified/boost/config/auto_link.hpp +8 -0
  107. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/borland.hpp +5 -2
  108. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/clang.hpp +5 -1
  109. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/codegear.hpp +6 -2
  110. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/comeau.hpp +1 -1
  111. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/common_edg.hpp +4 -0
  112. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/cray.hpp +368 -52
  113. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/digitalmars.hpp +4 -1
  114. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/gcc.hpp +6 -3
  115. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/gcc_xml.hpp +3 -0
  116. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/greenhills.hpp +1 -1
  117. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/hp_acc.hpp +1 -1
  118. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/intel.hpp +6 -1
  119. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/kai.hpp +1 -1
  120. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/metrowerks.hpp +4 -1
  121. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/mpw.hpp +4 -1
  122. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/nvcc.hpp +3 -3
  123. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/pathscale.hpp +3 -0
  124. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/sunpro_cc.hpp +3 -0
  125. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/vacpp.hpp +4 -1
  126. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/visualc.hpp +9 -4
  127. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/xlcpp.hpp +4 -0
  128. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/xlcpp_zos.hpp +1 -0
  129. data/src/cxx_supportlib/vendor-modified/boost/config/detail/select_compiler_config.hpp +1 -2
  130. data/src/cxx_supportlib/vendor-modified/boost/config/detail/suffix.hpp +13 -0
  131. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/dinkumware.hpp +2 -2
  132. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libcpp.hpp +14 -4
  133. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libstdcpp3.hpp +4 -4
  134. data/src/cxx_supportlib/vendor-modified/boost/container/adaptive_pool.hpp +262 -2
  135. data/src/cxx_supportlib/vendor-modified/boost/container/allocator.hpp +4 -3
  136. data/src/cxx_supportlib/vendor-modified/boost/container/allocator_traits.hpp +1 -1
  137. data/src/cxx_supportlib/vendor-modified/boost/container/deque.hpp +7 -0
  138. data/src/cxx_supportlib/vendor-modified/boost/container/detail/adaptive_node_pool.hpp +22 -19
  139. data/src/cxx_supportlib/vendor-modified/boost/container/detail/adaptive_node_pool_impl.hpp +833 -459
  140. data/src/cxx_supportlib/vendor-modified/boost/container/detail/advanced_insert_int.hpp +24 -6
  141. data/src/cxx_supportlib/vendor-modified/boost/container/detail/allocator_version_traits.hpp +2 -1
  142. data/src/cxx_supportlib/vendor-modified/boost/container/detail/compare_functors.hpp +61 -5
  143. data/src/cxx_supportlib/vendor-modified/boost/container/detail/copy_move_algo.hpp +33 -8
  144. data/src/cxx_supportlib/vendor-modified/boost/container/detail/flat_tree.hpp +132 -41
  145. data/src/cxx_supportlib/vendor-modified/boost/container/detail/iterator.hpp +16 -0
  146. data/src/cxx_supportlib/vendor-modified/boost/container/detail/math_functions.hpp +54 -0
  147. data/src/cxx_supportlib/vendor-modified/boost/container/detail/mpl.hpp +58 -0
  148. data/src/cxx_supportlib/vendor-modified/boost/container/detail/multiallocation_chain.hpp +28 -23
  149. data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_alloc_holder.hpp +167 -115
  150. data/src/cxx_supportlib/vendor-modified/boost/container/detail/pair.hpp +55 -0
  151. data/src/cxx_supportlib/vendor-modified/boost/container/detail/std_fwd.hpp +3 -0
  152. data/src/cxx_supportlib/vendor-modified/boost/container/detail/thread_mutex.hpp +181 -0
  153. data/src/cxx_supportlib/vendor-modified/boost/container/detail/tree.hpp +167 -29
  154. data/src/cxx_supportlib/vendor-modified/boost/container/detail/type_traits.hpp +2 -0
  155. data/src/cxx_supportlib/vendor-modified/boost/container/detail/variadic_templates_tools.hpp +1 -1
  156. data/src/cxx_supportlib/vendor-modified/boost/container/detail/workaround.hpp +18 -0
  157. data/src/cxx_supportlib/vendor-modified/boost/container/flat_map.hpp +389 -3
  158. data/src/cxx_supportlib/vendor-modified/boost/container/flat_set.hpp +262 -0
  159. data/src/cxx_supportlib/vendor-modified/boost/container/list.hpp +52 -8
  160. data/src/cxx_supportlib/vendor-modified/boost/container/map.hpp +364 -0
  161. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/monotonic_buffer_resource.hpp +4 -2
  162. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/resource_adaptor.hpp +1 -1
  163. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/synchronized_pool_resource.hpp +3 -2
  164. data/src/cxx_supportlib/vendor-modified/boost/container/set.hpp +286 -6
  165. data/src/cxx_supportlib/vendor-modified/boost/container/slist.hpp +56 -8
  166. data/src/cxx_supportlib/vendor-modified/boost/container/small_vector.hpp +43 -6
  167. data/src/cxx_supportlib/vendor-modified/boost/container/stable_vector.hpp +100 -31
  168. data/src/cxx_supportlib/vendor-modified/boost/container/static_vector.hpp +2 -1
  169. data/src/cxx_supportlib/vendor-modified/boost/container/string.hpp +126 -69
  170. data/src/cxx_supportlib/vendor-modified/boost/container/vector.hpp +75 -51
  171. data/src/cxx_supportlib/vendor-modified/boost/core/empty_value.hpp +136 -0
  172. data/src/cxx_supportlib/vendor-modified/boost/core/exchange.hpp +49 -0
  173. data/src/cxx_supportlib/vendor-modified/boost/core/explicit_operator_bool.hpp +9 -0
  174. data/src/cxx_supportlib/vendor-modified/boost/core/lightweight_test.hpp +101 -130
  175. data/src/cxx_supportlib/vendor-modified/boost/core/lightweight_test_trait.hpp +2 -2
  176. data/src/cxx_supportlib/vendor-modified/boost/core/noncopyable.hpp +16 -1
  177. data/src/cxx_supportlib/vendor-modified/boost/core/quick_exit.hpp +59 -0
  178. data/src/cxx_supportlib/vendor-modified/boost/core/ref.hpp +2 -1
  179. data/src/cxx_supportlib/vendor-modified/boost/core/swap.hpp +9 -2
  180. data/src/cxx_supportlib/vendor-modified/boost/core/typeinfo.hpp +26 -10
  181. data/src/cxx_supportlib/vendor-modified/boost/date_time/compiler_config.hpp +5 -0
  182. data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/posix_time_duration.hpp +3 -3
  183. data/src/cxx_supportlib/vendor-modified/boost/date_time/time_duration.hpp +1 -1
  184. data/src/cxx_supportlib/vendor-modified/boost/detail/basic_pointerbuf.hpp +1 -1
  185. data/src/cxx_supportlib/vendor-modified/boost/detail/indirect_traits.hpp +38 -47
  186. data/src/cxx_supportlib/vendor-modified/boost/detail/lcast_precision.hpp +5 -5
  187. data/src/cxx_supportlib/vendor-modified/boost/detail/reference_content.hpp +7 -7
  188. data/src/cxx_supportlib/vendor-modified/boost/exception/exception.hpp +62 -58
  189. data/src/cxx_supportlib/vendor-modified/boost/function.hpp +1 -1
  190. data/src/cxx_supportlib/vendor-modified/boost/function/function_base.hpp +29 -29
  191. data/src/cxx_supportlib/vendor-modified/boost/function/function_template.hpp +38 -40
  192. data/src/cxx_supportlib/vendor-modified/boost/integer/common_factor_rt.hpp +4 -4
  193. data/src/cxx_supportlib/vendor-modified/boost/intrusive/avltree_algorithms.hpp +44 -44
  194. data/src/cxx_supportlib/vendor-modified/boost/intrusive/bstree_algorithms.hpp +39 -39
  195. data/src/cxx_supportlib/vendor-modified/boost/intrusive/circular_list_algorithms.hpp +15 -15
  196. data/src/cxx_supportlib/vendor-modified/boost/intrusive/circular_slist_algorithms.hpp +7 -7
  197. data/src/cxx_supportlib/vendor-modified/boost/intrusive/derivation_value_traits.hpp +1 -1
  198. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/any_node_and_algorithms.hpp +14 -14
  199. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/avltree_node.hpp +9 -9
  200. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/common_slist_algorithms.hpp +7 -7
  201. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/list_iterator.hpp +1 -1
  202. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/list_node.hpp +2 -2
  203. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/node_cloner_disposer.hpp +2 -2
  204. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/rbtree_node.hpp +6 -6
  205. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/simple_disposers.hpp +1 -1
  206. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/slist_iterator.hpp +1 -1
  207. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/slist_node.hpp +1 -1
  208. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/tree_iterator.hpp +1 -1
  209. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/tree_node.hpp +3 -3
  210. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/tree_value_compare.hpp +33 -14
  211. data/src/cxx_supportlib/vendor-modified/boost/intrusive/hashtable.hpp +12 -12
  212. data/src/cxx_supportlib/vendor-modified/boost/intrusive/linear_slist_algorithms.hpp +4 -4
  213. data/src/cxx_supportlib/vendor-modified/boost/intrusive/pointer_plus_bits.hpp +3 -0
  214. data/src/cxx_supportlib/vendor-modified/boost/intrusive/rbtree_algorithms.hpp +39 -39
  215. data/src/cxx_supportlib/vendor-modified/boost/intrusive/sgtree_algorithms.hpp +61 -61
  216. data/src/cxx_supportlib/vendor-modified/boost/intrusive/slist.hpp +4 -4
  217. data/src/cxx_supportlib/vendor-modified/boost/intrusive/splaytree_algorithms.hpp +66 -66
  218. data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap_algorithms.hpp +54 -54
  219. data/src/cxx_supportlib/vendor-modified/boost/intrusive/unordered_set.hpp +6 -2
  220. data/src/cxx_supportlib/vendor-modified/boost/intrusive/unordered_set_hook.hpp +3 -3
  221. data/src/cxx_supportlib/vendor-modified/boost/iterator/advance.hpp +1 -1
  222. data/src/cxx_supportlib/vendor-modified/boost/iterator/distance.hpp +65 -0
  223. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast.hpp +1 -1
  224. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/bad_lexical_cast.hpp +1 -1
  225. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical.hpp +23 -23
  226. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical_streams.hpp +4 -4
  227. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_numeric.hpp +13 -13
  228. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/inf_nan.hpp +1 -1
  229. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/is_character.hpp +5 -4
  230. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_char_constants.hpp +1 -1
  231. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_unsigned_converters.hpp +5 -5
  232. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/widest_char.hpp +5 -2
  233. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/try_lexical_convert.hpp +18 -13
  234. data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/cregex.cpp +4 -4
  235. data/src/cxx_supportlib/vendor-modified/boost/libs/system/src/error_code.cpp +16 -5
  236. data/src/cxx_supportlib/vendor-modified/boost/libs/thread/src/future.cpp +1 -1
  237. data/src/cxx_supportlib/vendor-modified/boost/libs/thread/src/pthread/thread.cpp +14 -8
  238. data/src/cxx_supportlib/vendor-modified/boost/libs/thread/src/tss_null.cpp +2 -2
  239. data/src/cxx_supportlib/vendor-modified/boost/math/special_functions/detail/fp_traits.hpp +13 -13
  240. data/src/cxx_supportlib/vendor-modified/boost/math/special_functions/math_fwd.hpp +27 -0
  241. data/src/cxx_supportlib/vendor-modified/boost/math/tools/config.hpp +1 -1
  242. data/src/cxx_supportlib/vendor-modified/boost/move/algo/adaptive_merge.hpp +29 -6
  243. data/src/cxx_supportlib/vendor-modified/boost/move/algo/adaptive_sort.hpp +12 -3
  244. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/adaptive_sort_merge.hpp +1 -1
  245. data/src/cxx_supportlib/vendor-modified/boost/move/algo/move.hpp +1 -1
  246. data/src/cxx_supportlib/vendor-modified/boost/move/algorithm.hpp +1 -1
  247. data/src/cxx_supportlib/vendor-modified/boost/move/core.hpp +8 -8
  248. data/src/cxx_supportlib/vendor-modified/boost/move/detail/meta_utils.hpp +2 -0
  249. data/src/cxx_supportlib/vendor-modified/boost/move/detail/type_traits.hpp +3 -3
  250. data/src/cxx_supportlib/vendor-modified/boost/mpl/assert.hpp +23 -3
  251. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/experimental_traits.hpp +9 -3
  252. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/old_optional_implementation.hpp +10 -11
  253. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_reference_spec.hpp +20 -1
  254. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_trivially_copyable_base.hpp +3 -3
  255. data/src/cxx_supportlib/vendor-modified/boost/optional/optional.hpp +211 -101
  256. data/src/cxx_supportlib/vendor-modified/boost/parameter/python.hpp +5 -6
  257. data/src/cxx_supportlib/vendor-modified/boost/pool/detail/mutex.hpp +119 -25
  258. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture.h +1 -0
  259. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/arm.h +5 -0
  260. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/ptx.h +44 -0
  261. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler.h +1 -0
  262. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/compaq.h +1 -1
  263. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/nvcc.h +73 -0
  264. data/src/cxx_supportlib/vendor-modified/boost/predef/detail/endian_compat.h +3 -1
  265. data/src/cxx_supportlib/vendor-modified/boost/predef/language.h +1 -0
  266. data/src/cxx_supportlib/vendor-modified/boost/predef/language/cuda.h +52 -0
  267. data/src/cxx_supportlib/vendor-modified/boost/predef/make.h +4 -0
  268. data/src/cxx_supportlib/vendor-modified/boost/predef/os/cygwin.h +6 -1
  269. data/src/cxx_supportlib/vendor-modified/boost/predef/other/endian.h +1 -2
  270. data/src/cxx_supportlib/vendor-modified/boost/predef/version.h +1 -1
  271. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/config/config.hpp +17 -8
  272. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/stringize.hpp +4 -0
  273. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/wstringize.hpp +4 -0
  274. data/src/cxx_supportlib/vendor-modified/boost/random/detail/gray_coded_qrng.hpp +166 -0
  275. data/src/cxx_supportlib/vendor-modified/boost/random/detail/niederreiter_base2_table.hpp +513 -0
  276. data/src/cxx_supportlib/vendor-modified/boost/random/detail/qrng_base.hpp +291 -0
  277. data/src/cxx_supportlib/vendor-modified/boost/random/detail/sobol_table.hpp +4106 -0
  278. data/src/cxx_supportlib/vendor-modified/boost/random/faure.hpp +367 -0
  279. data/src/cxx_supportlib/vendor-modified/boost/random/niederreiter_base2.hpp +360 -0
  280. data/src/cxx_supportlib/vendor-modified/boost/random/sobol.hpp +237 -0
  281. data/src/cxx_supportlib/vendor-modified/boost/range/as_literal.hpp +43 -0
  282. data/src/cxx_supportlib/vendor-modified/boost/range/begin.hpp +13 -5
  283. data/src/cxx_supportlib/vendor-modified/boost/range/concepts.hpp +1 -1
  284. data/src/cxx_supportlib/vendor-modified/boost/range/detail/common.hpp +1 -3
  285. data/src/cxx_supportlib/vendor-modified/boost/range/detail/implementation_help.hpp +2 -2
  286. data/src/cxx_supportlib/vendor-modified/boost/range/distance.hpp +11 -5
  287. data/src/cxx_supportlib/vendor-modified/boost/range/end.hpp +14 -6
  288. data/src/cxx_supportlib/vendor-modified/boost/range/has_range_iterator.hpp +3 -3
  289. data/src/cxx_supportlib/vendor-modified/boost/ratio/config.hpp +6 -2
  290. data/src/cxx_supportlib/vendor-modified/boost/rational.hpp +55 -37
  291. data/src/cxx_supportlib/vendor-modified/boost/regex/concepts.hpp +3 -2
  292. data/src/cxx_supportlib/vendor-modified/boost/regex/config.hpp +11 -1
  293. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex.hpp +7 -1
  294. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex_creator.hpp +3 -1
  295. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex_parser.hpp +5 -2
  296. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/fileiter.hpp +0 -3
  297. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/instances.hpp +15 -4
  298. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/match_flags.hpp +1 -2
  299. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/match_results.hpp +12 -3
  300. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher.hpp +7 -2
  301. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_common.hpp +7 -3
  302. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_non_recursive.hpp +6 -2
  303. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_format.hpp +0 -5
  304. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_iterator.hpp +0 -8
  305. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_raw_buffer.hpp +3 -3
  306. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_split.hpp +3 -1
  307. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_token_iterator.hpp +0 -8
  308. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_traits_defaults.hpp +12 -11
  309. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_workaround.hpp +7 -4
  310. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/u32regex_iterator.hpp +1 -9
  311. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/u32regex_token_iterator.hpp +2 -10
  312. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/w32_regex_traits.hpp +2 -0
  313. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/allocate_shared_array.hpp +60 -115
  314. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/local_counted_base.hpp +3 -3
  315. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp +2 -1
  316. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_aix.hpp +2 -1
  317. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_clang.hpp +2 -1
  318. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp +2 -1
  319. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_cw_x86.hpp +2 -1
  320. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp +2 -1
  321. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp +2 -1
  322. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp +2 -1
  323. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp +2 -1
  324. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp +2 -1
  325. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_nt.hpp +2 -1
  326. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_pt.hpp +2 -1
  327. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_snc_ps3.hpp +2 -1
  328. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_solaris.hpp +2 -1
  329. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_spin.hpp +2 -1
  330. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_std_atomic.hpp +2 -1
  331. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_sync.hpp +2 -1
  332. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_vacpp_ppc.hpp +2 -1
  333. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_impl.hpp +3 -3
  334. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/yield_k.hpp +14 -8
  335. data/src/cxx_supportlib/vendor-modified/boost/system/config.hpp +4 -24
  336. data/src/cxx_supportlib/vendor-modified/boost/system/detail/config.hpp +57 -0
  337. data/src/cxx_supportlib/vendor-modified/boost/system/detail/generic_category.hpp +101 -0
  338. data/src/cxx_supportlib/vendor-modified/boost/system/detail/std_interoperability.hpp +141 -0
  339. data/src/cxx_supportlib/vendor-modified/boost/system/detail/system_category_posix.hpp +132 -0
  340. data/src/cxx_supportlib/vendor-modified/boost/system/error_code.hpp +775 -588
  341. data/src/cxx_supportlib/vendor-modified/boost/system/system_error.hpp +4 -4
  342. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/config.hpp +6 -0
  343. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/move.hpp +13 -6
  344. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/nullary_function.hpp +8 -3
  345. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/thread.hpp +3 -1
  346. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/thread_safety.hpp +160 -0
  347. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/tss_hooks.hpp +2 -2
  348. data/src/cxx_supportlib/vendor-modified/boost/thread/exceptions.hpp +3 -3
  349. data/src/cxx_supportlib/vendor-modified/boost/thread/executors/basic_thread_pool.hpp +24 -1
  350. data/src/cxx_supportlib/vendor-modified/boost/thread/future.hpp +10 -1
  351. data/src/cxx_supportlib/vendor-modified/boost/thread/lock_guard.hpp +4 -4
  352. data/src/cxx_supportlib/vendor-modified/boost/thread/lockable_traits.hpp +31 -0
  353. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/condition_variable.hpp +2 -2
  354. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/condition_variable_fwd.hpp +2 -2
  355. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/mutex.hpp +8 -53
  356. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/pthread_mutex_scoped_lock.hpp +73 -4
  357. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/recursive_mutex.hpp +6 -6
  358. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/thread_data.hpp +14 -9
  359. data/src/cxx_supportlib/vendor-modified/boost/thread/xtime.hpp +6 -6
  360. data/src/cxx_supportlib/vendor-modified/boost/throw_exception.hpp +9 -8
  361. data/src/cxx_supportlib/vendor-modified/boost/token_functions.hpp +1 -0
  362. data/src/cxx_supportlib/vendor-modified/boost/type_index/stl_type_index.hpp +21 -19
  363. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/common_arithmetic_type.hpp +3 -1
  364. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/config.hpp +9 -0
  365. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/detector.hpp +1 -1
  366. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/has_postfix_operator.hpp +55 -0
  367. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/has_prefix_operator.hpp +72 -0
  368. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_function_cxx_03.hpp +108 -0
  369. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_function_cxx_11.hpp +501 -0
  370. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_function_msvc10_fix.hpp +30 -0
  371. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_likely_lambda.hpp +2 -2
  372. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_member_function_pointer_cxx_03.hpp +117 -0
  373. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_member_function_pointer_cxx_11.hpp +557 -0
  374. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_rvalue_reference_msvc10_fix.hpp +43 -0
  375. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detected.hpp +1 -1
  376. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detected_or.hpp +1 -1
  377. data/src/cxx_supportlib/vendor-modified/boost/type_traits/enable_if.hpp +37 -0
  378. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_dereference.hpp +344 -0
  379. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_minus.hpp +5 -0
  380. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_minus_assign.hpp +5 -0
  381. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_plus_assign.hpp +5 -0
  382. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_post_decrement.hpp +21 -0
  383. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_post_increment.hpp +21 -0
  384. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_pre_decrement.hpp +21 -0
  385. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_pre_increment.hpp +22 -0
  386. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_trivial_move_assign.hpp +1 -1
  387. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_trivial_move_constructor.hpp +2 -1
  388. data/src/cxx_supportlib/vendor-modified/boost/type_traits/integral_constant.hpp +5 -15
  389. data/src/cxx_supportlib/vendor-modified/boost/type_traits/intrinsics.hpp +16 -6
  390. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_complete.hpp +3 -1
  391. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_copy_assignable.hpp +3 -4
  392. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_copy_constructible.hpp +4 -6
  393. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_detected.hpp +1 -1
  394. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_detected_convertible.hpp +1 -1
  395. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_detected_exact.hpp +1 -1
  396. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_final.hpp +1 -1
  397. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_function.hpp +4 -79
  398. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_member_function_pointer.hpp +3 -97
  399. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_noncopyable.hpp +39 -0
  400. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_nothrow_move_assignable.hpp +2 -2
  401. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_nothrow_move_constructible.hpp +2 -2
  402. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_rvalue_reference.hpp +4 -0
  403. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_virtual_base_of.hpp +104 -63
  404. data/src/cxx_supportlib/vendor-modified/boost/type_traits/make_void.hpp +1 -1
  405. data/src/cxx_supportlib/vendor-modified/boost/type_traits/nonesuch.hpp +1 -1
  406. data/src/cxx_supportlib/vendor-modified/boost/typeof/constant.hpp +26 -0
  407. data/src/cxx_supportlib/vendor-modified/boost/typeof/dmc/typeof_impl.hpp +4 -4
  408. data/src/cxx_supportlib/vendor-modified/boost/typeof/encode_decode.hpp +0 -3
  409. data/src/cxx_supportlib/vendor-modified/boost/typeof/encode_decode_params.hpp +1 -1
  410. data/src/cxx_supportlib/vendor-modified/boost/typeof/int_encoding.hpp +4 -5
  411. data/src/cxx_supportlib/vendor-modified/boost/typeof/modifiers.hpp +5 -5
  412. data/src/cxx_supportlib/vendor-modified/boost/typeof/msvc/typeof_impl.hpp +9 -9
  413. data/src/cxx_supportlib/vendor-modified/boost/typeof/native.hpp +3 -3
  414. data/src/cxx_supportlib/vendor-modified/boost/typeof/pointers_data_members.hpp +2 -2
  415. data/src/cxx_supportlib/vendor-modified/boost/typeof/register_functions_iterate.hpp +6 -6
  416. data/src/cxx_supportlib/vendor-modified/boost/typeof/register_mem_functions.hpp +1 -1
  417. data/src/cxx_supportlib/vendor-modified/boost/typeof/template_encoding.hpp +4 -4
  418. data/src/cxx_supportlib/vendor-modified/boost/typeof/template_template_param.hpp +2 -2
  419. data/src/cxx_supportlib/vendor-modified/boost/typeof/type_encoding.hpp +2 -2
  420. data/src/cxx_supportlib/vendor-modified/boost/typeof/typeof_impl.hpp +16 -16
  421. data/src/cxx_supportlib/vendor-modified/boost/typeof/vector.hpp +5 -5
  422. data/src/cxx_supportlib/vendor-modified/boost/typeof/vector100.hpp +201 -201
  423. data/src/cxx_supportlib/vendor-modified/boost/typeof/vector150.hpp +301 -301
  424. data/src/cxx_supportlib/vendor-modified/boost/typeof/vector200.hpp +401 -401
  425. data/src/cxx_supportlib/vendor-modified/boost/typeof/vector50.hpp +101 -101
  426. data/src/cxx_supportlib/vendor-modified/boost/utility/detail/minstd_rand.hpp +3 -0
  427. data/src/cxx_supportlib/vendor-modified/boost/utility/string_ref.hpp +2 -0
  428. data/src/cxx_supportlib/vendor-modified/boost/utility/string_view.hpp +26 -6
  429. data/src/cxx_supportlib/vendor-modified/boost/version.hpp +2 -2
  430. data/src/cxx_supportlib/vendor-modified/modp_b64_data.h +0 -4
  431. data/src/cxx_supportlib/vendor-modified/modp_b64_strict_aliasing.cpp +5 -1
  432. data/src/helper-scripts/node-loader.js +1 -1
  433. data/src/helper-scripts/prespawn +1 -0
  434. data/src/nginx_module/ConfigGeneral/AutoGeneratedDefinitions.c +40 -0
  435. data/src/nginx_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.c +27 -0
  436. data/src/nginx_module/ConfigGeneral/AutoGeneratedSetterFuncs.c +48 -0
  437. data/src/nginx_module/Configuration.c +14 -1
  438. data/src/nginx_module/ContentHandler.c +5 -1
  439. data/src/nginx_module/LocationConfig/AutoGeneratedCreateFunction.c +21 -0
  440. data/src/nginx_module/LocationConfig/AutoGeneratedHeaderSerialization.c +30 -0
  441. data/src/nginx_module/LocationConfig/AutoGeneratedManifestGeneration.c +42 -0
  442. data/src/nginx_module/LocationConfig/AutoGeneratedMergeFunction.c +9 -0
  443. data/src/nginx_module/LocationConfig/AutoGeneratedStruct.h +15 -0
  444. data/src/nginx_module/MainConfig/AutoGeneratedCreateFunction.c +6 -0
  445. data/src/nginx_module/MainConfig/AutoGeneratedManifestGeneration.c +12 -0
  446. data/src/nginx_module/MainConfig/AutoGeneratedStruct.h +4 -0
  447. data/src/nginx_module/ngx_http_passenger_module.c +3 -2
  448. data/src/nodejs_supportlib/vendor-copy/winston/lib/winston/logger.js +0 -0
  449. data/src/ruby_supportlib/phusion_passenger.rb +8 -8
  450. data/src/ruby_supportlib/phusion_passenger/admin_tools/memory_stats.rb +1 -1
  451. data/src/ruby_supportlib/phusion_passenger/apache2/config_options.rb +22 -0
  452. data/src/ruby_supportlib/phusion_passenger/constants.rb +3 -1
  453. data/src/ruby_supportlib/phusion_passenger/loader_shared_helpers.rb +4 -2
  454. data/src/ruby_supportlib/phusion_passenger/nginx/config_options.rb +35 -0
  455. data/src/ruby_supportlib/phusion_passenger/platform_info/apache.rb +1 -1
  456. data/src/ruby_supportlib/phusion_passenger/platform_info/compiler.rb +1 -1
  457. data/src/ruby_supportlib/phusion_passenger/rack/thread_handler_extension.rb +10 -0
  458. data/src/ruby_supportlib/phusion_passenger/request_handler.rb +7 -6
  459. data/src/ruby_supportlib/phusion_passenger/request_handler/thread_handler.rb +5 -0
  460. data/src/ruby_supportlib/phusion_passenger/standalone/config_options_list.rb +13 -0
  461. data/src/ruby_supportlib/phusion_passenger/standalone/start_command/builtin_engine.rb +4 -2
  462. data/src/ruby_supportlib/phusion_passenger/standalone/start_command/nginx_engine.rb +1 -1
  463. data/src/ruby_supportlib/phusion_passenger/utils/unseekable_socket.rb +15 -11
  464. metadata +42 -8
  465. data/src/cxx_supportlib/vendor-modified/boost/call_traits.hpp +0 -20
  466. data/src/cxx_supportlib/vendor-modified/boost/detail/call_traits.hpp +0 -172
  467. data/src/cxx_supportlib/vendor-modified/boost/detail/no_exceptions_support.hpp +0 -17
  468. data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_code.ipp +0 -496
@@ -59,7 +59,7 @@ struct node_cloner
59
59
  {}
60
60
 
61
61
  // tree-based containers use this method, which is proxy-reference friendly
62
- node_ptr operator()(const node_ptr & p)
62
+ BOOST_INTRUSIVE_FORCEINLINE node_ptr operator()(const node_ptr & p)
63
63
  {
64
64
  reference_type v = *traits_->to_value_ptr(p);
65
65
  node_ptr n = traits_->to_node_ptr(*base_t::get()(v));
@@ -89,7 +89,7 @@ struct node_disposer
89
89
  : base_t(f), traits_(cont)
90
90
  {}
91
91
 
92
- void operator()(const node_ptr & p)
92
+ BOOST_INTRUSIVE_FORCEINLINE void operator()(const node_ptr & p)
93
93
  {
94
94
  if(safemode_or_autounlink)
95
95
  node_algorithms::init(p);
@@ -80,7 +80,7 @@ struct default_rbtree_node_traits_impl
80
80
  BOOST_INTRUSIVE_FORCEINLINE static node_ptr get_parent(const node_ptr & n)
81
81
  { return n->parent_; }
82
82
 
83
- BOOST_INTRUSIVE_FORCEINLINE static void set_parent(const node_ptr & n, const node_ptr & p)
83
+ BOOST_INTRUSIVE_FORCEINLINE static void set_parent(node_ptr n, node_ptr p)
84
84
  { n->parent_ = p; }
85
85
 
86
86
  BOOST_INTRUSIVE_FORCEINLINE static node_ptr get_left(const const_node_ptr & n)
@@ -89,7 +89,7 @@ struct default_rbtree_node_traits_impl
89
89
  BOOST_INTRUSIVE_FORCEINLINE static node_ptr get_left(const node_ptr & n)
90
90
  { return n->left_; }
91
91
 
92
- BOOST_INTRUSIVE_FORCEINLINE static void set_left(const node_ptr & n, const node_ptr & l)
92
+ BOOST_INTRUSIVE_FORCEINLINE static void set_left(node_ptr n, node_ptr l)
93
93
  { n->left_ = l; }
94
94
 
95
95
  BOOST_INTRUSIVE_FORCEINLINE static node_ptr get_right(const const_node_ptr & n)
@@ -98,7 +98,7 @@ struct default_rbtree_node_traits_impl
98
98
  BOOST_INTRUSIVE_FORCEINLINE static node_ptr get_right(const node_ptr & n)
99
99
  { return n->right_; }
100
100
 
101
- BOOST_INTRUSIVE_FORCEINLINE static void set_right(const node_ptr & n, const node_ptr & r)
101
+ BOOST_INTRUSIVE_FORCEINLINE static void set_right(node_ptr n, node_ptr r)
102
102
  { n->right_ = r; }
103
103
 
104
104
  BOOST_INTRUSIVE_FORCEINLINE static color get_color(const const_node_ptr & n)
@@ -136,7 +136,7 @@ struct compact_rbtree_node_traits_impl
136
136
  BOOST_INTRUSIVE_FORCEINLINE static node_ptr get_parent(const node_ptr & n)
137
137
  { return ptr_bit::get_pointer(n->parent_); }
138
138
 
139
- BOOST_INTRUSIVE_FORCEINLINE static void set_parent(const node_ptr & n, const node_ptr & p)
139
+ BOOST_INTRUSIVE_FORCEINLINE static void set_parent(node_ptr n, node_ptr p)
140
140
  { ptr_bit::set_pointer(n->parent_, p); }
141
141
 
142
142
  BOOST_INTRUSIVE_FORCEINLINE static node_ptr get_left(const const_node_ptr & n)
@@ -145,7 +145,7 @@ struct compact_rbtree_node_traits_impl
145
145
  BOOST_INTRUSIVE_FORCEINLINE static node_ptr get_left(const node_ptr & n)
146
146
  { return n->left_; }
147
147
 
148
- BOOST_INTRUSIVE_FORCEINLINE static void set_left(const node_ptr & n, const node_ptr & l)
148
+ BOOST_INTRUSIVE_FORCEINLINE static void set_left(node_ptr n, node_ptr l)
149
149
  { n->left_ = l; }
150
150
 
151
151
  BOOST_INTRUSIVE_FORCEINLINE static node_ptr get_right(const const_node_ptr & n)
@@ -154,7 +154,7 @@ struct compact_rbtree_node_traits_impl
154
154
  BOOST_INTRUSIVE_FORCEINLINE static node_ptr get_right(const node_ptr & n)
155
155
  { return n->right_; }
156
156
 
157
- BOOST_INTRUSIVE_FORCEINLINE static void set_right(const node_ptr & n, const node_ptr & r)
157
+ BOOST_INTRUSIVE_FORCEINLINE static void set_right(node_ptr n, node_ptr r)
158
158
  { n->right_ = r; }
159
159
 
160
160
  BOOST_INTRUSIVE_FORCEINLINE static color get_color(const const_node_ptr & n)
@@ -39,7 +39,7 @@ class init_disposer
39
39
  typedef typename NodeAlgorithms::node_ptr node_ptr;
40
40
 
41
41
  public:
42
- void operator()(const node_ptr & p)
42
+ BOOST_INTRUSIVE_FORCEINLINE void operator()(const node_ptr & p)
43
43
  { NodeAlgorithms::init(p); }
44
44
  };
45
45
 
@@ -68,7 +68,7 @@ class slist_iterator
68
68
  : members_(other.pointed_node(), other.get_value_traits())
69
69
  {}
70
70
 
71
- BOOST_INTRUSIVE_FORCEINLINE const node_ptr &pointed_node() const
71
+ BOOST_INTRUSIVE_FORCEINLINE node_ptr pointed_node() const
72
72
  { return members_.nodeptr_; }
73
73
 
74
74
  BOOST_INTRUSIVE_FORCEINLINE slist_iterator &operator=(const node_ptr &node)
@@ -52,7 +52,7 @@ struct slist_node_traits
52
52
  BOOST_INTRUSIVE_FORCEINLINE static node_ptr get_next(const node_ptr & n)
53
53
  { return n->next_; }
54
54
 
55
- BOOST_INTRUSIVE_FORCEINLINE static void set_next(const node_ptr & n, const node_ptr & next)
55
+ BOOST_INTRUSIVE_FORCEINLINE static void set_next(node_ptr n, node_ptr next)
56
56
  { n->next_ = next; }
57
57
  };
58
58
 
@@ -74,7 +74,7 @@ class tree_iterator
74
74
  : members_(other.pointed_node(), other.get_value_traits())
75
75
  {}
76
76
 
77
- BOOST_INTRUSIVE_FORCEINLINE const node_ptr &pointed_node() const
77
+ BOOST_INTRUSIVE_FORCEINLINE node_ptr pointed_node() const
78
78
  { return members_.nodeptr_; }
79
79
 
80
80
  BOOST_INTRUSIVE_FORCEINLINE tree_iterator &operator=(const node_ptr &nodeptr)
@@ -50,7 +50,7 @@ struct tree_node_traits
50
50
  BOOST_INTRUSIVE_FORCEINLINE static node_ptr get_parent(const node_ptr & n)
51
51
  { return n->parent_; }
52
52
 
53
- BOOST_INTRUSIVE_FORCEINLINE static void set_parent(const node_ptr & n, const node_ptr & p)
53
+ BOOST_INTRUSIVE_FORCEINLINE static void set_parent(node_ptr n, node_ptr p)
54
54
  { n->parent_ = p; }
55
55
 
56
56
  BOOST_INTRUSIVE_FORCEINLINE static node_ptr get_left(const const_node_ptr & n)
@@ -59,7 +59,7 @@ struct tree_node_traits
59
59
  BOOST_INTRUSIVE_FORCEINLINE static node_ptr get_left(const node_ptr & n)
60
60
  { return n->left_; }
61
61
 
62
- BOOST_INTRUSIVE_FORCEINLINE static void set_left(const node_ptr & n, const node_ptr & l)
62
+ BOOST_INTRUSIVE_FORCEINLINE static void set_left(node_ptr n, node_ptr l)
63
63
  { n->left_ = l; }
64
64
 
65
65
  BOOST_INTRUSIVE_FORCEINLINE static node_ptr get_right(const const_node_ptr & n)
@@ -68,7 +68,7 @@ struct tree_node_traits
68
68
  BOOST_INTRUSIVE_FORCEINLINE static node_ptr get_right(const node_ptr & n)
69
69
  { return n->right_; }
70
70
 
71
- BOOST_INTRUSIVE_FORCEINLINE static void set_right(const node_ptr & n, const node_ptr & r)
71
+ BOOST_INTRUSIVE_FORCEINLINE static void set_right(node_ptr n, node_ptr r)
72
72
  { n->right_ = r; }
73
73
  };
74
74
 
@@ -45,7 +45,7 @@ struct disable_if_smartref_to
45
45
 
46
46
  //This function object takes a KeyCompare function object
47
47
  //and compares values that contains keys using KeyOfValue
48
- template< class ValuePtr, class KeyCompare, class KeyOfValue
48
+ template< class ValuePtr, class KeyCompare, class KeyOfValue, class Ret = bool
49
49
  , bool = boost::intrusive::detail::is_same
50
50
  <typename boost::movelib::pointer_element<ValuePtr>::type, typename KeyOfValue::type>::value >
51
51
  struct tree_value_compare
@@ -80,41 +80,52 @@ struct tree_value_compare
80
80
  BOOST_INTRUSIVE_FORCEINLINE const key_compare &key_comp() const
81
81
  { return static_cast<const key_compare &>(*this); }
82
82
 
83
- BOOST_INTRUSIVE_FORCEINLINE bool operator()(const key_type &key1, const key_type &key2) const
83
+ BOOST_INTRUSIVE_FORCEINLINE Ret operator()(const key_type &key) const
84
+ { return this->key_comp()(key); }
85
+
86
+ BOOST_INTRUSIVE_FORCEINLINE Ret operator()(const value_type &value) const
87
+ { return this->key_comp()(KeyOfValue()(value)); }
88
+
89
+ template<class U>
90
+ BOOST_INTRUSIVE_FORCEINLINE Ret operator()( const U &nonkey
91
+ , typename disable_if_smartref_to<U, ValuePtr>::type* = 0) const
92
+ { return this->key_comp()(nonkey); }
93
+
94
+ BOOST_INTRUSIVE_FORCEINLINE Ret operator()(const key_type &key1, const key_type &key2) const
84
95
  { return this->key_comp()(key1, key2); }
85
96
 
86
- BOOST_INTRUSIVE_FORCEINLINE bool operator()(const value_type &value1, const value_type &value2) const
97
+ BOOST_INTRUSIVE_FORCEINLINE Ret operator()(const value_type &value1, const value_type &value2) const
87
98
  { return this->key_comp()(KeyOfValue()(value1), KeyOfValue()(value2)); }
88
99
 
89
- BOOST_INTRUSIVE_FORCEINLINE bool operator()(const key_type &key1, const value_type &value2) const
100
+ BOOST_INTRUSIVE_FORCEINLINE Ret operator()(const key_type &key1, const value_type &value2) const
90
101
  { return this->key_comp()(key1, KeyOfValue()(value2)); }
91
102
 
92
- BOOST_INTRUSIVE_FORCEINLINE bool operator()(const value_type &value1, const key_type &key2) const
103
+ BOOST_INTRUSIVE_FORCEINLINE Ret operator()(const value_type &value1, const key_type &key2) const
93
104
  { return this->key_comp()(KeyOfValue()(value1), key2); }
94
105
 
95
106
  template<class U>
96
- BOOST_INTRUSIVE_FORCEINLINE bool operator()( const key_type &key1, const U &nonkey2
107
+ BOOST_INTRUSIVE_FORCEINLINE Ret operator()( const key_type &key1, const U &nonkey2
97
108
  , typename disable_if_smartref_to<U, ValuePtr>::type* = 0) const
98
109
  { return this->key_comp()(key1, nonkey2); }
99
110
 
100
111
  template<class U>
101
- BOOST_INTRUSIVE_FORCEINLINE bool operator()( const U &nonkey1, const key_type &key2
112
+ BOOST_INTRUSIVE_FORCEINLINE Ret operator()( const U &nonkey1, const key_type &key2
102
113
  , typename disable_if_smartref_to<U, ValuePtr>::type* = 0) const
103
114
  { return this->key_comp()(nonkey1, key2); }
104
115
 
105
116
  template<class U>
106
- BOOST_INTRUSIVE_FORCEINLINE bool operator()( const value_type &value1, const U &nonvalue2
117
+ BOOST_INTRUSIVE_FORCEINLINE Ret operator()( const value_type &value1, const U &nonvalue2
107
118
  , typename disable_if_smartref_to<U, ValuePtr>::type* = 0) const
108
119
  { return this->key_comp()(KeyOfValue()(value1), nonvalue2); }
109
120
 
110
121
  template<class U>
111
- BOOST_INTRUSIVE_FORCEINLINE bool operator()( const U &nonvalue1, const value_type &value2
122
+ BOOST_INTRUSIVE_FORCEINLINE Ret operator()( const U &nonvalue1, const value_type &value2
112
123
  , typename disable_if_smartref_to<U, ValuePtr>::type* = 0) const
113
124
  { return this->key_comp()(nonvalue1, KeyOfValue()(value2)); }
114
125
  };
115
126
 
116
- template<class ValuePtr, class KeyCompare, class KeyOfValue>
117
- struct tree_value_compare<ValuePtr, KeyCompare, KeyOfValue, true>
127
+ template<class ValuePtr, class KeyCompare, class KeyOfValue, class Ret>
128
+ struct tree_value_compare<ValuePtr, KeyCompare, KeyOfValue, Ret, true>
118
129
  : public boost::intrusive::detail::ebo_functor_holder<KeyCompare>
119
130
  {
120
131
  typedef typename
@@ -147,16 +158,24 @@ struct tree_value_compare<ValuePtr, KeyCompare, KeyOfValue, true>
147
158
  BOOST_INTRUSIVE_FORCEINLINE const key_compare &key_comp() const
148
159
  { return static_cast<const key_compare &>(*this); }
149
160
 
150
- BOOST_INTRUSIVE_FORCEINLINE bool operator()(const key_type &key1, const key_type &key2) const
161
+ BOOST_INTRUSIVE_FORCEINLINE Ret operator()(const key_type &key) const
162
+ { return this->key_comp()(key); }
163
+
164
+ template<class U>
165
+ BOOST_INTRUSIVE_FORCEINLINE Ret operator()( const U &nonkey
166
+ , typename disable_if_smartref_to<U, ValuePtr>::type* = 0) const
167
+ { return this->key_comp()(nonkey); }
168
+
169
+ BOOST_INTRUSIVE_FORCEINLINE Ret operator()(const key_type &key1, const key_type &key2) const
151
170
  { return this->key_comp()(key1, key2); }
152
171
 
153
172
  template<class U>
154
- BOOST_INTRUSIVE_FORCEINLINE bool operator()( const key_type &key1, const U &nonkey2
173
+ BOOST_INTRUSIVE_FORCEINLINE Ret operator()( const key_type &key1, const U &nonkey2
155
174
  , typename disable_if_smartref_to<U, ValuePtr>::type* = 0) const
156
175
  { return this->key_comp()(key1, nonkey2); }
157
176
 
158
177
  template<class U>
159
- BOOST_INTRUSIVE_FORCEINLINE bool operator()(const U &nonkey1, const key_type &key2
178
+ BOOST_INTRUSIVE_FORCEINLINE Ret operator()(const U &nonkey1, const key_type &key2
160
179
  , typename disable_if_smartref_to<U, ValuePtr>::type* = 0) const
161
180
  { return this->key_comp()(nonkey1, key2); }
162
181
  };
@@ -375,7 +375,7 @@ struct group_functions
375
375
  typedef circular_slist_algorithms<node_traits> node_algorithms;
376
376
 
377
377
  static slist_node_ptr get_bucket_before_begin
378
- (const slist_node_ptr &bucket_beg, const slist_node_ptr &bucket_end, const node_ptr &p)
378
+ (slist_node_ptr bucket_beg, slist_node_ptr bucket_end, node_ptr p)
379
379
  {
380
380
  //First find the last node of p's group.
381
381
  //This requires checking the first node of the next group or
@@ -406,7 +406,7 @@ struct group_functions
406
406
  return possible_end;
407
407
  }
408
408
 
409
- static node_ptr get_prev_to_first_in_group(const slist_node_ptr &bucket_node, const node_ptr &first_in_group)
409
+ static node_ptr get_prev_to_first_in_group(slist_node_ptr bucket_node, node_ptr first_in_group)
410
410
  {
411
411
  node_ptr nb = detail::dcast_bucket_ptr<node>(bucket_node);
412
412
  node_ptr n;
@@ -416,7 +416,7 @@ struct group_functions
416
416
  return nb;
417
417
  }
418
418
 
419
- static void erase_from_group(const slist_node_ptr &end_ptr, const node_ptr &to_erase_ptr, detail::true_)
419
+ static void erase_from_group(slist_node_ptr end_ptr, node_ptr to_erase_ptr, detail::true_)
420
420
  {
421
421
  node_ptr const nxt_ptr(node_traits::get_next(to_erase_ptr));
422
422
  //Check if the next node is in the group (not end node) and reverse linked to
@@ -429,7 +429,7 @@ struct group_functions
429
429
  BOOST_INTRUSIVE_FORCEINLINE static void erase_from_group(const slist_node_ptr&, const node_ptr&, detail::false_)
430
430
  {}
431
431
 
432
- BOOST_INTRUSIVE_FORCEINLINE static node_ptr get_last_in_group(const node_ptr &first_in_group, detail::true_)
432
+ BOOST_INTRUSIVE_FORCEINLINE static node_ptr get_last_in_group(node_ptr first_in_group, detail::true_)
433
433
  { return group_traits::get_next(first_in_group); }
434
434
 
435
435
  BOOST_INTRUSIVE_FORCEINLINE static node_ptr get_last_in_group(node_ptr n, detail::false_)
@@ -449,10 +449,10 @@ struct group_functions
449
449
  return node_traits::get_next(group_traits::get_next(ptr));
450
450
  }
451
451
 
452
- BOOST_INTRUSIVE_FORCEINLINE static node_ptr get_first_in_group(const node_ptr &n, detail::false_)
452
+ BOOST_INTRUSIVE_FORCEINLINE static node_ptr get_first_in_group(node_ptr n, detail::false_)
453
453
  { return n; }
454
454
 
455
- BOOST_INTRUSIVE_FORCEINLINE static void insert_in_group(const node_ptr &first_in_group, const node_ptr &n, true_)
455
+ BOOST_INTRUSIVE_FORCEINLINE static void insert_in_group(node_ptr first_in_group, node_ptr n, true_)
456
456
  { group_algorithms::link_after(first_in_group, n); }
457
457
 
458
458
  static void insert_in_group(const node_ptr&, const node_ptr&, false_)
@@ -672,8 +672,8 @@ struct bucket_plus_vtraits
672
672
  typedef detail::bucket_impl<slist_impl> bucket_type;
673
673
  typedef detail::group_functions<node_traits> group_functions_t;
674
674
  typedef typename slist_impl::node_algorithms node_algorithms;
675
- typedef typename slist_impl::node_ptr slist_node_ptr;
676
- typedef typename node_traits::node_ptr node_ptr;
675
+ typedef typename slist_impl::node_ptr slist_node_ptr;
676
+ typedef typename node_traits::node_ptr node_ptr;
677
677
  typedef typename node_traits::node node;
678
678
  typedef typename value_traits::value_type value_type;
679
679
  typedef typename value_traits::pointer pointer;
@@ -1383,15 +1383,15 @@ struct hashdata_internal
1383
1383
  <const_pointer>::reference const_reference;
1384
1384
  typedef typename value_traits::node_traits node_traits;
1385
1385
  typedef typename node_traits::node node;
1386
- typedef typename node_traits::node_ptr node_ptr;
1387
- typedef typename node_traits::const_node_ptr const_node_ptr;
1386
+ typedef typename node_traits::node_ptr node_ptr;
1387
+ typedef typename node_traits::const_node_ptr const_node_ptr;
1388
1388
  typedef detail::node_functions<node_traits> node_functions_t;
1389
1389
  typedef typename detail::get_slist_impl
1390
1390
  <typename detail::reduced_slist_node_traits
1391
1391
  <typename value_traits::node_traits>::type
1392
1392
  >::type slist_impl;
1393
1393
  typedef typename slist_impl::node_algorithms node_algorithms;
1394
- typedef typename slist_impl::node_ptr slist_node_ptr;
1394
+ typedef typename slist_impl::node_ptr slist_node_ptr;
1395
1395
 
1396
1396
  typedef hash_key_types_base
1397
1397
  < typename ValueTraits::value_type
@@ -1740,7 +1740,7 @@ class hashtable_impl
1740
1740
  //See documentation for more explanations
1741
1741
  BOOST_STATIC_ASSERT((!compare_hash || store_hash));
1742
1742
 
1743
- typedef typename slist_impl::node_ptr slist_node_ptr;
1743
+ typedef typename slist_impl::node_ptr slist_node_ptr;
1744
1744
  typedef typename pointer_traits
1745
1745
  <slist_node_ptr>::template rebind_pointer
1746
1746
  < void >::type void_pointer;
@@ -184,7 +184,7 @@ class linear_slist_algorithms
184
184
  //! <b>Complexity</b>: Constant
185
185
  //!
186
186
  //! <b>Throws</b>: Nothing.
187
- static void swap_trailing_nodes(const node_ptr & this_node, const node_ptr & other_node)
187
+ static void swap_trailing_nodes(node_ptr this_node, node_ptr other_node)
188
188
  {
189
189
  node_ptr this_nxt = NodeTraits::get_next(this_node);
190
190
  node_ptr other_nxt = NodeTraits::get_next(other_node);
@@ -199,7 +199,7 @@ class linear_slist_algorithms
199
199
  //! <b>Throws</b>: Nothing.
200
200
  //!
201
201
  //! <b>Complexity</b>: This function is linear to the contained elements.
202
- static node_ptr reverse(const node_ptr & p)
202
+ static node_ptr reverse(node_ptr p)
203
203
  {
204
204
  if(!p) return node_ptr();
205
205
  node_ptr i = NodeTraits::get_next(p);
@@ -222,7 +222,7 @@ class linear_slist_algorithms
222
222
  //! <b>Throws</b>: Nothing.
223
223
  //!
224
224
  //! <b>Complexity</b>: Linear to the number of elements plus the number moved positions.
225
- static std::pair<node_ptr, node_ptr> move_first_n_backwards(const node_ptr & p, std::size_t n)
225
+ static std::pair<node_ptr, node_ptr> move_first_n_backwards(node_ptr p, std::size_t n)
226
226
  {
227
227
  std::pair<node_ptr, node_ptr> ret;
228
228
  //Null shift, or count() == 0 or 1, nothing to do
@@ -277,7 +277,7 @@ class linear_slist_algorithms
277
277
  //! <b>Throws</b>: Nothing.
278
278
  //!
279
279
  //! <b>Complexity</b>: Linear to the number of elements plus the number moved positions.
280
- static std::pair<node_ptr, node_ptr> move_first_n_forward(const node_ptr & p, std::size_t n)
280
+ static std::pair<node_ptr, node_ptr> move_first_n_forward(node_ptr p, std::size_t n)
281
281
  {
282
282
  std::pair<node_ptr, node_ptr> ret;
283
283
  //Null shift, or count() == 0 or 1, nothing to do
@@ -30,6 +30,9 @@
30
30
  # if (BOOST_GCC >= 40600)
31
31
  # pragma GCC diagnostic push
32
32
  # pragma GCC diagnostic ignored "-Wuninitialized"
33
+ # if (BOOST_GCC >= 40700)
34
+ # pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
35
+ # endif
33
36
  # endif
34
37
  #endif
35
38
 
@@ -54,7 +54,7 @@ struct rbtree_node_cloner
54
54
  : base_t(f)
55
55
  {}
56
56
 
57
- node_ptr operator()(const node_ptr & p)
57
+ BOOST_INTRUSIVE_FORCEINLINE node_ptr operator()(node_ptr p)
58
58
  {
59
59
  node_ptr n = base_t::get()(p);
60
60
  NodeTraits::set_color(n, NodeTraits::get_color(p));
@@ -200,12 +200,12 @@ class rbtree_algorithms
200
200
  static node_ptr end_node(const const_node_ptr & header);
201
201
 
202
202
  //! @copydoc ::boost::intrusive::bstree_algorithms::swap_tree
203
- static void swap_tree(const node_ptr & header1, const node_ptr & header2);
203
+ static void swap_tree(node_ptr header1, node_ptr header2);
204
204
 
205
205
  #endif //#ifdef BOOST_INTRUSIVE_DOXYGEN_INVOKED
206
206
 
207
- //! @copydoc ::boost::intrusive::bstree_algorithms::swap_nodes(const node_ptr&,const node_ptr&)
208
- static void swap_nodes(const node_ptr & node1, const node_ptr & node2)
207
+ //! @copydoc ::boost::intrusive::bstree_algorithms::swap_nodes(node_ptr,node_ptr)
208
+ static void swap_nodes(node_ptr node1, node_ptr node2)
209
209
  {
210
210
  if(node1 == node2)
211
211
  return;
@@ -214,8 +214,8 @@ class rbtree_algorithms
214
214
  swap_nodes(node1, header1, node2, header2);
215
215
  }
216
216
 
217
- //! @copydoc ::boost::intrusive::bstree_algorithms::swap_nodes(const node_ptr&,const node_ptr&,const node_ptr&,const node_ptr&)
218
- static void swap_nodes(const node_ptr & node1, const node_ptr & header1, const node_ptr & node2, const node_ptr & header2)
217
+ //! @copydoc ::boost::intrusive::bstree_algorithms::swap_nodes(node_ptr,node_ptr,node_ptr,node_ptr)
218
+ static void swap_nodes(node_ptr node1, node_ptr header1, node_ptr node2, node_ptr header2)
219
219
  {
220
220
  if(node1 == node2) return;
221
221
 
@@ -226,22 +226,22 @@ class rbtree_algorithms
226
226
  NodeTraits::set_color(node2, c);
227
227
  }
228
228
 
229
- //! @copydoc ::boost::intrusive::bstree_algorithms::replace_node(const node_ptr&,const node_ptr&)
230
- static void replace_node(const node_ptr & node_to_be_replaced, const node_ptr & new_node)
229
+ //! @copydoc ::boost::intrusive::bstree_algorithms::replace_node(node_ptr,node_ptr)
230
+ static void replace_node(node_ptr node_to_be_replaced, node_ptr new_node)
231
231
  {
232
232
  if(node_to_be_replaced == new_node)
233
233
  return;
234
234
  replace_node(node_to_be_replaced, bstree_algo::get_header(node_to_be_replaced), new_node);
235
235
  }
236
236
 
237
- //! @copydoc ::boost::intrusive::bstree_algorithms::replace_node(const node_ptr&,const node_ptr&,const node_ptr&)
238
- static void replace_node(const node_ptr & node_to_be_replaced, const node_ptr & header, const node_ptr & new_node)
237
+ //! @copydoc ::boost::intrusive::bstree_algorithms::replace_node(node_ptr,node_ptr,node_ptr)
238
+ static void replace_node(node_ptr node_to_be_replaced, node_ptr header, node_ptr new_node)
239
239
  {
240
240
  bstree_algo::replace_node(node_to_be_replaced, header, new_node);
241
241
  NodeTraits::set_color(new_node, NodeTraits::get_color(node_to_be_replaced));
242
242
  }
243
243
 
244
- //! @copydoc ::boost::intrusive::bstree_algorithms::unlink(const node_ptr&)
244
+ //! @copydoc ::boost::intrusive::bstree_algorithms::unlink(node_ptr)
245
245
  static void unlink(const node_ptr& node)
246
246
  {
247
247
  node_ptr x = NodeTraits::get_parent(node);
@@ -268,19 +268,19 @@ class rbtree_algorithms
268
268
  //! @copydoc ::boost::intrusive::bstree_algorithms::prev_node(const node_ptr&)
269
269
  static node_ptr prev_node(const node_ptr & node);
270
270
 
271
- //! @copydoc ::boost::intrusive::bstree_algorithms::init(const node_ptr&)
271
+ //! @copydoc ::boost::intrusive::bstree_algorithms::init(node_ptr)
272
272
  static void init(const node_ptr & node);
273
273
  #endif //#ifdef BOOST_INTRUSIVE_DOXYGEN_INVOKED
274
274
 
275
- //! @copydoc ::boost::intrusive::bstree_algorithms::init_header(const node_ptr&)
276
- static void init_header(const node_ptr & header)
275
+ //! @copydoc ::boost::intrusive::bstree_algorithms::init_header(node_ptr)
276
+ static void init_header(node_ptr header)
277
277
  {
278
278
  bstree_algo::init_header(header);
279
279
  NodeTraits::set_color(header, NodeTraits::red());
280
280
  }
281
281
 
282
- //! @copydoc ::boost::intrusive::bstree_algorithms::erase(const node_ptr&,const node_ptr&)
283
- static node_ptr erase(const node_ptr & header, const node_ptr & z)
282
+ //! @copydoc ::boost::intrusive::bstree_algorithms::erase(node_ptr,node_ptr)
283
+ static node_ptr erase(node_ptr header, node_ptr z)
284
284
  {
285
285
  typename bstree_algo::data_for_rebalance info;
286
286
  bstree_algo::erase(header, z, info);
@@ -291,7 +291,7 @@ class rbtree_algorithms
291
291
  //! @copydoc ::boost::intrusive::bstree_algorithms::transfer_unique
292
292
  template<class NodePtrCompare>
293
293
  static bool transfer_unique
294
- (const node_ptr & header1, NodePtrCompare comp, const node_ptr &header2, const node_ptr & z)
294
+ (node_ptr header1, NodePtrCompare comp, node_ptr header2, node_ptr z)
295
295
  {
296
296
  typename bstree_algo::data_for_rebalance info;
297
297
  bool const transferred = bstree_algo::transfer_unique(header1, comp, header2, z, info);
@@ -305,7 +305,7 @@ class rbtree_algorithms
305
305
  //! @copydoc ::boost::intrusive::bstree_algorithms::transfer_equal
306
306
  template<class NodePtrCompare>
307
307
  static void transfer_equal
308
- (const node_ptr & header1, NodePtrCompare comp, const node_ptr &header2, const node_ptr & z)
308
+ (node_ptr header1, NodePtrCompare comp, node_ptr header2, node_ptr z)
309
309
  {
310
310
  typename bstree_algo::data_for_rebalance info;
311
311
  bstree_algo::transfer_equal(header1, comp, header2, z, info);
@@ -313,10 +313,10 @@ class rbtree_algorithms
313
313
  rebalance_after_insertion(header1, z);
314
314
  }
315
315
 
316
- //! @copydoc ::boost::intrusive::bstree_algorithms::clone(const const_node_ptr&,const node_ptr&,Cloner,Disposer)
316
+ //! @copydoc ::boost::intrusive::bstree_algorithms::clone(const const_node_ptr&,node_ptr,Cloner,Disposer)
317
317
  template <class Cloner, class Disposer>
318
318
  static void clone
319
- (const const_node_ptr & source_header, const node_ptr & target_header, Cloner cloner, Disposer disposer)
319
+ (const_node_ptr source_header, node_ptr target_header, Cloner cloner, Disposer disposer)
320
320
  {
321
321
  rbtree_node_cloner<NodeTraits, Cloner> new_cloner(cloner);
322
322
  bstree_algo::clone(source_header, target_header, new_cloner, disposer);
@@ -359,54 +359,54 @@ class rbtree_algorithms
359
359
 
360
360
  #endif //#ifdef BOOST_INTRUSIVE_DOXYGEN_INVOKED
361
361
 
362
- //! @copydoc ::boost::intrusive::bstree_algorithms::insert_equal_upper_bound(const node_ptr&,const node_ptr&,NodePtrCompare)
362
+ //! @copydoc ::boost::intrusive::bstree_algorithms::insert_equal_upper_bound(node_ptr,node_ptr,NodePtrCompare)
363
363
  template<class NodePtrCompare>
364
364
  static node_ptr insert_equal_upper_bound
365
- (const node_ptr & h, const node_ptr & new_node, NodePtrCompare comp)
365
+ (node_ptr h, node_ptr new_node, NodePtrCompare comp)
366
366
  {
367
367
  bstree_algo::insert_equal_upper_bound(h, new_node, comp);
368
368
  rebalance_after_insertion(h, new_node);
369
369
  return new_node;
370
370
  }
371
371
 
372
- //! @copydoc ::boost::intrusive::bstree_algorithms::insert_equal_lower_bound(const node_ptr&,const node_ptr&,NodePtrCompare)
372
+ //! @copydoc ::boost::intrusive::bstree_algorithms::insert_equal_lower_bound(node_ptr,node_ptr,NodePtrCompare)
373
373
  template<class NodePtrCompare>
374
374
  static node_ptr insert_equal_lower_bound
375
- (const node_ptr & h, const node_ptr & new_node, NodePtrCompare comp)
375
+ (node_ptr h, node_ptr new_node, NodePtrCompare comp)
376
376
  {
377
377
  bstree_algo::insert_equal_lower_bound(h, new_node, comp);
378
378
  rebalance_after_insertion(h, new_node);
379
379
  return new_node;
380
380
  }
381
381
 
382
- //! @copydoc ::boost::intrusive::bstree_algorithms::insert_equal(const node_ptr&,const node_ptr&,const node_ptr&,NodePtrCompare)
382
+ //! @copydoc ::boost::intrusive::bstree_algorithms::insert_equal(node_ptr,node_ptr,node_ptr,NodePtrCompare)
383
383
  template<class NodePtrCompare>
384
384
  static node_ptr insert_equal
385
- (const node_ptr & header, const node_ptr & hint, const node_ptr & new_node, NodePtrCompare comp)
385
+ (node_ptr header, node_ptr hint, node_ptr new_node, NodePtrCompare comp)
386
386
  {
387
387
  bstree_algo::insert_equal(header, hint, new_node, comp);
388
388
  rebalance_after_insertion(header, new_node);
389
389
  return new_node;
390
390
  }
391
391
 
392
- //! @copydoc ::boost::intrusive::bstree_algorithms::insert_before(const node_ptr&,const node_ptr&,const node_ptr&)
392
+ //! @copydoc ::boost::intrusive::bstree_algorithms::insert_before(node_ptr,node_ptr,node_ptr)
393
393
  static node_ptr insert_before
394
- (const node_ptr & header, const node_ptr & pos, const node_ptr & new_node)
394
+ (node_ptr header, node_ptr pos, node_ptr new_node)
395
395
  {
396
396
  bstree_algo::insert_before(header, pos, new_node);
397
397
  rebalance_after_insertion(header, new_node);
398
398
  return new_node;
399
399
  }
400
400
 
401
- //! @copydoc ::boost::intrusive::bstree_algorithms::push_back(const node_ptr&,const node_ptr&)
402
- static void push_back(const node_ptr & header, const node_ptr & new_node)
401
+ //! @copydoc ::boost::intrusive::bstree_algorithms::push_back(node_ptr,node_ptr)
402
+ static void push_back(node_ptr header, node_ptr new_node)
403
403
  {
404
404
  bstree_algo::push_back(header, new_node);
405
405
  rebalance_after_insertion(header, new_node);
406
406
  }
407
407
 
408
- //! @copydoc ::boost::intrusive::bstree_algorithms::push_front(const node_ptr&,const node_ptr&)
409
- static void push_front(const node_ptr & header, const node_ptr & new_node)
408
+ //! @copydoc ::boost::intrusive::bstree_algorithms::push_front(node_ptr,node_ptr)
409
+ static void push_front(node_ptr header, node_ptr new_node)
410
410
  {
411
411
  bstree_algo::push_front(header, new_node);
412
412
  rebalance_after_insertion(header, new_node);
@@ -416,19 +416,19 @@ class rbtree_algorithms
416
416
  //! @copydoc ::boost::intrusive::bstree_algorithms::insert_unique_check(const const_node_ptr&,const KeyType&,KeyNodePtrCompare,insert_commit_data&)
417
417
  template<class KeyType, class KeyNodePtrCompare>
418
418
  static std::pair<node_ptr, bool> insert_unique_check
419
- (const const_node_ptr & header, const KeyType &key
419
+ (const_node_ptr header, const KeyType &key
420
420
  ,KeyNodePtrCompare comp, insert_commit_data &commit_data);
421
421
 
422
422
  //! @copydoc ::boost::intrusive::bstree_algorithms::insert_unique_check(const const_node_ptr&,const node_ptr&,const KeyType&,KeyNodePtrCompare,insert_commit_data&)
423
423
  template<class KeyType, class KeyNodePtrCompare>
424
424
  static std::pair<node_ptr, bool> insert_unique_check
425
- (const const_node_ptr & header, const node_ptr &hint, const KeyType &key
425
+ (const_node_ptr header, node_ptr hint, const KeyType &key
426
426
  ,KeyNodePtrCompare comp, insert_commit_data &commit_data);
427
427
  #endif //#ifdef BOOST_INTRUSIVE_DOXYGEN_INVOKED
428
428
 
429
- //! @copydoc ::boost::intrusive::bstree_algorithms::insert_unique_commit(const node_ptr&,const node_ptr&,const insert_commit_data&)
429
+ //! @copydoc ::boost::intrusive::bstree_algorithms::insert_unique_commit(node_ptr,node_ptr,const insert_commit_data&)
430
430
  static void insert_unique_commit
431
- (const node_ptr & header, const node_ptr & new_value, const insert_commit_data &commit_data)
431
+ (node_ptr header, node_ptr new_value, const insert_commit_data &commit_data)
432
432
  {
433
433
  bstree_algo::insert_unique_commit(header, new_value, commit_data);
434
434
  rebalance_after_insertion(header, new_value);
@@ -445,7 +445,7 @@ class rbtree_algorithms
445
445
  private:
446
446
 
447
447
  static void rebalance_after_erasure
448
- ( const node_ptr & header, const node_ptr &z, const typename bstree_algo::data_for_rebalance &info)
448
+ ( node_ptr header, node_ptr z, const typename bstree_algo::data_for_rebalance &info)
449
449
  {
450
450
  color new_z_color;
451
451
  if(info.y != z){
@@ -461,7 +461,7 @@ class rbtree_algorithms
461
461
  }
462
462
  }
463
463
 
464
- static void rebalance_after_erasure_restore_invariants(const node_ptr & header, node_ptr x, node_ptr x_parent)
464
+ static void rebalance_after_erasure_restore_invariants(node_ptr header, node_ptr x, node_ptr x_parent)
465
465
  {
466
466
  while(1){
467
467
  if(x_parent == header || (x && NodeTraits::get_color(x) != NodeTraits::black())){
@@ -545,7 +545,7 @@ class rbtree_algorithms
545
545
  NodeTraits::set_color(x, NodeTraits::black());
546
546
  }
547
547
 
548
- static void rebalance_after_insertion(const node_ptr & header, node_ptr p)
548
+ static void rebalance_after_insertion(node_ptr header, node_ptr p)
549
549
  {
550
550
  NodeTraits::set_color(p, NodeTraits::red());
551
551
  while(1){