passenger 6.2.1 → 6.2.2

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 (270) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG +37 -15
  3. data/build/cxx_tests.rb +2 -0
  4. data/build/support/cxx_dependency_map.rb +3 -63
  5. data/src/agent/Core/Config.h +1 -1
  6. data/src/agent/Core/Controller/Config.h +1 -1
  7. data/src/agent/Shared/ApiServerUtils.h +1 -1
  8. data/src/agent/Watchdog/Config.h +1 -1
  9. data/src/apache2_module/Hooks.cpp +13 -0
  10. data/src/apache2_module/Utils.h +14 -0
  11. data/src/cxx_supportlib/Constants.h +1 -1
  12. data/src/cxx_supportlib/FileTools/FileManip.cpp +27 -3
  13. data/src/cxx_supportlib/InstanceDirectory.h +30 -3
  14. data/src/cxx_supportlib/ServerKit/Errors.h +1 -1
  15. data/src/cxx_supportlib/ServerKit/HttpHeaderParser.h +1 -1
  16. data/src/cxx_supportlib/ServerKit/HttpHeaderParserState.h +1 -1
  17. data/src/cxx_supportlib/ServerKit/HttpRequest.h +1 -1
  18. data/src/cxx_supportlib/ServerKit/llerrors.h +3 -3
  19. data/src/cxx_supportlib/ServerKit/llversion.h +1 -1
  20. data/src/cxx_supportlib/{ServerKit/llhttp_api.c → vendor-copy/llhttp/api.c} +30 -23
  21. data/src/cxx_supportlib/{ServerKit → vendor-copy/llhttp}/llhttp.c +1756 -1645
  22. data/src/cxx_supportlib/{ServerKit → vendor-copy/llhttp}/llhttp.h +35 -13
  23. data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/classification.hpp +19 -0
  24. data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/formatter.hpp +1 -1
  25. data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/trim_all.hpp +0 -2
  26. data/src/cxx_supportlib/vendor-modified/boost/assert.hpp +20 -13
  27. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_gcc_x86.hpp +2 -2
  28. data/src/cxx_supportlib/vendor-modified/boost/atomic/thread_pause.hpp +4 -0
  29. data/src/cxx_supportlib/vendor-modified/boost/bind/mem_fn.hpp +1 -1
  30. data/src/cxx_supportlib/vendor-modified/boost/circular_buffer/debug.hpp +4 -0
  31. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx03.hpp +1 -1
  32. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx11.hpp +1 -1
  33. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx14.hpp +1 -1
  34. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx17.hpp +1 -1
  35. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx20.hpp +1 -1
  36. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx23.hpp +1 -1
  37. data/src/cxx_supportlib/vendor-modified/boost/config/auto_link.hpp +6 -1
  38. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/clang_version.hpp +10 -1
  39. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/visualc.hpp +5 -3
  40. data/src/cxx_supportlib/vendor-modified/boost/config/detail/cxx_composite.hpp +1 -1
  41. data/src/cxx_supportlib/vendor-modified/boost/config/workaround.hpp +5 -0
  42. data/src/cxx_supportlib/vendor-modified/boost/container/adaptive_pool.hpp +57 -53
  43. data/src/cxx_supportlib/vendor-modified/boost/container/allocator.hpp +10 -10
  44. data/src/cxx_supportlib/vendor-modified/boost/container/allocator_traits.hpp +34 -2
  45. data/src/cxx_supportlib/vendor-modified/boost/container/container_fwd.hpp +14 -2
  46. data/src/cxx_supportlib/vendor-modified/boost/container/deque.hpp +176 -2287
  47. data/src/cxx_supportlib/vendor-modified/boost/container/detail/adaptive_node_pool.hpp +13 -9
  48. data/src/cxx_supportlib/vendor-modified/boost/container/detail/adaptive_node_pool_impl.hpp +186 -70
  49. data/src/cxx_supportlib/vendor-modified/boost/container/detail/algorithm.hpp +2 -2
  50. data/src/cxx_supportlib/vendor-modified/boost/container/detail/aligned_allocation.hpp +149 -0
  51. data/src/cxx_supportlib/vendor-modified/boost/container/detail/alloc_helpers.hpp +35 -0
  52. data/src/cxx_supportlib/vendor-modified/boost/container/detail/alloc_lib.h +1 -0
  53. data/src/cxx_supportlib/vendor-modified/boost/container/detail/bit_utilities.hpp +133 -0
  54. data/src/cxx_supportlib/vendor-modified/boost/container/detail/compare_functors.hpp +18 -3
  55. data/src/cxx_supportlib/vendor-modified/boost/container/detail/config_begin.hpp +5 -0
  56. data/src/cxx_supportlib/vendor-modified/boost/container/detail/config_end.hpp +4 -0
  57. data/src/cxx_supportlib/vendor-modified/boost/container/detail/container_rebind.hpp +1 -1
  58. data/src/cxx_supportlib/vendor-modified/boost/container/detail/copy_move_algo.hpp +20 -10
  59. data/src/cxx_supportlib/vendor-modified/boost/container/detail/deque_impl.hpp +2744 -0
  60. data/src/cxx_supportlib/vendor-modified/boost/container/detail/dispatch_uses_allocator.hpp +202 -104
  61. data/src/cxx_supportlib/vendor-modified/boost/container/detail/dlmalloc.hpp +5 -4
  62. data/src/cxx_supportlib/vendor-modified/boost/container/detail/flat_tree.hpp +161 -85
  63. data/src/cxx_supportlib/vendor-modified/boost/container/detail/is_constructible.hpp +180 -0
  64. data/src/cxx_supportlib/vendor-modified/boost/container/detail/iterators.hpp +3 -2
  65. data/src/cxx_supportlib/vendor-modified/boost/container/detail/math_functions.hpp +12 -0
  66. data/src/cxx_supportlib/vendor-modified/boost/container/detail/mpl.hpp +16 -0
  67. data/src/cxx_supportlib/vendor-modified/boost/container/detail/mutex.hpp +1 -1
  68. data/src/cxx_supportlib/vendor-modified/boost/container/detail/next_capacity.hpp +9 -1
  69. data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_pool.hpp +18 -14
  70. data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_pool_impl.hpp +256 -41
  71. data/src/cxx_supportlib/vendor-modified/boost/container/detail/operator_new_helpers.hpp +75 -24
  72. data/src/cxx_supportlib/vendor-modified/boost/container/detail/pair.hpp +1 -56
  73. data/src/cxx_supportlib/vendor-modified/boost/container/detail/placement_new.hpp +16 -3
  74. data/src/cxx_supportlib/vendor-modified/boost/container/detail/pool_common_alloc.hpp +1 -7
  75. data/src/cxx_supportlib/vendor-modified/boost/container/detail/range_utils.hpp +196 -0
  76. data/src/cxx_supportlib/vendor-modified/boost/container/detail/std_fwd.hpp +33 -1
  77. data/src/cxx_supportlib/vendor-modified/boost/container/detail/tree.hpp +124 -69
  78. data/src/cxx_supportlib/vendor-modified/boost/container/detail/workaround.hpp +109 -7
  79. data/src/cxx_supportlib/vendor-modified/boost/container/devector.hpp +168 -162
  80. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/nest.hpp +2978 -0
  81. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/pmr/nest.hpp +45 -0
  82. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_all_of.hpp +43 -0
  83. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_any_of.hpp +42 -0
  84. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_copy.hpp +229 -0
  85. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_copy_if.hpp +270 -0
  86. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_copy_n.hpp +308 -0
  87. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_count.hpp +101 -0
  88. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_count_if.hpp +100 -0
  89. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_equal.hpp +268 -0
  90. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_fill.hpp +101 -0
  91. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_fill_n.hpp +171 -0
  92. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_find.hpp +110 -0
  93. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_find_if.hpp +110 -0
  94. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_find_if_not.hpp +43 -0
  95. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_find_last.hpp +179 -0
  96. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_find_last_if.hpp +179 -0
  97. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_find_last_if_not.hpp +43 -0
  98. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_for_each.hpp +92 -0
  99. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_generate.hpp +90 -0
  100. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_generate_n.hpp +162 -0
  101. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_is_partitioned.hpp +46 -0
  102. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_is_sorted.hpp +49 -0
  103. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_is_sorted_until.hpp +169 -0
  104. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_iterator_traits.hpp +382 -0
  105. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_merge.hpp +428 -0
  106. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_mismatch.hpp +350 -0
  107. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_none_of.hpp +98 -0
  108. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_partition.hpp +296 -0
  109. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_partition_copy.hpp +105 -0
  110. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_partition_point.hpp +116 -0
  111. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_remove.hpp +57 -0
  112. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_remove_copy.hpp +207 -0
  113. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_remove_copy_if.hpp +223 -0
  114. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_remove_if.hpp +57 -0
  115. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_replace.hpp +90 -0
  116. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_replace_if.hpp +90 -0
  117. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_reverse.hpp +245 -0
  118. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_reverse_copy.hpp +229 -0
  119. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_search.hpp +211 -0
  120. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_search_n.hpp +476 -0
  121. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_set_difference.hpp +300 -0
  122. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_set_intersection.hpp +287 -0
  123. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_set_symmetric_difference.hpp +306 -0
  124. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_set_union.hpp +294 -0
  125. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_stable_partition.hpp +153 -0
  126. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_swap_ranges.hpp +92 -0
  127. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_transform.hpp +93 -0
  128. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/wrapped_iterator.hpp +142 -0
  129. data/src/cxx_supportlib/vendor-modified/boost/container/flat_map.hpp +642 -417
  130. data/src/cxx_supportlib/vendor-modified/boost/container/flat_set.hpp +141 -30
  131. data/src/cxx_supportlib/vendor-modified/boost/container/hub.hpp +2426 -0
  132. data/src/cxx_supportlib/vendor-modified/boost/container/list.hpp +65 -57
  133. data/src/cxx_supportlib/vendor-modified/boost/container/map.hpp +247 -68
  134. data/src/cxx_supportlib/vendor-modified/boost/container/new_allocator.hpp +7 -0
  135. data/src/cxx_supportlib/vendor-modified/boost/container/node_allocator.hpp +39 -33
  136. data/src/cxx_supportlib/vendor-modified/boost/container/options.hpp +156 -23
  137. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/global_resource.hpp +3 -3
  138. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/hub.hpp +43 -0
  139. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/memory_resource.hpp +5 -3
  140. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/monotonic_buffer_resource.hpp +1 -0
  141. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/polymorphic_allocator.hpp +1 -1
  142. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/resource_adaptor.hpp +4 -0
  143. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/segtor.hpp +45 -0
  144. data/src/cxx_supportlib/vendor-modified/boost/container/scoped_allocator.hpp +5 -4
  145. data/src/cxx_supportlib/vendor-modified/boost/container/segtor.hpp +905 -0
  146. data/src/cxx_supportlib/vendor-modified/boost/container/set.hpp +148 -35
  147. data/src/cxx_supportlib/vendor-modified/boost/container/slist.hpp +59 -52
  148. data/src/cxx_supportlib/vendor-modified/boost/container/small_vector.hpp +632 -5
  149. data/src/cxx_supportlib/vendor-modified/boost/container/stable_vector.hpp +66 -60
  150. data/src/cxx_supportlib/vendor-modified/boost/container/static_vector.hpp +46 -1
  151. data/src/cxx_supportlib/vendor-modified/boost/container/string.hpp +612 -317
  152. data/src/cxx_supportlib/vendor-modified/boost/container/uses_allocator.hpp +54 -111
  153. data/src/cxx_supportlib/vendor-modified/boost/container/uses_allocator_construction.hpp +100 -0
  154. data/src/cxx_supportlib/vendor-modified/boost/container/uses_allocator_fwd.hpp +1 -3
  155. data/src/cxx_supportlib/vendor-modified/boost/container/vector.hpp +233 -116
  156. data/src/cxx_supportlib/vendor-modified/boost/container_hash/hash.hpp +5 -1
  157. data/src/cxx_supportlib/vendor-modified/boost/core/lightweight_test.hpp +17 -10
  158. data/src/cxx_supportlib/vendor-modified/boost/date_time/period.hpp +1 -3
  159. data/src/cxx_supportlib/vendor-modified/boost/describe/detail/config.hpp +16 -0
  160. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/encoder.hpp +114 -0
  161. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/error_info_impl.hpp +4 -0
  162. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/requires_cxx11.hpp +1 -1
  163. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/type_info.hpp +211 -1
  164. data/src/cxx_supportlib/vendor-modified/boost/exception/diagnostic_information.hpp +59 -0
  165. data/src/cxx_supportlib/vendor-modified/boost/exception/exception.hpp +6 -0
  166. data/src/cxx_supportlib/vendor-modified/boost/exception/info.hpp +34 -0
  167. data/src/cxx_supportlib/vendor-modified/boost/intrusive/avltree.hpp +0 -1
  168. data/src/cxx_supportlib/vendor-modified/boost/intrusive/bstree.hpp +12 -3
  169. data/src/cxx_supportlib/vendor-modified/boost/intrusive/derivation_value_traits.hpp +1 -1
  170. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/ebo_functor_holder.hpp +29 -174
  171. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/generic_hook.hpp +18 -2
  172. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/key_nodeptr_comp.hpp +0 -1
  173. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/workaround.hpp +4 -5
  174. data/src/cxx_supportlib/vendor-modified/boost/intrusive/hashtable.hpp +20 -11
  175. data/src/cxx_supportlib/vendor-modified/boost/intrusive/list.hpp +42 -14
  176. data/src/cxx_supportlib/vendor-modified/boost/intrusive/slist.hpp +58 -22
  177. data/src/cxx_supportlib/vendor-modified/boost/intrusive/unordered_set.hpp +3 -1
  178. data/src/cxx_supportlib/vendor-modified/boost/iterator/advance.hpp +5 -1
  179. data/src/cxx_supportlib/vendor-modified/boost/iterator/distance.hpp +8 -2
  180. data/src/cxx_supportlib/vendor-modified/boost/iterator/is_iterator.hpp +9 -0
  181. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/bad_lexical_cast.hpp +11 -1
  182. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/buffer_view.hpp +9 -1
  183. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/config.hpp +22 -0
  184. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical.hpp +15 -7
  185. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical_streams.hpp +23 -11
  186. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_numeric.hpp +11 -1
  187. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/inf_nan.hpp +9 -1
  188. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/is_character.hpp +11 -2
  189. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_basic_unlockedbuf.hpp +10 -1
  190. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_char_constants.hpp +8 -1
  191. data/src/cxx_supportlib/vendor-modified/boost/{detail → lexical_cast/detail}/lcast_precision.hpp +13 -1
  192. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_unsigned_converters.hpp +11 -1
  193. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/widest_char.hpp +10 -2
  194. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/try_lexical_convert.hpp +15 -2
  195. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast.hpp +11 -1
  196. data/src/cxx_supportlib/vendor-modified/boost/libs/thread/src/pthread/once_atomic.cpp +1 -1
  197. data/src/cxx_supportlib/vendor-modified/boost/libs/thread/src/pthread/thread.cpp +48 -46
  198. data/src/cxx_supportlib/vendor-modified/boost/move/detail/meta_utils.hpp +23 -0
  199. data/src/cxx_supportlib/vendor-modified/boost/move/detail/move_helpers.hpp +24 -24
  200. data/src/cxx_supportlib/vendor-modified/boost/move/detail/nsec_clock.hpp +12 -4
  201. data/src/cxx_supportlib/vendor-modified/boost/move/detail/type_traits.hpp +76 -0
  202. data/src/cxx_supportlib/vendor-modified/boost/move/detail/workaround.hpp +1 -1
  203. data/src/cxx_supportlib/vendor-modified/boost/move/traits.hpp +11 -0
  204. data/src/cxx_supportlib/vendor-modified/boost/mp11/algorithm.hpp +58 -37
  205. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_copy_if.hpp +1 -2
  206. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_map_find.hpp +17 -9
  207. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_remove_if.hpp +1 -2
  208. data/src/cxx_supportlib/vendor-modified/boost/mp11/integer_sequence.hpp +6 -0
  209. data/src/cxx_supportlib/vendor-modified/boost/mp11/version.hpp +1 -1
  210. data/src/cxx_supportlib/vendor-modified/boost/none_t.hpp +6 -1
  211. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_common_defs.hpp +188 -0
  212. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_factory_support.hpp +0 -6
  213. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_hash.hpp +1 -1
  214. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_nonmember_interface.hpp +117 -0
  215. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_reference_spec.hpp +108 -83
  216. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_relops.hpp +39 -39
  217. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_select_implementation.hpp +37 -0
  218. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_swap.hpp +1 -1
  219. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_trivially_copyable_base.hpp +8 -8
  220. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/union_optional.hpp +724 -0
  221. data/src/cxx_supportlib/vendor-modified/boost/optional/optional.hpp +93 -220
  222. data/src/cxx_supportlib/vendor-modified/boost/optional/optional_fwd.hpp +14 -4
  223. data/src/cxx_supportlib/vendor-modified/boost/optional/optional_io.hpp +1 -1
  224. data/src/cxx_supportlib/vendor-modified/boost/random/binomial_distribution.hpp +1 -1
  225. data/src/cxx_supportlib/vendor-modified/boost/random/uniform_int_distribution.hpp +1 -1
  226. data/src/cxx_supportlib/vendor-modified/boost/rational.hpp +1 -1
  227. data/src/cxx_supportlib/vendor-modified/boost/static_assert.hpp +4 -6
  228. data/src/cxx_supportlib/vendor-modified/boost/system/api_config.hpp +1 -1
  229. data/src/cxx_supportlib/vendor-modified/boost/system/detail/config.hpp +16 -0
  230. data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_category.hpp +13 -13
  231. data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_category_impl.hpp +5 -5
  232. data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/detail/sync_deque_base.hpp +3 -2
  233. data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/detail/sync_queue_base.hpp +3 -2
  234. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/thread.hpp +2 -1
  235. data/src/cxx_supportlib/vendor-modified/boost/thread/experimental/parallel/v2/task_region.hpp +1 -1
  236. data/src/cxx_supportlib/vendor-modified/boost/thread/future.hpp +30 -28
  237. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/once.hpp +6 -3
  238. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/once_atomic.hpp +5 -1
  239. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/pthread_helpers.hpp +1 -0
  240. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/shared_mutex.hpp +16 -16
  241. data/src/cxx_supportlib/vendor-modified/boost/thread/v2/shared_mutex.hpp +26 -26
  242. data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_flat_map.hpp +196 -6
  243. data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_flat_set.hpp +191 -6
  244. data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_node_map.hpp +196 -5
  245. data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_node_set.hpp +192 -5
  246. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/concurrent_table.hpp +3 -3
  247. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/core.hpp +2 -2
  248. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/table.hpp +3 -3
  249. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/implementation.hpp +52 -16
  250. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/ranges_support.hpp +104 -0
  251. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/type_traits.hpp +1 -14
  252. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/unordered_printers.hpp +10 -4
  253. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_map.hpp +121 -3
  254. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_set.hpp +118 -3
  255. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_map.hpp +338 -1
  256. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_map.hpp +121 -3
  257. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_set.hpp +118 -3
  258. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_set.hpp +333 -1
  259. data/src/cxx_supportlib/vendor-modified/boost/version.hpp +2 -2
  260. data/src/cxx_supportlib/vendor-modified/jsoncpp/json-forwards.h +276 -143
  261. data/src/cxx_supportlib/vendor-modified/jsoncpp/json.h +1262 -771
  262. data/src/cxx_supportlib/vendor-modified/jsoncpp/jsoncpp.cpp +1704 -1586
  263. data/src/nginx_module/ContentHandler.c +35 -0
  264. data/src/ruby_supportlib/phusion_passenger/common_library.rb +6 -6
  265. data/src/ruby_supportlib/phusion_passenger/utils/json.rb +25 -2
  266. data/src/ruby_supportlib/phusion_passenger/vendor/daemon_controller.rb +12 -1
  267. data/src/ruby_supportlib/phusion_passenger.rb +1 -1
  268. metadata +73 -8
  269. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_utility.hpp +0 -41
  270. /data/src/cxx_supportlib/{ServerKit/llhttp_http.c → vendor-copy/llhttp/http.c} +0 -0
@@ -1,6 +1,6 @@
1
1
  // Copyright Kevlin Henney, 2000-2005.
2
2
  // Copyright Alexander Nasonov, 2006-2010.
3
- // Copyright Antony Polukhin, 2011-2025.
3
+ // Copyright Antony Polukhin, 2011-2026.
4
4
  //
5
5
  // Distributed under the Boost Software License, Version 1.0. (See
6
6
  // accompanying file LICENSE_1_0.txt or copy at
@@ -18,13 +18,20 @@
18
18
  #ifndef BOOST_LEXICAL_CAST_DETAIL_IS_CHARACTER_HPP
19
19
  #define BOOST_LEXICAL_CAST_DETAIL_IS_CHARACTER_HPP
20
20
 
21
- #include <type_traits>
21
+ #include <boost/lexical_cast/detail/config.hpp>
22
+
23
+ #if !defined(BOOST_USE_MODULES) || defined(BOOST_LEXICAL_CAST_INTERFACE_UNIT)
22
24
 
25
+ #ifndef BOOST_LEXICAL_CAST_INTERFACE_UNIT
23
26
  #include <boost/config.hpp>
24
27
  #ifdef BOOST_HAS_PRAGMA_ONCE
25
28
  # pragma once
26
29
  #endif
27
30
 
31
+ #include <type_traits>
32
+
33
+ #endif // #ifndef BOOST_LEXICAL_CAST_INTERFACE_UNIT
34
+
28
35
  namespace boost { namespace detail {
29
36
 
30
37
  // returns true, if T is one of the character types
@@ -47,5 +54,7 @@ using is_character = std::integral_constant<
47
54
 
48
55
  }}
49
56
 
57
+ #endif // #if !defined(BOOST_USE_MODULES) || defined(BOOST_LEXICAL_CAST_INTERFACE_UNIT)
58
+
50
59
  #endif // BOOST_LEXICAL_CAST_DETAIL_IS_CHARACTER_HPP
51
60
 
@@ -1,6 +1,6 @@
1
1
  // Copyright Kevlin Henney, 2000-2005.
2
2
  // Copyright Alexander Nasonov, 2006-2010.
3
- // Copyright Antony Polukhin, 2011-2025.
3
+ // Copyright Antony Polukhin, 2011-2026.
4
4
  //
5
5
  // Distributed under the Boost Software License, Version 1.0. (See
6
6
  // accompanying file LICENSE_1_0.txt or copy at
@@ -9,6 +9,12 @@
9
9
  #ifndef BOOST_LEXICAL_CAST_DETAIL_CONVERTER_LEXICAL_BASIC_UNLOCKEDBUF_HPP
10
10
  #define BOOST_LEXICAL_CAST_DETAIL_CONVERTER_LEXICAL_BASIC_UNLOCKEDBUF_HPP
11
11
 
12
+ #include <boost/lexical_cast/detail/config.hpp>
13
+
14
+ #if !defined(BOOST_USE_MODULES) || defined(BOOST_LEXICAL_CAST_INTERFACE_UNIT)
15
+
16
+ #ifndef BOOST_LEXICAL_CAST_INTERFACE_UNIT
17
+
12
18
  #include <boost/config.hpp>
13
19
  #ifdef BOOST_HAS_PRAGMA_ONCE
14
20
  # pragma once
@@ -25,6 +31,7 @@
25
31
  #ifndef BOOST_NO_CWCHAR
26
32
  # include <cwchar>
27
33
  #endif
34
+ #endif // #ifndef BOOST_LEXICAL_CAST_INTERFACE_UNIT
28
35
 
29
36
  namespace boost { namespace detail { namespace lcast {
30
37
 
@@ -69,5 +76,7 @@ namespace boost { namespace detail { namespace lcast {
69
76
 
70
77
  }}} // namespace boost::detail::lcast
71
78
 
79
+ #endif // #if !defined(BOOST_USE_MODULES) || defined(BOOST_LEXICAL_CAST_INTERFACE_UNIT)
80
+
72
81
  #endif // BOOST_LEXICAL_CAST_DETAIL_CONVERTER_LEXICAL_BASIC_UNLOCKEDBUF_HPP
73
82
 
@@ -1,6 +1,6 @@
1
1
  // Copyright Kevlin Henney, 2000-2005.
2
2
  // Copyright Alexander Nasonov, 2006-2010.
3
- // Copyright Antony Polukhin, 2011-2025.
3
+ // Copyright Antony Polukhin, 2011-2026.
4
4
  //
5
5
  // Distributed under the Boost Software License, Version 1.0. (See
6
6
  // accompanying file LICENSE_1_0.txt or copy at
@@ -18,10 +18,16 @@
18
18
  #ifndef BOOST_LEXICAL_CAST_DETAIL_LCAST_CHAR_CONSTANTS_HPP
19
19
  #define BOOST_LEXICAL_CAST_DETAIL_LCAST_CHAR_CONSTANTS_HPP
20
20
 
21
+ #include <boost/lexical_cast/detail/config.hpp>
22
+
23
+ #if !defined(BOOST_USE_MODULES) || defined(BOOST_LEXICAL_CAST_INTERFACE_UNIT)
24
+
25
+ #ifndef BOOST_LEXICAL_CAST_INTERFACE_UNIT
21
26
  #include <boost/config.hpp>
22
27
  #ifdef BOOST_HAS_PRAGMA_ONCE
23
28
  # pragma once
24
29
  #endif
30
+ #endif // #ifndef BOOST_LEXICAL_CAST_INTERFACE_UNIT
25
31
 
26
32
  namespace boost
27
33
  {
@@ -41,6 +47,7 @@ namespace boost
41
47
  }
42
48
  } // namespace boost
43
49
 
50
+ #endif // #if !defined(BOOST_USE_MODULES) || defined(BOOST_LEXICAL_CAST_INTERFACE_UNIT)
44
51
 
45
52
  #endif // BOOST_LEXICAL_CAST_DETAIL_LCAST_CHAR_CONSTANTS_HPP
46
53
 
@@ -8,11 +8,21 @@
8
8
  #ifndef BOOST_DETAIL_LCAST_PRECISION_HPP_INCLUDED
9
9
  #define BOOST_DETAIL_LCAST_PRECISION_HPP_INCLUDED
10
10
 
11
+ #include <boost/lexical_cast/detail/config.hpp>
12
+
13
+ #if !defined(BOOST_USE_MODULES) || defined(BOOST_LEXICAL_CAST_INTERFACE_UNIT)
14
+
15
+ #ifndef BOOST_LEXICAL_CAST_INTERFACE_UNIT
16
+ #include <boost/config.hpp>
17
+ #ifdef BOOST_HAS_PRAGMA_ONCE
18
+ # pragma once
19
+ #endif
20
+
11
21
  #include <climits>
12
22
  #include <ios>
13
23
  #include <limits>
14
24
 
15
- #include <boost/config.hpp>
25
+ #endif // #ifndef BOOST_LEXICAL_CAST_INTERFACE_UNIT
16
26
 
17
27
  namespace boost { namespace detail {
18
28
 
@@ -79,5 +89,7 @@ inline void lcast_set_precision(std::ios_base& stream, Source*, Target*)
79
89
 
80
90
  }}
81
91
 
92
+ #endif // #if !defined(BOOST_USE_MODULES) || defined(BOOST_LEXICAL_CAST_INTERFACE_UNIT)
93
+
82
94
  #endif // BOOST_DETAIL_LCAST_PRECISION_HPP_INCLUDED
83
95
 
@@ -1,6 +1,6 @@
1
1
  // Copyright Kevlin Henney, 2000-2005.
2
2
  // Copyright Alexander Nasonov, 2006-2010.
3
- // Copyright Antony Polukhin, 2011-2025.
3
+ // Copyright Antony Polukhin, 2011-2026.
4
4
  //
5
5
  // Distributed under the Boost Software License, Version 1.0. (See
6
6
  // accompanying file LICENSE_1_0.txt or copy at
@@ -18,6 +18,11 @@
18
18
  #ifndef BOOST_LEXICAL_CAST_DETAIL_LCAST_UNSIGNED_CONVERTERS_HPP
19
19
  #define BOOST_LEXICAL_CAST_DETAIL_LCAST_UNSIGNED_CONVERTERS_HPP
20
20
 
21
+ #include <boost/lexical_cast/detail/config.hpp>
22
+
23
+ #if !defined(BOOST_USE_MODULES) || defined(BOOST_LEXICAL_CAST_INTERFACE_UNIT)
24
+
25
+ #ifndef BOOST_LEXICAL_CAST_INTERFACE_UNIT
21
26
  #include <boost/config.hpp>
22
27
  #ifdef BOOST_HAS_PRAGMA_ONCE
23
28
  # pragma once
@@ -49,6 +54,9 @@
49
54
 
50
55
  #include <boost/lexical_cast/detail/lcast_char_constants.hpp>
51
56
  #include <boost/core/noncopyable.hpp>
57
+ #endif // #ifndef BOOST_LEXICAL_CAST_INTERFACE_UNIT
58
+
59
+ #include <boost/lexical_cast/detail/lcast_char_constants.hpp>
52
60
 
53
61
  namespace boost
54
62
  {
@@ -294,5 +302,7 @@ namespace boost
294
302
  }
295
303
  } // namespace boost
296
304
 
305
+ #endif // #if !defined(BOOST_USE_MODULES) || defined(BOOST_LEXICAL_CAST_INTERFACE_UNIT)
306
+
297
307
  #endif // BOOST_LEXICAL_CAST_DETAIL_LCAST_UNSIGNED_CONVERTERS_HPP
298
308
 
@@ -1,6 +1,6 @@
1
1
  // Copyright Kevlin Henney, 2000-2005.
2
2
  // Copyright Alexander Nasonov, 2006-2010.
3
- // Copyright Antony Polukhin, 2011-2025.
3
+ // Copyright Antony Polukhin, 2011-2026.
4
4
  //
5
5
  // Distributed under the Boost Software License, Version 1.0. (See
6
6
  // accompanying file LICENSE_1_0.txt or copy at
@@ -18,13 +18,19 @@
18
18
  #ifndef BOOST_LEXICAL_CAST_DETAIL_WIDEST_CHAR_HPP
19
19
  #define BOOST_LEXICAL_CAST_DETAIL_WIDEST_CHAR_HPP
20
20
 
21
- #include <type_traits>
21
+ #include <boost/lexical_cast/detail/config.hpp>
22
+
23
+ #if !defined(BOOST_USE_MODULES) || defined(BOOST_LEXICAL_CAST_INTERFACE_UNIT)
22
24
 
25
+ #ifndef BOOST_LEXICAL_CAST_INTERFACE_UNIT
23
26
  #include <boost/config.hpp>
24
27
  #ifdef BOOST_HAS_PRAGMA_ONCE
25
28
  # pragma once
26
29
  #endif
27
30
 
31
+ #include <type_traits>
32
+
33
+ #endif // #ifndef BOOST_LEXICAL_CAST_INTERFACE_UNIT
28
34
 
29
35
  namespace boost { namespace detail {
30
36
 
@@ -37,5 +43,7 @@ using widest_char = std::conditional<
37
43
 
38
44
  }} // namespace boost::detail
39
45
 
46
+ #endif // #if !defined(BOOST_USE_MODULES) || defined(BOOST_LEXICAL_CAST_INTERFACE_UNIT)
47
+
40
48
  #endif // BOOST_LEXICAL_CAST_DETAIL_WIDEST_CHAR_HPP
41
49
 
@@ -1,6 +1,6 @@
1
1
  // Copyright Kevlin Henney, 2000-2005.
2
2
  // Copyright Alexander Nasonov, 2006-2010.
3
- // Copyright Antony Polukhin, 2011-2025.
3
+ // Copyright Antony Polukhin, 2011-2026.
4
4
  //
5
5
  // Distributed under the Boost Software License, Version 1.0. (See
6
6
  // accompanying file LICENSE_1_0.txt or copy at
@@ -18,13 +18,19 @@
18
18
  #ifndef BOOST_LEXICAL_CAST_TRY_LEXICAL_CONVERT_HPP
19
19
  #define BOOST_LEXICAL_CAST_TRY_LEXICAL_CONVERT_HPP
20
20
 
21
- #include <type_traits>
21
+ #include <boost/lexical_cast/detail/config.hpp>
22
+
23
+ #if !defined(BOOST_USE_MODULES) || defined(BOOST_LEXICAL_CAST_INTERFACE_UNIT)
22
24
 
25
+ #ifndef BOOST_LEXICAL_CAST_INTERFACE_UNIT
23
26
  #include <boost/config.hpp>
24
27
  #ifdef BOOST_HAS_PRAGMA_ONCE
25
28
  # pragma once
26
29
  #endif
27
30
 
31
+ #include <type_traits>
32
+ #endif
33
+
28
34
  #include <boost/lexical_cast/detail/buffer_view.hpp>
29
35
  #include <boost/lexical_cast/detail/is_character.hpp>
30
36
  #include <boost/lexical_cast/detail/converter_numeric.hpp>
@@ -45,6 +51,8 @@ namespace boost {
45
51
 
46
52
  namespace conversion { namespace detail {
47
53
 
54
+ BOOST_LEXICAL_CAST_BEGIN_MODULE_EXPORT
55
+
48
56
  template <typename Target, typename Source>
49
57
  inline bool try_lexical_convert(const Source& arg, Target& result)
50
58
  {
@@ -78,15 +86,20 @@ namespace boost {
78
86
  result
79
87
  );
80
88
  }
89
+ BOOST_LEXICAL_CAST_END_MODULE_EXPORT
81
90
 
82
91
  }} // namespace conversion::detail
83
92
 
84
93
  namespace conversion {
94
+ BOOST_LEXICAL_CAST_BEGIN_MODULE_EXPORT
85
95
  // ADL barrier
86
96
  using ::boost::conversion::detail::try_lexical_convert;
97
+ BOOST_LEXICAL_CAST_END_MODULE_EXPORT
87
98
  }
88
99
 
89
100
  } // namespace boost
90
101
 
102
+ #endif // #if !defined(BOOST_USE_MODULES) || defined(BOOST_LEXICAL_CAST_INTERFACE_UNIT)
103
+
91
104
  #endif // BOOST_LEXICAL_CAST_TRY_LEXICAL_CONVERT_HPP
92
105
 
@@ -1,6 +1,6 @@
1
1
  // Copyright Kevlin Henney, 2000-2005.
2
2
  // Copyright Alexander Nasonov, 2006-2010.
3
- // Copyright Antony Polukhin, 2011-2025.
3
+ // Copyright Antony Polukhin, 2011-2026.
4
4
  //
5
5
  // Distributed under the Boost Software License, Version 1.0. (See
6
6
  // accompanying file LICENSE_1_0.txt or copy at
@@ -18,10 +18,16 @@
18
18
  #ifndef BOOST_LEXICAL_CAST_INCLUDED
19
19
  #define BOOST_LEXICAL_CAST_INCLUDED
20
20
 
21
+ #include <boost/lexical_cast/detail/config.hpp>
22
+
23
+ #if !defined(BOOST_USE_MODULES) || defined(BOOST_LEXICAL_CAST_INTERFACE_UNIT)
24
+
25
+ #ifndef BOOST_LEXICAL_CAST_INTERFACE_UNIT
21
26
  #include <boost/config.hpp>
22
27
  #ifdef BOOST_HAS_PRAGMA_ONCE
23
28
  # pragma once
24
29
  #endif
30
+ #endif
25
31
 
26
32
  #if defined(BOOST_NO_STRINGSTREAM) || defined(BOOST_NO_STD_WSTRING)
27
33
  #define BOOST_LCAST_NO_WCHAR_T
@@ -34,6 +40,7 @@
34
40
 
35
41
  namespace boost
36
42
  {
43
+ BOOST_LEXICAL_CAST_BEGIN_MODULE_EXPORT
37
44
  template <typename Target, typename Source>
38
45
  inline Target lexical_cast(const Source &arg)
39
46
  {
@@ -94,9 +101,12 @@ namespace boost
94
101
  );
95
102
  }
96
103
 
104
+ BOOST_LEXICAL_CAST_END_MODULE_EXPORT
97
105
  } // namespace boost
98
106
 
99
107
  #undef BOOST_LCAST_NO_WCHAR_T
100
108
 
109
+ #endif // #if !defined(BOOST_USE_MODULES) || defined(BOOST_LEXICAL_CAST_INTERFACE_UNIT)
110
+
101
111
  #endif // BOOST_LEXICAL_CAST_INCLUDED
102
112
 
@@ -11,8 +11,8 @@
11
11
  #include <boost/thread/pthread/pthread_mutex_scoped_lock.hpp>
12
12
  #include <boost/assert.hpp>
13
13
  #include <boost/static_assert.hpp>
14
- #include <boost/atomic.hpp>
15
14
  #include <boost/memory_order.hpp>
15
+ #include <boost/atomic/atomic.hpp>
16
16
  #include <pthread.h>
17
17
 
18
18
  namespace boost
@@ -21,6 +21,7 @@
21
21
  #include <boost/thread/pthread/pthread_mutex_scoped_lock.hpp>
22
22
  #include <boost/thread/detail/string_trim.hpp>
23
23
  #include <boost/thread/detail/string_to_unsigned.hpp>
24
+ #include <boost/core/no_exceptions_support.hpp>
24
25
 
25
26
  #ifdef __GLIBC__
26
27
  #include <sys/sysinfo.h>
@@ -185,7 +186,7 @@ namespace boost
185
186
  // Unhandled exceptions still cause the application to terminate
186
187
  // BOOST_CATCH(...)
187
188
  // {
188
- // throw;
189
+ // throw;
189
190
  //
190
191
  // std::terminate();
191
192
  // }
@@ -212,12 +213,13 @@ namespace boost
212
213
  interrupt_enabled=false;
213
214
  #endif
214
215
  }
215
- ~externally_launched_thread() {
216
- BOOST_ASSERT(notify.empty());
217
- notify.clear();
216
+ ~externally_launched_thread()
217
+ {
218
+ BOOST_ASSERT(notify.empty());
219
+ notify.clear();
218
220
  //#ifndef BOOST_NO_EXCEPTIONS
219
- BOOST_ASSERT(async_states_.empty());
220
- async_states_.clear();
221
+ BOOST_ASSERT(async_states_.empty());
222
+ async_states_.clear();
221
223
  //#endif
222
224
  }
223
225
  void run()
@@ -354,7 +356,7 @@ namespace boost
354
356
  }
355
357
  else
356
358
  {
357
- return false;
359
+ return false;
358
360
  }
359
361
  }
360
362
 
@@ -373,8 +375,8 @@ namespace boost
373
375
  }
374
376
  if(!local_thread_info->done)
375
377
  {
376
- res=false;
377
- return true;
378
+ res=false;
379
+ return true;
378
380
  }
379
381
  do_join=!local_thread_info->join_started;
380
382
 
@@ -437,31 +439,31 @@ namespace boost
437
439
 
438
440
  namespace this_thread
439
441
  {
440
- namespace no_interruption_point
441
- {
442
- namespace hidden
442
+ namespace no_interruption_point
443
443
  {
444
- void BOOST_THREAD_DECL sleep_for_internal(const detail::platform_duration& ts)
445
- {
446
- if (ts > detail::platform_duration::zero())
444
+ namespace hidden
445
+ {
446
+ void BOOST_THREAD_DECL sleep_for_internal(const detail::platform_duration& ts)
447
447
  {
448
- // Use pthread_delay_np or nanosleep whenever possible here in the no_interruption_point
449
- // namespace because they do not provide an interruption point.
450
- # if defined(BOOST_HAS_PTHREAD_DELAY_NP)
451
- # if defined(__IBMCPP__) || defined(_AIX)
452
- BOOST_VERIFY(!pthread_delay_np(const_cast<timespec*>(&ts.getTs())));
453
- # else
454
- BOOST_VERIFY(!pthread_delay_np(&ts.getTs()));
455
- # endif
456
- # elif defined(BOOST_HAS_NANOSLEEP)
457
- nanosleep(&ts.getTs(), 0);
458
- # else
459
- // This should never be reached due to BOOST_THREAD_SLEEP_FOR_IS_STEADY
460
- # endif
448
+ if (ts > detail::platform_duration::zero())
449
+ {
450
+ // Use pthread_delay_np or nanosleep whenever possible here in the no_interruption_point
451
+ // namespace because they do not provide an interruption point.
452
+ # if defined(BOOST_HAS_PTHREAD_DELAY_NP)
453
+ # if defined(__IBMCPP__) || defined(_AIX)
454
+ BOOST_VERIFY(!pthread_delay_np(const_cast<timespec*>(&ts.getTs())));
455
+ # else
456
+ BOOST_VERIFY(!pthread_delay_np(&ts.getTs()));
457
+ # endif
458
+ # elif defined(BOOST_HAS_NANOSLEEP)
459
+ nanosleep(&ts.getTs(), 0);
460
+ # else
461
+ // This should never be reached due to BOOST_THREAD_SLEEP_FOR_IS_STEADY
462
+ # endif
463
+ }
461
464
  }
462
- }
465
+ }
463
466
  }
464
- }
465
467
 
466
468
  void yield() BOOST_NOEXCEPT
467
469
  {
@@ -515,7 +517,7 @@ namespace boost
515
517
  unsigned thread::physical_concurrency() BOOST_NOEXCEPT
516
518
  {
517
519
  #ifdef __linux__
518
- try {
520
+ BOOST_TRY {
519
521
  using namespace std;
520
522
 
521
523
  ifstream proc_cpuinfo ("/proc/cpuinfo");
@@ -570,9 +572,10 @@ namespace boost
570
572
  // Fall back to hardware_concurrency() in case
571
573
  // /proc/cpuinfo is formatted differently than we expect.
572
574
  return cores.size() != 0 ? cores.size() : hardware_concurrency();
573
- } catch(...) {
574
- return hardware_concurrency();
575
+ } BOOST_CATCH(...) {
576
+ return hardware_concurrency();
575
577
  }
578
+ BOOST_CATCH_END
576
579
  #elif defined(__APPLE__)
577
580
  int count;
578
581
  size_t size=sizeof(count);
@@ -786,26 +789,25 @@ namespace boost
786
789
 
787
790
  BOOST_THREAD_DECL void notify_all_at_thread_exit(condition_variable& cond, unique_lock<mutex> lk)
788
791
  {
789
- detail::thread_data_base* const current_thread_data(detail::get_current_thread_data());
790
- if(current_thread_data)
791
- {
792
- current_thread_data->notify_all_at_thread_exit(&cond, lk.release());
793
- }
792
+ detail::thread_data_base* const current_thread_data(detail::get_current_thread_data());
793
+ if(current_thread_data)
794
+ {
795
+ current_thread_data->notify_all_at_thread_exit(&cond, lk.release());
796
+ }
794
797
  }
795
798
 
796
799
  //#ifndef BOOST_NO_EXCEPTIONS
797
- namespace detail {
798
-
800
+ namespace detail
801
+ {
799
802
  void BOOST_THREAD_DECL make_ready_at_thread_exit(shared_ptr<shared_state_base> as)
800
803
  {
801
- detail::thread_data_base* const current_thread_data(detail::get_current_thread_data());
802
- if(current_thread_data)
803
- {
804
- current_thread_data->make_ready_at_thread_exit(as);
805
- }
804
+ detail::thread_data_base* const current_thread_data(detail::get_current_thread_data());
805
+ if(current_thread_data)
806
+ {
807
+ current_thread_data->make_ready_at_thread_exit(as);
808
+ }
806
809
  }
807
810
  }
808
811
  //#endif
809
812
 
810
-
811
813
  }
@@ -18,6 +18,7 @@
18
18
  # pragma once
19
19
  #endif
20
20
 
21
+ #include <cstddef>
21
22
  #include <boost/move/detail/workaround.hpp> //forceinline
22
23
  #include <boost/move/detail/meta_utils_core.hpp>
23
24
  #include <boost/move/detail/addressof.hpp>
@@ -208,8 +209,26 @@ struct identity
208
209
  {
209
210
  typedef T type;
210
211
  typedef typename add_const_lvalue_reference<T>::type reference;
212
+
211
213
  BOOST_MOVE_FORCEINLINE reference operator()(reference t) const
212
214
  { return t; }
215
+
216
+ //For transparent types
217
+ template<class K>
218
+ BOOST_MOVE_FORCEINLINE const K & operator()(const K &t) const
219
+ { return t; }
220
+ };
221
+
222
+ //////////////////////////////////////
223
+ // identity
224
+ //////////////////////////////////////
225
+ template <>
226
+ struct identity<void>
227
+ {
228
+ template <class U>
229
+ BOOST_MOVE_FORCEINLINE typename add_const_lvalue_reference<U>::type
230
+ operator()(typename add_const_lvalue_reference<U>::type t) const
231
+ { return t; }
213
232
  };
214
233
 
215
234
  //////////////////////////////////////
@@ -509,6 +528,10 @@ template< class T >
509
528
  struct add_rvalue_reference<T &>
510
529
  { typedef T & type; };
511
530
 
531
+ template< class T, std::size_t N >
532
+ struct add_rvalue_reference<T[N]>
533
+ { typedef T (&type)[N]; };
534
+
512
535
  #endif // #ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
513
536
 
514
537
  template< class T > struct remove_rvalue_reference { typedef T type; };