passenger 6.1.0 → 6.1.1

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 (440) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG +32 -2
  3. data/Rakefile +6 -13
  4. data/bin/passenger-install-apache2-module +15 -19
  5. data/bin/passenger-install-nginx-module +42 -44
  6. data/bin/passenger-status +9 -10
  7. data/build/common_library.rb +4 -4
  8. data/build/support/vendor/cxxcodebuilder/lib/cxxcodebuilder/builder.rb +1 -1
  9. data/build/test_basics.rb +4 -3
  10. data/dev/copy_boost_headers +54 -40
  11. data/dev/ruby_server.rb +1 -1
  12. data/src/agent/Core/Config.h +1 -1
  13. data/src/agent/Core/Controller/Config.h +1 -1
  14. data/src/agent/Watchdog/Config.h +1 -1
  15. data/src/cxx_supportlib/Constants.h +1 -1
  16. data/src/cxx_supportlib/vendor-modified/boost/assert/source_location.hpp +8 -1
  17. data/src/cxx_supportlib/vendor-modified/boost/assert.hpp +6 -0
  18. data/src/cxx_supportlib/vendor-modified/boost/atomic/atomic.hpp +94 -110
  19. data/src/cxx_supportlib/vendor-modified/boost/atomic/atomic_flag.hpp +2 -2
  20. data/src/cxx_supportlib/vendor-modified/boost/atomic/atomic_ref.hpp +14 -14
  21. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/addressof.hpp +3 -3
  22. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/atomic_flag_impl.hpp +52 -24
  23. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/atomic_impl.hpp +641 -285
  24. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/atomic_ref_impl.hpp +593 -260
  25. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/bitwise_cast.hpp +37 -24
  26. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/bitwise_fp_cast.hpp +9 -9
  27. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/cas_based_exchange.hpp +3 -3
  28. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/chrono.hpp +93 -0
  29. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/classify.hpp +16 -17
  30. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/config.hpp +25 -34
  31. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_gcc_aarch32.hpp +204 -97
  32. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_gcc_aarch64.hpp +251 -122
  33. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_gcc_alpha.hpp +56 -56
  34. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_gcc_arm.hpp +129 -129
  35. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_gcc_ppc.hpp +253 -125
  36. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_gcc_sparc.hpp +25 -25
  37. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_gcc_x86.hpp +193 -126
  38. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_msvc_arm.hpp +57 -57
  39. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_msvc_x86.hpp +96 -97
  40. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_operations_emulated.hpp +24 -24
  41. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_ops_cas_based.hpp +10 -10
  42. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_ops_gcc_atomic.hpp +27 -24
  43. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_ops_gcc_sync.hpp +39 -37
  44. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_ops_linux_arm.hpp +17 -17
  45. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extending_cas_based_arithmetic.hpp +5 -5
  46. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_fp_ops_emulated.hpp +12 -12
  47. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_fp_ops_generic.hpp +21 -21
  48. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_emulated.hpp +30 -30
  49. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_gcc_aarch32.hpp +170 -98
  50. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_gcc_aarch64.hpp +209 -119
  51. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_gcc_arm.hpp +95 -95
  52. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_gcc_ppc.hpp +148 -76
  53. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_gcc_x86.hpp +293 -123
  54. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_generic.hpp +87 -71
  55. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_msvc_arm.hpp +5 -5
  56. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_msvc_x86.hpp +88 -88
  57. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_operations.hpp +2 -2
  58. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_gcc_aarch32.hpp +4 -5
  59. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_gcc_aarch64.hpp +4 -4
  60. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_gcc_alpha.hpp +4 -4
  61. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_gcc_arm.hpp +9 -9
  62. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_gcc_ppc.hpp +4 -4
  63. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_gcc_sparc.hpp +4 -4
  64. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_gcc_x86.hpp +4 -4
  65. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_msvc_arm.hpp +5 -5
  66. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_msvc_x86.hpp +6 -6
  67. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_operations.hpp +2 -2
  68. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_operations_emulated.hpp +2 -2
  69. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_ops_gcc_atomic.hpp +5 -5
  70. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_ops_gcc_sync.hpp +4 -4
  71. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_ops_linux_arm.hpp +7 -7
  72. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fp_ops_emulated.hpp +7 -7
  73. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fp_ops_generic.hpp +6 -6
  74. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/futex.hpp +110 -49
  75. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/gcc_atomic_memory_order_utils.hpp +1 -1
  76. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/has_posix_clock_traits.hpp +51 -0
  77. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/int_sizes.hpp +26 -32
  78. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/integral_conversions.hpp +15 -15
  79. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/interlocked.hpp +69 -30
  80. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/intptr.hpp +8 -8
  81. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/lock_pool.hpp +51 -31
  82. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/memory_order_utils.hpp +2 -2
  83. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/once_flag.hpp +2 -2
  84. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_arm_common.hpp +6 -6
  85. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_ppc_common.hpp +4 -4
  86. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/platform.hpp +5 -5
  87. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/storage_traits.hpp +31 -31
  88. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/alignment_of.hpp +2 -3
  89. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/has_unique_object_representations.hpp +2 -5
  90. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_floating_point.hpp +3 -3
  91. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_iec559.hpp +2 -2
  92. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_integral.hpp +3 -3
  93. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_signed.hpp +3 -3
  94. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_trivially_copyable.hpp +20 -13
  95. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_trivially_default_constructible.hpp +13 -13
  96. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/make_signed.hpp +3 -3
  97. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/make_unsigned.hpp +3 -3
  98. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_ops_darwin_ulock.hpp +90 -16
  99. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_ops_dragonfly_umtx.hpp +80 -11
  100. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_ops_emulated.hpp +160 -15
  101. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_ops_freebsd_umtx.hpp +327 -38
  102. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_ops_futex.hpp +276 -33
  103. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_ops_generic.hpp +260 -20
  104. data/src/cxx_supportlib/vendor-modified/boost/atomic/fences.hpp +4 -3
  105. data/src/cxx_supportlib/vendor-modified/boost/atomic/ipc_atomic.hpp +14 -18
  106. data/src/cxx_supportlib/vendor-modified/boost/atomic/ipc_atomic_flag.hpp +2 -2
  107. data/src/cxx_supportlib/vendor-modified/boost/atomic/ipc_atomic_ref.hpp +13 -13
  108. data/src/cxx_supportlib/vendor-modified/boost/atomic/posix_clock_traits_fwd.hpp +59 -0
  109. data/src/cxx_supportlib/vendor-modified/boost/atomic/thread_pause.hpp +102 -0
  110. data/src/cxx_supportlib/vendor-modified/boost/atomic/wait_result.hpp +56 -0
  111. data/src/cxx_supportlib/vendor-modified/boost/atomic.hpp +4 -1
  112. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libcpp.hpp +5 -0
  113. data/src/cxx_supportlib/vendor-modified/boost/container/allocator.hpp +1 -1
  114. data/src/cxx_supportlib/vendor-modified/boost/container/allocator_traits.hpp +108 -41
  115. data/src/cxx_supportlib/vendor-modified/boost/container/deque.hpp +1235 -1009
  116. data/src/cxx_supportlib/vendor-modified/boost/container/detail/advanced_insert_int.hpp +3 -2
  117. data/src/cxx_supportlib/vendor-modified/boost/container/detail/algorithm.hpp +56 -0
  118. data/src/cxx_supportlib/vendor-modified/boost/container/detail/alloc_helpers.hpp +1 -0
  119. data/src/cxx_supportlib/vendor-modified/boost/container/detail/alloc_lib.h +9 -9
  120. data/src/cxx_supportlib/vendor-modified/boost/container/detail/compare_functors.hpp +23 -2
  121. data/src/cxx_supportlib/vendor-modified/boost/container/detail/config_begin.hpp +0 -1
  122. data/src/cxx_supportlib/vendor-modified/boost/container/detail/copy_move_algo.hpp +88 -23
  123. data/src/cxx_supportlib/vendor-modified/boost/container/detail/flat_tree.hpp +2 -1
  124. data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_pool_impl.hpp +2 -2
  125. data/src/cxx_supportlib/vendor-modified/boost/container/detail/operator_new_helpers.hpp +68 -0
  126. data/src/cxx_supportlib/vendor-modified/boost/container/detail/pair.hpp +72 -13
  127. data/src/cxx_supportlib/vendor-modified/boost/container/detail/std_fwd.hpp +13 -0
  128. data/src/cxx_supportlib/vendor-modified/boost/container/detail/tree.hpp +8 -5
  129. data/src/cxx_supportlib/vendor-modified/boost/container/devector.hpp +31 -10
  130. data/src/cxx_supportlib/vendor-modified/boost/container/flat_map.hpp +37 -10
  131. data/src/cxx_supportlib/vendor-modified/boost/container/flat_set.hpp +19 -0
  132. data/src/cxx_supportlib/vendor-modified/boost/container/list.hpp +23 -1
  133. data/src/cxx_supportlib/vendor-modified/boost/container/map.hpp +72 -5
  134. data/src/cxx_supportlib/vendor-modified/boost/container/new_allocator.hpp +3 -10
  135. data/src/cxx_supportlib/vendor-modified/boost/container/options.hpp +54 -23
  136. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/devector.hpp +6 -4
  137. data/src/cxx_supportlib/vendor-modified/boost/container/set.hpp +19 -0
  138. data/src/cxx_supportlib/vendor-modified/boost/container/slist.hpp +32 -5
  139. data/src/cxx_supportlib/vendor-modified/boost/container/small_vector.hpp +27 -2
  140. data/src/cxx_supportlib/vendor-modified/boost/container/stable_vector.hpp +22 -0
  141. data/src/cxx_supportlib/vendor-modified/boost/container/static_vector.hpp +37 -17
  142. data/src/cxx_supportlib/vendor-modified/boost/container/string.hpp +23 -1
  143. data/src/cxx_supportlib/vendor-modified/boost/container/vector.hpp +41 -20
  144. data/src/cxx_supportlib/vendor-modified/boost/container_hash/hash.hpp +5 -8
  145. data/src/cxx_supportlib/vendor-modified/boost/container_hash/hash_fwd.hpp +3 -1
  146. data/src/cxx_supportlib/vendor-modified/boost/container_hash/hash_is_avalanching.hpp +57 -0
  147. data/src/cxx_supportlib/vendor-modified/boost/core/bit.hpp +29 -29
  148. data/src/cxx_supportlib/vendor-modified/boost/core/cmath.hpp +3 -3
  149. data/src/cxx_supportlib/vendor-modified/boost/core/data.hpp +15 -1
  150. data/src/cxx_supportlib/vendor-modified/boost/core/default_allocator.hpp +1 -0
  151. data/src/cxx_supportlib/vendor-modified/boost/core/demangle.hpp +1 -1
  152. data/src/cxx_supportlib/vendor-modified/boost/core/detail/assert.hpp +18 -0
  153. data/src/cxx_supportlib/vendor-modified/boost/core/detail/sp_thread_sleep.hpp +2 -2
  154. data/src/cxx_supportlib/vendor-modified/boost/core/detail/static_assert.hpp +42 -0
  155. data/src/cxx_supportlib/vendor-modified/boost/core/detail/string_view.hpp +16 -10
  156. data/src/cxx_supportlib/vendor-modified/boost/core/lightweight_test.hpp +35 -27
  157. data/src/cxx_supportlib/vendor-modified/boost/core/scoped_enum.hpp +1 -1
  158. data/src/cxx_supportlib/vendor-modified/boost/core/size.hpp +14 -0
  159. data/src/cxx_supportlib/vendor-modified/boost/core/span.hpp +20 -9
  160. data/src/cxx_supportlib/vendor-modified/boost/cregex.hpp +0 -5
  161. data/src/cxx_supportlib/vendor-modified/boost/describe/detail/config.hpp +8 -0
  162. data/src/cxx_supportlib/vendor-modified/boost/describe/modifiers.hpp +1 -1
  163. data/src/cxx_supportlib/vendor-modified/boost/foreach.hpp +1 -0
  164. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/ebo_functor_holder.hpp +4 -4
  165. data/src/cxx_supportlib/vendor-modified/boost/intrusive/list.hpp +2 -2
  166. data/src/cxx_supportlib/vendor-modified/boost/intrusive/pointer_rebind.hpp +9 -0
  167. data/src/cxx_supportlib/vendor-modified/boost/intrusive/rbtree_algorithms.hpp +1 -0
  168. data/src/cxx_supportlib/vendor-modified/boost/intrusive/slist.hpp +2 -2
  169. data/src/cxx_supportlib/vendor-modified/boost/iterator/advance.hpp +43 -64
  170. data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/config_def.hpp +0 -83
  171. data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/config_undef.hpp +1 -5
  172. data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/eval_if_default.hpp +44 -0
  173. data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/facade_iterator_category.hpp +103 -117
  174. data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/type_traits/conjunction.hpp +53 -0
  175. data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/type_traits/disjunction.hpp +53 -0
  176. data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/type_traits/negation.hpp +53 -0
  177. data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/type_traits/type_identity.hpp +54 -0
  178. data/src/cxx_supportlib/vendor-modified/boost/iterator/distance.hpp +32 -38
  179. data/src/cxx_supportlib/vendor-modified/boost/iterator/enable_if_convertible.hpp +84 -0
  180. data/src/cxx_supportlib/vendor-modified/boost/iterator/interoperable.hpp +22 -34
  181. data/src/cxx_supportlib/vendor-modified/boost/iterator/is_iterator.hpp +16 -16
  182. data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_adaptor.hpp +162 -309
  183. data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_categories.hpp +52 -161
  184. data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_concepts.hpp +3 -11
  185. data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_facade.hpp +804 -977
  186. data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_traits.hpp +24 -17
  187. data/src/cxx_supportlib/vendor-modified/boost/iterator/min_category.hpp +83 -0
  188. data/src/cxx_supportlib/vendor-modified/boost/iterator/minimum_category.hpp +11 -73
  189. data/src/cxx_supportlib/vendor-modified/boost/iterator/reverse_iterator.hpp +56 -57
  190. data/src/cxx_supportlib/vendor-modified/boost/iterator/transform_iterator.hpp +123 -156
  191. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/bad_lexical_cast.hpp +1 -1
  192. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/buffer_view.hpp +1 -1
  193. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical.hpp +36 -33
  194. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical_streams.hpp +43 -50
  195. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_numeric.hpp +23 -27
  196. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/inf_nan.hpp +1 -1
  197. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/is_character.hpp +10 -11
  198. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_basic_unlockedbuf.hpp +1 -1
  199. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_char_constants.hpp +1 -1
  200. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_unsigned_converters.hpp +6 -7
  201. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/type_traits.hpp +81 -0
  202. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/widest_char.hpp +4 -4
  203. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/try_lexical_convert.hpp +8 -9
  204. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast.hpp +1 -1
  205. data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/wide_posix_api.cpp +1 -12
  206. data/src/cxx_supportlib/vendor-modified/boost/memory_order.hpp +8 -26
  207. data/src/cxx_supportlib/vendor-modified/boost/move/detail/iterator_to_raw_pointer.hpp +1 -1
  208. data/src/cxx_supportlib/vendor-modified/boost/move/detail/launder.hpp +1 -1
  209. data/src/cxx_supportlib/vendor-modified/boost/move/detail/std_ns_begin.hpp +6 -0
  210. data/src/cxx_supportlib/vendor-modified/boost/move/detail/unique_ptr_meta_utils.hpp +2 -2
  211. data/src/cxx_supportlib/vendor-modified/boost/mp11/algorithm.hpp +11 -44
  212. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_map_find.hpp +34 -0
  213. data/src/cxx_supportlib/vendor-modified/boost/mp11/set.hpp +33 -1
  214. data/src/cxx_supportlib/vendor-modified/boost/mp11/version.hpp +1 -1
  215. data/src/cxx_supportlib/vendor-modified/boost/mpl/and.hpp +4 -8
  216. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/na_assert.hpp +1 -1
  217. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/ptr_to_ref.hpp +1 -1
  218. data/src/cxx_supportlib/vendor-modified/boost/mpl/bitand.hpp +2 -6
  219. data/src/cxx_supportlib/vendor-modified/boost/mpl/bitor.hpp +2 -6
  220. data/src/cxx_supportlib/vendor-modified/boost/mpl/or.hpp +2 -6
  221. data/src/cxx_supportlib/vendor-modified/boost/pool/pool.hpp +1 -1
  222. data/src/cxx_supportlib/vendor-modified/boost/pool/simple_segregated_storage.hpp +0 -13
  223. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/limits/to_seq_256.hpp +190 -190
  224. data/src/cxx_supportlib/vendor-modified/boost/random/beta_distribution.hpp +12 -2
  225. data/src/cxx_supportlib/vendor-modified/boost/random/detail/config.hpp +4 -0
  226. data/src/cxx_supportlib/vendor-modified/boost/random/detail/size.hpp +41 -0
  227. data/src/cxx_supportlib/vendor-modified/boost/random/detail/xoshiro_base.hpp +472 -0
  228. data/src/cxx_supportlib/vendor-modified/boost/random/discrete_distribution.hpp +7 -10
  229. data/src/cxx_supportlib/vendor-modified/boost/random/gamma_distribution.hpp +1 -1
  230. data/src/cxx_supportlib/vendor-modified/boost/random/generalized_inverse_gaussian_distribution.hpp +339 -0
  231. data/src/cxx_supportlib/vendor-modified/boost/random/hyperexponential_distribution.hpp +12 -14
  232. data/src/cxx_supportlib/vendor-modified/boost/random/inverse_gaussian_distribution.hpp +226 -0
  233. data/src/cxx_supportlib/vendor-modified/boost/random/mersenne_twister.hpp +1 -4
  234. data/src/cxx_supportlib/vendor-modified/boost/random/mixmax.hpp +63 -63
  235. data/src/cxx_supportlib/vendor-modified/boost/random/piecewise_constant_distribution.hpp +7 -10
  236. data/src/cxx_supportlib/vendor-modified/boost/random/piecewise_linear_distribution.hpp +8 -11
  237. data/src/cxx_supportlib/vendor-modified/boost/random/seed_seq.hpp +1 -3
  238. data/src/cxx_supportlib/vendor-modified/boost/random/splitmix64.hpp +1 -4
  239. data/src/cxx_supportlib/vendor-modified/boost/random/xoshiro.hpp +488 -0
  240. data/src/cxx_supportlib/vendor-modified/boost/random.hpp +3 -0
  241. data/src/cxx_supportlib/vendor-modified/boost/range/concepts.hpp +2 -0
  242. data/src/cxx_supportlib/vendor-modified/boost/range/detail/has_member_size.hpp +1 -0
  243. data/src/cxx_supportlib/vendor-modified/boost/range/detail/msvc_has_iterator_workaround.hpp +2 -0
  244. data/src/cxx_supportlib/vendor-modified/boost/range/has_range_iterator.hpp +1 -1
  245. data/src/cxx_supportlib/vendor-modified/boost/range/iterator.hpp +1 -0
  246. data/src/cxx_supportlib/vendor-modified/boost/range/iterator_range_core.hpp +4 -1
  247. data/src/cxx_supportlib/vendor-modified/boost/range/size_type.hpp +1 -1
  248. data/src/cxx_supportlib/vendor-modified/boost/regex/concepts.hpp +35 -18
  249. data/src/cxx_supportlib/vendor-modified/boost/regex/config.hpp +18 -101
  250. data/src/cxx_supportlib/vendor-modified/boost/regex/pattern_except.hpp +0 -4
  251. data/src/cxx_supportlib/vendor-modified/boost/regex/pending/object_cache.hpp +0 -4
  252. data/src/cxx_supportlib/vendor-modified/boost/regex/pending/unicode_iterator.hpp +0 -6
  253. data/src/cxx_supportlib/vendor-modified/boost/regex/regex_traits.hpp +0 -4
  254. data/src/cxx_supportlib/vendor-modified/boost/regex/user.hpp +4 -10
  255. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/basic_regex.hpp +63 -17
  256. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/basic_regex_creator.hpp +71 -16
  257. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/basic_regex_parser.hpp +22 -1
  258. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/c_regex_traits.hpp +11 -4
  259. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/char_regex_traits.hpp +2 -0
  260. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/cpp_regex_traits.hpp +11 -8
  261. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/cregex.hpp +2 -1
  262. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/error_type.hpp +1 -1
  263. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/icu.hpp +40 -38
  264. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/iterator_category.hpp +2 -0
  265. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/iterator_traits.hpp +4 -0
  266. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/match_flags.hpp +39 -37
  267. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/match_results.hpp +46 -9
  268. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/mem_block_cache.hpp +4 -0
  269. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/object_cache.hpp +2 -0
  270. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/pattern_except.hpp +6 -4
  271. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/perl_matcher.hpp +57 -8
  272. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/perl_matcher_common.hpp +21 -6
  273. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/perl_matcher_non_recursive.hpp +18 -3
  274. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regbase.hpp +4 -2
  275. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex.hpp +6 -6
  276. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_format.hpp +23 -18
  277. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_fwd.hpp +9 -9
  278. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_grep.hpp +9 -5
  279. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_iterator.hpp +11 -7
  280. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_match.hpp +10 -7
  281. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_merge.hpp +4 -4
  282. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_raw_buffer.hpp +3 -0
  283. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_replace.hpp +6 -2
  284. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_search.hpp +12 -9
  285. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_split.hpp +6 -3
  286. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_token_iterator.hpp +16 -11
  287. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_traits.hpp +1 -1
  288. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_traits_defaults.hpp +2 -0
  289. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_workaround.hpp +2 -0
  290. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/states.hpp +7 -0
  291. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/sub_match.hpp +54 -49
  292. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/syntax_type.hpp +64 -62
  293. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/u32regex_iterator.hpp +16 -0
  294. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/u32regex_token_iterator.hpp +12 -0
  295. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/unicode_iterator.hpp +6 -4
  296. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/w32_regex_traits.hpp +3 -1
  297. data/src/cxx_supportlib/vendor-modified/boost/regex.hpp +0 -4
  298. data/src/cxx_supportlib/vendor-modified/boost/regex_fwd.hpp +0 -4
  299. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count.hpp +1 -43
  300. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/deprecated_macros.hpp +7 -7
  301. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/shared_count.hpp +2 -77
  302. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base.hpp +1 -64
  303. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_nt.hpp +3 -3
  304. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_impl.hpp +0 -77
  305. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_cxx20_constexpr.hpp +37 -0
  306. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock.hpp +5 -28
  307. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/intrusive_ptr.hpp +41 -40
  308. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/scoped_array.hpp +0 -15
  309. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/scoped_ptr.hpp +0 -18
  310. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/shared_ptr.hpp +1 -1
  311. data/src/cxx_supportlib/vendor-modified/boost/thread/future.hpp +1 -1
  312. data/src/cxx_supportlib/vendor-modified/boost/tuple/detail/tuple_basic.hpp +1 -0
  313. data/src/cxx_supportlib/vendor-modified/boost/type_traits/integral_constant.hpp +8 -6
  314. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_complete.hpp +31 -10
  315. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/fca.hpp +34 -8
  316. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/core.hpp +6 -4
  317. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/table.hpp +9 -1
  318. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/implementation.hpp +5 -5
  319. data/src/cxx_supportlib/vendor-modified/boost/unordered/{unordered_printers.hpp → detail/unordered_printers.hpp} +34 -36
  320. data/src/cxx_supportlib/vendor-modified/boost/unordered/hash_traits.hpp +6 -49
  321. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_map.hpp +6 -1
  322. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_set.hpp +6 -1
  323. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_map.hpp +6 -1
  324. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_set.hpp +6 -1
  325. data/src/cxx_supportlib/vendor-modified/boost/version.hpp +2 -2
  326. data/src/nginx_module/ContentHandler.c +2 -0
  327. data/src/ruby_supportlib/phusion_passenger/config/download_agent_command.rb +3 -5
  328. data/src/ruby_supportlib/phusion_passenger/config/download_nginx_engine_command.rb +3 -5
  329. data/src/ruby_supportlib/phusion_passenger/config/install_agent_command.rb +3 -5
  330. data/src/ruby_supportlib/phusion_passenger/config/install_standalone_runtime_command.rb +3 -5
  331. data/src/ruby_supportlib/phusion_passenger/config/installation_utils.rb +1 -1
  332. data/src/ruby_supportlib/phusion_passenger/config/nginx_engine_compiler.rb +2 -2
  333. data/src/ruby_supportlib/phusion_passenger/loader_shared_helpers.rb +5 -3
  334. data/src/ruby_supportlib/phusion_passenger/platform_info/apache.rb +2 -2
  335. data/src/ruby_supportlib/phusion_passenger/platform_info/compiler.rb +6 -13
  336. data/src/ruby_supportlib/phusion_passenger/platform_info/cxx_portability.rb +29 -30
  337. data/src/ruby_supportlib/phusion_passenger/request_handler/thread_handler.rb +2 -3
  338. data/src/ruby_supportlib/phusion_passenger/standalone/config_utils.rb +2 -0
  339. data/src/ruby_supportlib/phusion_passenger/standalone/start_command/builtin_engine.rb +1 -1
  340. data/src/ruby_supportlib/phusion_passenger/utils/json.rb +1 -1
  341. data/src/ruby_supportlib/phusion_passenger/utils/terminal_choice_menu.rb +1 -1
  342. data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/gdb_controller.rb +1 -1
  343. data/src/ruby_supportlib/phusion_passenger.rb +8 -8
  344. metadata +26 -99
  345. data/src/cxx_supportlib/vendor-modified/boost/align/aligned_alloc.hpp +0 -47
  346. data/src/cxx_supportlib/vendor-modified/boost/align/detail/aligned_alloc_posix.hpp +0 -41
  347. data/src/cxx_supportlib/vendor-modified/boost/align/detail/aligned_alloc_sunos.hpp +0 -34
  348. data/src/cxx_supportlib/vendor-modified/boost/align/detail/is_alignment.hpp +0 -28
  349. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/pause.hpp +0 -68
  350. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/conditional.hpp +0 -42
  351. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/integral_constant.hpp +0 -46
  352. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_enum.hpp +0 -42
  353. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_function.hpp +0 -42
  354. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_nothrow_default_constructible.hpp +0 -46
  355. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/remove_cv.hpp +0 -42
  356. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_on_address.hpp +0 -64
  357. data/src/cxx_supportlib/vendor-modified/boost/cerrno.hpp +0 -15
  358. data/src/cxx_supportlib/vendor-modified/boost/detail/indirect_traits.hpp +0 -195
  359. data/src/cxx_supportlib/vendor-modified/boost/detail/select_type.hpp +0 -36
  360. data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/enable_if.hpp +0 -83
  361. data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/internals.hpp +0 -35
  362. data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/regex.cpp +0 -120
  363. data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/regex_debug.cpp +0 -59
  364. data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/static_mutex.cpp +0 -189
  365. data/src/cxx_supportlib/vendor-modified/boost/libs/system/src/error_code.cpp +0 -31
  366. data/src/cxx_supportlib/vendor-modified/boost/regex/config/borland.hpp +0 -72
  367. data/src/cxx_supportlib/vendor-modified/boost/regex/config/cwchar.hpp +0 -207
  368. data/src/cxx_supportlib/vendor-modified/boost/regex/pending/static_mutex.hpp +0 -182
  369. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex.hpp +0 -797
  370. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex_creator.hpp +0 -1598
  371. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex_parser.hpp +0 -3174
  372. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/c_regex_traits.hpp +0 -511
  373. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/char_regex_traits.hpp +0 -81
  374. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/cpp_regex_traits.hpp +0 -1237
  375. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/cregex.hpp +0 -213
  376. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/error_type.hpp +0 -59
  377. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/icu.hpp +0 -1516
  378. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/indexed_bit_flag.hpp +0 -54
  379. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/iterator_category.hpp +0 -91
  380. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/iterator_traits.hpp +0 -135
  381. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/match_flags.hpp +0 -161
  382. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/match_results.hpp +0 -716
  383. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/mem_block_cache.hpp +0 -183
  384. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/object_cache.hpp +0 -171
  385. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/pattern_except.hpp +0 -128
  386. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher.hpp +0 -645
  387. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_common.hpp +0 -1030
  388. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_non_recursive.hpp +0 -1947
  389. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_recursive.hpp +0 -1131
  390. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/primary_transform.hpp +0 -146
  391. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/protected_call.hpp +0 -83
  392. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regbase.hpp +0 -180
  393. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex.hpp +0 -166
  394. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_format.hpp +0 -1158
  395. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_fwd.hpp +0 -73
  396. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_grep.hpp +0 -155
  397. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_iterator.hpp +0 -195
  398. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_match.hpp +0 -382
  399. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_merge.hpp +0 -93
  400. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_raw_buffer.hpp +0 -241
  401. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_replace.hpp +0 -99
  402. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_search.hpp +0 -217
  403. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_split.hpp +0 -174
  404. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_token_iterator.hpp +0 -327
  405. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_traits.hpp +0 -189
  406. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_traits_defaults.hpp +0 -997
  407. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_workaround.hpp +0 -237
  408. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/states.hpp +0 -321
  409. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/sub_match.hpp +0 -516
  410. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/syntax_type.hpp +0 -105
  411. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/u32regex_iterator.hpp +0 -185
  412. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/u32regex_token_iterator.hpp +0 -360
  413. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/unicode_iterator.hpp +0 -871
  414. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/w32_regex_traits.hpp +0 -1229
  415. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count_gcc.hpp +0 -79
  416. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count_gcc_atomic.hpp +0 -63
  417. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count_gcc_x86.hpp +0 -88
  418. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count_pt.hpp +0 -104
  419. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count_spin.hpp +0 -69
  420. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count_sync.hpp +0 -72
  421. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp +0 -163
  422. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_aix.hpp +0 -152
  423. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp +0 -185
  424. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_atomic.hpp +0 -148
  425. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp +0 -170
  426. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp +0 -200
  427. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp +0 -194
  428. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp +0 -179
  429. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp +0 -186
  430. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_pt.hpp +0 -147
  431. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_snc_ps3.hpp +0 -174
  432. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_spin.hpp +0 -141
  433. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_sync.hpp +0 -165
  434. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_vacpp_ppc.hpp +0 -163
  435. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_has_gcc_intrinsics.hpp +0 -30
  436. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_has_sync_intrinsics.hpp +0 -69
  437. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock_gcc_arm.hpp +0 -128
  438. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock_nt.hpp +0 -96
  439. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock_pt.hpp +0 -86
  440. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock_sync.hpp +0 -94
@@ -5,7 +5,7 @@
5
5
  *
6
6
  * Copyright (c) 2011 Helge Bahmann
7
7
  * Copyright (c) 2013 Tim Blechmann
8
- * Copyright (c) 2014, 2020 Andrey Semashev
8
+ * Copyright (c) 2014, 2020-2025 Andrey Semashev
9
9
  */
10
10
  /*!
11
11
  * \file atomic/atomic.hpp
@@ -17,14 +17,14 @@
17
17
  #define BOOST_ATOMIC_ATOMIC_HPP_INCLUDED_
18
18
 
19
19
  #include <cstddef>
20
- #include <boost/cstdint.hpp>
20
+ #include <cstdint>
21
+ #include <type_traits>
21
22
  #include <boost/memory_order.hpp>
22
23
  #include <boost/atomic/capabilities.hpp>
23
24
  #include <boost/atomic/detail/config.hpp>
24
25
  #include <boost/atomic/detail/classify.hpp>
25
26
  #include <boost/atomic/detail/atomic_impl.hpp>
26
27
  #include <boost/atomic/detail/type_traits/is_trivially_copyable.hpp>
27
- #include <boost/atomic/detail/type_traits/is_nothrow_default_constructible.hpp>
28
28
  #include <boost/atomic/detail/header.hpp>
29
29
 
30
30
  #ifdef BOOST_HAS_PRAGMA_ONCE
@@ -40,141 +40,131 @@ class atomic :
40
40
  public atomics::detail::base_atomic< T, typename atomics::detail::classify< T >::type, false >
41
41
  {
42
42
  private:
43
- typedef atomics::detail::base_atomic< T, typename atomics::detail::classify< T >::type, false > base_type;
44
- typedef typename base_type::value_arg_type value_arg_type;
43
+ using base_type = atomics::detail::base_atomic< T, typename atomics::detail::classify< T >::type, false >;
44
+ using value_arg_type = typename base_type::value_arg_type;
45
45
 
46
46
  public:
47
- typedef typename base_type::value_type value_type;
47
+ using value_type = typename base_type::value_type;
48
48
 
49
49
  static_assert(sizeof(value_type) > 0u, "boost::atomic<T> requires T to be a complete type");
50
- #if !defined(BOOST_ATOMIC_DETAIL_NO_CXX11_IS_TRIVIALLY_COPYABLE)
51
50
  static_assert(atomics::detail::is_trivially_copyable< value_type >::value, "boost::atomic<T> requires T to be a trivially copyable type");
52
- #endif
53
51
 
54
52
  public:
55
- BOOST_FORCEINLINE BOOST_ATOMIC_DETAIL_CONSTEXPR_UNION_INIT atomic() BOOST_NOEXCEPT_IF(atomics::detail::is_nothrow_default_constructible< value_type >::value) : base_type()
56
- {
57
- }
53
+ atomic() = default;
58
54
 
59
- BOOST_FORCEINLINE BOOST_ATOMIC_DETAIL_CONSTEXPR_UNION_INIT atomic(value_arg_type v) BOOST_NOEXCEPT : base_type(v)
55
+ BOOST_FORCEINLINE constexpr atomic(value_arg_type v) noexcept : base_type(v)
60
56
  {
61
57
  }
62
58
 
63
- BOOST_FORCEINLINE value_type operator= (value_arg_type v) BOOST_NOEXCEPT
59
+ atomic(atomic const&) = delete;
60
+ atomic& operator= (atomic const&) = delete;
61
+ atomic& operator= (atomic const&) volatile = delete;
62
+
63
+ BOOST_FORCEINLINE value_type operator= (value_arg_type v) noexcept
64
64
  {
65
65
  this->store(v);
66
66
  return v;
67
67
  }
68
68
 
69
- BOOST_FORCEINLINE value_type operator= (value_arg_type v) volatile BOOST_NOEXCEPT
69
+ BOOST_FORCEINLINE value_type operator= (value_arg_type v) volatile noexcept
70
70
  {
71
71
  this->store(v);
72
72
  return v;
73
73
  }
74
74
 
75
- BOOST_FORCEINLINE operator value_type() const volatile BOOST_NOEXCEPT
75
+ BOOST_FORCEINLINE operator value_type() const volatile noexcept
76
76
  {
77
77
  return this->load();
78
78
  }
79
-
80
- BOOST_DELETED_FUNCTION(atomic(atomic const&))
81
- BOOST_DELETED_FUNCTION(atomic& operator= (atomic const&))
82
- BOOST_DELETED_FUNCTION(atomic& operator= (atomic const&) volatile)
83
79
  };
84
80
 
85
- typedef atomic< char > atomic_char;
86
- typedef atomic< unsigned char > atomic_uchar;
87
- typedef atomic< signed char > atomic_schar;
88
- typedef atomic< uint8_t > atomic_uint8_t;
89
- typedef atomic< int8_t > atomic_int8_t;
90
- typedef atomic< unsigned short > atomic_ushort;
91
- typedef atomic< short > atomic_short;
92
- typedef atomic< uint16_t > atomic_uint16_t;
93
- typedef atomic< int16_t > atomic_int16_t;
94
- typedef atomic< unsigned int > atomic_uint;
95
- typedef atomic< int > atomic_int;
96
- typedef atomic< uint32_t > atomic_uint32_t;
97
- typedef atomic< int32_t > atomic_int32_t;
98
- typedef atomic< unsigned long > atomic_ulong;
99
- typedef atomic< long > atomic_long;
100
- typedef atomic< uint64_t > atomic_uint64_t;
101
- typedef atomic< int64_t > atomic_int64_t;
102
- #ifdef BOOST_HAS_LONG_LONG
103
- typedef atomic< boost::ulong_long_type > atomic_ullong;
104
- typedef atomic< boost::long_long_type > atomic_llong;
105
- #endif
106
- typedef atomic< void* > atomic_address;
107
- typedef atomic< bool > atomic_bool;
108
- typedef atomic< wchar_t > atomic_wchar_t;
109
- #if defined(__cpp_char8_t) && __cpp_char8_t >= 201811
110
- typedef atomic< char8_t > atomic_char8_t;
111
- #endif
112
- #if !defined(BOOST_NO_CXX11_CHAR16_T)
113
- typedef atomic< char16_t > atomic_char16_t;
114
- #endif
115
- #if !defined(BOOST_NO_CXX11_CHAR32_T)
116
- typedef atomic< char32_t > atomic_char32_t;
117
- #endif
118
-
119
- typedef atomic< int_least8_t > atomic_int_least8_t;
120
- typedef atomic< uint_least8_t > atomic_uint_least8_t;
121
- typedef atomic< int_least16_t > atomic_int_least16_t;
122
- typedef atomic< uint_least16_t > atomic_uint_least16_t;
123
- typedef atomic< int_least32_t > atomic_int_least32_t;
124
- typedef atomic< uint_least32_t > atomic_uint_least32_t;
125
- typedef atomic< int_least64_t > atomic_int_least64_t;
126
- typedef atomic< uint_least64_t > atomic_uint_least64_t;
127
- typedef atomic< int_fast8_t > atomic_int_fast8_t;
128
- typedef atomic< uint_fast8_t > atomic_uint_fast8_t;
129
- typedef atomic< int_fast16_t > atomic_int_fast16_t;
130
- typedef atomic< uint_fast16_t > atomic_uint_fast16_t;
131
- typedef atomic< int_fast32_t > atomic_int_fast32_t;
132
- typedef atomic< uint_fast32_t > atomic_uint_fast32_t;
133
- typedef atomic< int_fast64_t > atomic_int_fast64_t;
134
- typedef atomic< uint_fast64_t > atomic_uint_fast64_t;
135
- typedef atomic< intmax_t > atomic_intmax_t;
136
- typedef atomic< uintmax_t > atomic_uintmax_t;
81
+ using atomic_char = atomic< char >;
82
+ using atomic_uchar = atomic< unsigned char >;
83
+ using atomic_schar = atomic< signed char >;
84
+ using atomic_ushort = atomic< unsigned short >;
85
+ using atomic_short = atomic< short >;
86
+ using atomic_uint = atomic< unsigned int >;
87
+ using atomic_int = atomic< int >;
88
+ using atomic_ulong = atomic< unsigned long >;
89
+ using atomic_long = atomic< long >;
90
+ using atomic_ullong = atomic< unsigned long long >;
91
+ using atomic_llong = atomic< long long >;
92
+ using atomic_address = atomic< void* >;
93
+ using atomic_bool = atomic< bool >;
94
+ using atomic_wchar_t = atomic< wchar_t >;
95
+ #if defined(__cpp_char8_t) && (__cpp_char8_t >= 201811)
96
+ using atomic_char8_t = atomic< char8_t >;
97
+ #endif
98
+ using atomic_char16_t = atomic< char16_t >;
99
+ using atomic_char32_t = atomic< char32_t >;
100
+
101
+ using atomic_uint8_t = atomic< std::uint8_t >;
102
+ using atomic_int8_t = atomic< std::int8_t >;
103
+ using atomic_uint16_t = atomic< std::uint16_t >;
104
+ using atomic_int16_t = atomic< std::int16_t >;
105
+ using atomic_uint32_t = atomic< std::uint32_t >;
106
+ using atomic_int32_t = atomic< std::int32_t >;
107
+ using atomic_uint64_t = atomic< std::uint64_t >;
108
+ using atomic_int64_t = atomic< std::int64_t >;
109
+ using atomic_int_least8_t = atomic< std::int_least8_t >;
110
+ using atomic_uint_least8_t = atomic< std::uint_least8_t >;
111
+ using atomic_int_least16_t = atomic< std::int_least16_t >;
112
+ using atomic_uint_least16_t = atomic< std::uint_least16_t >;
113
+ using atomic_int_least32_t = atomic< std::int_least32_t >;
114
+ using atomic_uint_least32_t = atomic< std::uint_least32_t >;
115
+ using atomic_int_least64_t = atomic< std::int_least64_t >;
116
+ using atomic_uint_least64_t = atomic< std::uint_least64_t >;
117
+ using atomic_int_fast8_t = atomic< std::int_fast8_t >;
118
+ using atomic_uint_fast8_t = atomic< std::uint_fast8_t >;
119
+ using atomic_int_fast16_t = atomic< std::int_fast16_t >;
120
+ using atomic_uint_fast16_t = atomic< std::uint_fast16_t >;
121
+ using atomic_int_fast32_t = atomic< std::int_fast32_t >;
122
+ using atomic_uint_fast32_t = atomic< std::uint_fast32_t >;
123
+ using atomic_int_fast64_t = atomic< std::int_fast64_t >;
124
+ using atomic_uint_fast64_t = atomic< std::uint_fast64_t >;
125
+ using atomic_intmax_t = atomic< std::intmax_t >;
126
+ using atomic_uintmax_t = atomic< std::uintmax_t >;
137
127
 
138
128
  #if !defined(BOOST_ATOMIC_NO_FLOATING_POINT)
139
- typedef atomic< float > atomic_float_t;
140
- typedef atomic< double > atomic_double_t;
141
- typedef atomic< long double > atomic_long_double_t;
129
+ using atomic_float_t = atomic< float >;
130
+ using atomic_double_t = atomic< double >;
131
+ using atomic_long_double_t = atomic< long double >;
142
132
  #endif
143
133
 
144
- typedef atomic< std::size_t > atomic_size_t;
145
- typedef atomic< std::ptrdiff_t > atomic_ptrdiff_t;
134
+ using atomic_size_t = atomic< std::size_t >;
135
+ using atomic_ptrdiff_t = atomic< std::ptrdiff_t >;
146
136
 
147
- #if defined(BOOST_HAS_INTPTR_T)
148
- typedef atomic< boost::intptr_t > atomic_intptr_t;
149
- typedef atomic< boost::uintptr_t > atomic_uintptr_t;
137
+ #if defined(UINTPTR_MAX)
138
+ using atomic_intptr_t = atomic< std::intptr_t >;
139
+ using atomic_uintptr_t = atomic< std::uintptr_t >;
150
140
  #endif
151
141
 
152
142
  // Select the lock-free atomic types that has natively supported waiting/notifying operations.
153
143
  // Prefer 32-bit types the most as those have the best performance on current 32 and 64-bit architectures.
154
144
  #if BOOST_ATOMIC_INT32_LOCK_FREE == 2 && BOOST_ATOMIC_HAS_NATIVE_INT32_WAIT_NOTIFY == 2
155
- typedef atomic< uint32_t > atomic_unsigned_lock_free;
156
- typedef atomic< int32_t > atomic_signed_lock_free;
145
+ using atomic_unsigned_lock_free = atomic< std::uint32_t >;
146
+ using atomic_signed_lock_free = atomic< std::int32_t >;
157
147
  #elif BOOST_ATOMIC_INT64_LOCK_FREE == 2 && BOOST_ATOMIC_HAS_NATIVE_INT64_WAIT_NOTIFY == 2
158
- typedef atomic< uint64_t > atomic_unsigned_lock_free;
159
- typedef atomic< int64_t > atomic_signed_lock_free;
148
+ using atomic_unsigned_lock_free = atomic< std::uint64_t >;
149
+ using atomic_signed_lock_free = atomic< std::int64_t >;
160
150
  #elif BOOST_ATOMIC_INT16_LOCK_FREE == 2 && BOOST_ATOMIC_HAS_NATIVE_INT16_WAIT_NOTIFY == 2
161
- typedef atomic< uint16_t > atomic_unsigned_lock_free;
162
- typedef atomic< int16_t > atomic_signed_lock_free;
151
+ using atomic_unsigned_lock_free = atomic< std::uint16_t >;
152
+ using atomic_signed_lock_free = atomic< std::int16_t >;
163
153
  #elif BOOST_ATOMIC_INT8_LOCK_FREE == 2 && BOOST_ATOMIC_HAS_NATIVE_INT8_WAIT_NOTIFY == 2
164
- typedef atomic< uint8_t > atomic_unsigned_lock_free;
165
- typedef atomic< int8_t > atomic_signed_lock_free;
154
+ using atomic_unsigned_lock_free = atomic< std::uint8_t >;
155
+ using atomic_signed_lock_free = atomic< std::int8_t >;
166
156
  #elif BOOST_ATOMIC_INT32_LOCK_FREE == 2
167
- typedef atomic< uint32_t > atomic_unsigned_lock_free;
168
- typedef atomic< int32_t > atomic_signed_lock_free;
157
+ using atomic_unsigned_lock_free = atomic< std::uint32_t >;
158
+ using atomic_signed_lock_free = atomic< std::int32_t >;
169
159
  #elif BOOST_ATOMIC_INT64_LOCK_FREE == 2
170
- typedef atomic< uint64_t > atomic_unsigned_lock_free;
171
- typedef atomic< int64_t > atomic_signed_lock_free;
160
+ using atomic_unsigned_lock_free = atomic< std::uint64_t >;
161
+ using atomic_signed_lock_free = atomic< std::int64_t >;
172
162
  #elif BOOST_ATOMIC_INT16_LOCK_FREE == 2
173
- typedef atomic< uint16_t > atomic_unsigned_lock_free;
174
- typedef atomic< int16_t > atomic_signed_lock_free;
163
+ using atomic_unsigned_lock_free = atomic< std::uint16_t >;
164
+ using atomic_signed_lock_free = atomic< std::int16_t >;
175
165
  #elif BOOST_ATOMIC_INT8_LOCK_FREE == 2
176
- typedef atomic< uint8_t > atomic_unsigned_lock_free;
177
- typedef atomic< int8_t > atomic_signed_lock_free;
166
+ using atomic_unsigned_lock_free = atomic< std::uint8_t >;
167
+ using atomic_signed_lock_free = atomic< std::int8_t >;
178
168
  #else
179
169
  #define BOOST_ATOMIC_DETAIL_NO_LOCK_FREE_TYPEDEFS
180
170
  #endif
@@ -186,37 +176,31 @@ using atomics::atomic;
186
176
  using atomics::atomic_char;
187
177
  using atomics::atomic_uchar;
188
178
  using atomics::atomic_schar;
189
- using atomics::atomic_uint8_t;
190
- using atomics::atomic_int8_t;
191
179
  using atomics::atomic_ushort;
192
180
  using atomics::atomic_short;
193
- using atomics::atomic_uint16_t;
194
- using atomics::atomic_int16_t;
195
181
  using atomics::atomic_uint;
196
182
  using atomics::atomic_int;
197
- using atomics::atomic_uint32_t;
198
- using atomics::atomic_int32_t;
199
183
  using atomics::atomic_ulong;
200
184
  using atomics::atomic_long;
201
- using atomics::atomic_uint64_t;
202
- using atomics::atomic_int64_t;
203
- #ifdef BOOST_HAS_LONG_LONG
204
185
  using atomics::atomic_ullong;
205
186
  using atomics::atomic_llong;
206
- #endif
207
187
  using atomics::atomic_address;
208
188
  using atomics::atomic_bool;
209
189
  using atomics::atomic_wchar_t;
210
190
  #if defined(__cpp_char8_t) && __cpp_char8_t >= 201811
211
191
  using atomics::atomic_char8_t;
212
192
  #endif
213
- #if !defined(BOOST_NO_CXX11_CHAR16_T)
214
193
  using atomics::atomic_char16_t;
215
- #endif
216
- #if !defined(BOOST_NO_CXX11_CHAR32_T)
217
194
  using atomics::atomic_char32_t;
218
- #endif
219
195
 
196
+ using atomics::atomic_uint8_t;
197
+ using atomics::atomic_int8_t;
198
+ using atomics::atomic_uint16_t;
199
+ using atomics::atomic_int16_t;
200
+ using atomics::atomic_uint32_t;
201
+ using atomics::atomic_int32_t;
202
+ using atomics::atomic_uint64_t;
203
+ using atomics::atomic_int64_t;
220
204
  using atomics::atomic_int_least8_t;
221
205
  using atomics::atomic_uint_least8_t;
222
206
  using atomics::atomic_int_least16_t;
@@ -245,7 +229,7 @@ using atomics::atomic_long_double_t;
245
229
  using atomics::atomic_size_t;
246
230
  using atomics::atomic_ptrdiff_t;
247
231
 
248
- #if defined(BOOST_HAS_INTPTR_T)
232
+ #if defined(UINTPTR_MAX)
249
233
  using atomics::atomic_intptr_t;
250
234
  using atomics::atomic_uintptr_t;
251
235
  #endif
@@ -5,7 +5,7 @@
5
5
  *
6
6
  * Copyright (c) 2011 Helge Bahmann
7
7
  * Copyright (c) 2013 Tim Blechmann
8
- * Copyright (c) 2014, 2020 Andrey Semashev
8
+ * Copyright (c) 2014, 2020-2025 Andrey Semashev
9
9
  */
10
10
  /*!
11
11
  * \file atomic/atomic_flag.hpp
@@ -29,7 +29,7 @@ namespace boost {
29
29
  namespace atomics {
30
30
 
31
31
  //! Atomic flag
32
- typedef atomics::detail::atomic_flag_impl< false > atomic_flag;
32
+ using atomic_flag = atomics::detail::atomic_flag_impl< false >;
33
33
 
34
34
  } // namespace atomics
35
35
 
@@ -3,7 +3,7 @@
3
3
  * (See accompanying file LICENSE_1_0.txt or copy at
4
4
  * http://www.boost.org/LICENSE_1_0.txt)
5
5
  *
6
- * Copyright (c) 2020-2021 Andrey Semashev
6
+ * Copyright (c) 2020-2025 Andrey Semashev
7
7
  */
8
8
  /*!
9
9
  * \file atomic/atomic_ref.hpp
@@ -14,6 +14,7 @@
14
14
  #ifndef BOOST_ATOMIC_ATOMIC_REF_HPP_INCLUDED_
15
15
  #define BOOST_ATOMIC_ATOMIC_REF_HPP_INCLUDED_
16
16
 
17
+ #include <type_traits>
17
18
  #include <boost/assert.hpp>
18
19
  #include <boost/memory_order.hpp>
19
20
  #include <boost/atomic/capabilities.hpp>
@@ -37,40 +38,39 @@ class atomic_ref :
37
38
  public atomics::detail::base_atomic_ref< T, typename atomics::detail::classify< T >::type, false >
38
39
  {
39
40
  private:
40
- typedef atomics::detail::base_atomic_ref< T, typename atomics::detail::classify< T >::type, false > base_type;
41
- typedef typename base_type::value_arg_type value_arg_type;
41
+ using base_type = atomics::detail::base_atomic_ref< T, typename atomics::detail::classify< T >::type, false >;
42
+ using value_arg_type = typename base_type::value_arg_type;
42
43
 
43
44
  public:
44
- typedef typename base_type::value_type value_type;
45
+ using value_type = typename base_type::value_type;
45
46
 
46
47
  static_assert(sizeof(value_type) > 0u, "boost::atomic_ref<T> requires T to be a complete type");
47
- #if !defined(BOOST_ATOMIC_DETAIL_NO_CXX11_IS_TRIVIALLY_COPYABLE)
48
48
  static_assert(atomics::detail::is_trivially_copyable< value_type >::value, "boost::atomic_ref<T> requires T to be a trivially copyable type");
49
- #endif
50
49
 
51
50
  private:
52
- typedef typename base_type::storage_type storage_type;
51
+ using storage_type = typename base_type::storage_type;
53
52
 
54
53
  public:
55
- BOOST_DEFAULTED_FUNCTION(atomic_ref(atomic_ref const& that) BOOST_ATOMIC_DETAIL_DEF_NOEXCEPT_DECL, BOOST_ATOMIC_DETAIL_DEF_NOEXCEPT_IMPL : base_type(static_cast< base_type const& >(that)) {})
56
- BOOST_FORCEINLINE explicit atomic_ref(value_type& v) BOOST_NOEXCEPT : base_type(v)
54
+ atomic_ref(atomic_ref const&) = default;
55
+
56
+ BOOST_FORCEINLINE explicit atomic_ref(value_type& v) noexcept : base_type(v)
57
57
  {
58
58
  // Check that referenced object alignment satisfies required alignment
59
59
  BOOST_ASSERT((((atomics::detail::uintptr_t)this->m_value) & (base_type::required_alignment - 1u)) == 0u);
60
60
  }
61
61
 
62
- BOOST_FORCEINLINE value_type operator= (value_arg_type v) const BOOST_NOEXCEPT
62
+ atomic_ref& operator= (atomic_ref const&) = delete;
63
+
64
+ BOOST_FORCEINLINE value_type operator= (value_arg_type v) const noexcept
63
65
  {
64
66
  this->store(v);
65
67
  return v;
66
68
  }
67
69
 
68
- BOOST_FORCEINLINE operator value_type() const BOOST_NOEXCEPT
70
+ BOOST_FORCEINLINE operator value_type() const noexcept
69
71
  {
70
72
  return this->load();
71
73
  }
72
-
73
- BOOST_DELETED_FUNCTION(atomic_ref& operator= (atomic_ref const&))
74
74
  };
75
75
 
76
76
  #if !defined(BOOST_NO_CXX17_DEDUCTION_GUIDES)
@@ -80,7 +80,7 @@ atomic_ref(T&) -> atomic_ref< T >;
80
80
 
81
81
  //! Atomic reference factory function
82
82
  template< typename T >
83
- BOOST_FORCEINLINE atomic_ref< T > make_atomic_ref(T& value) BOOST_NOEXCEPT
83
+ BOOST_FORCEINLINE atomic_ref< T > make_atomic_ref(T& value) noexcept
84
84
  {
85
85
  return atomic_ref< T >(value);
86
86
  }
@@ -3,7 +3,7 @@
3
3
  * (See accompanying file LICENSE_1_0.txt or copy at
4
4
  * http://www.boost.org/LICENSE_1_0.txt)
5
5
  *
6
- * Copyright (c) 2018 Andrey Semashev
6
+ * Copyright (c) 2018, 2025 Andrey Semashev
7
7
  */
8
8
  /*!
9
9
  * \file atomic/detail/addressof.hpp
@@ -40,9 +40,9 @@ namespace detail {
40
40
  template< typename T >
41
41
  BOOST_FORCEINLINE
42
42
  #if defined(BOOST_ATOMIC_DETAIL_HAS_BUILTIN_ADDRESSOF)
43
- BOOST_CONSTEXPR
43
+ constexpr
44
44
  #endif
45
- T* addressof(T& value) BOOST_NOEXCEPT
45
+ T* addressof(T& value) noexcept
46
46
  {
47
47
  #if defined(BOOST_ATOMIC_DETAIL_HAS_BUILTIN_ADDRESSOF)
48
48
  return __builtin_addressof(value);
@@ -5,7 +5,7 @@
5
5
  *
6
6
  * Copyright (c) 2011 Helge Bahmann
7
7
  * Copyright (c) 2013 Tim Blechmann
8
- * Copyright (c) 2014, 2020 Andrey Semashev
8
+ * Copyright (c) 2014, 2020-2025 Andrey Semashev
9
9
  */
10
10
  /*!
11
11
  * \file atomic/detail/atomic_flag_impl.hpp
@@ -16,8 +16,12 @@
16
16
  #ifndef BOOST_ATOMIC_DETAIL_ATOMIC_FLAG_IMPL_HPP_INCLUDED_
17
17
  #define BOOST_ATOMIC_DETAIL_ATOMIC_FLAG_IMPL_HPP_INCLUDED_
18
18
 
19
+ #include <chrono>
20
+ #include <utility>
21
+ #include <type_traits>
19
22
  #include <boost/assert.hpp>
20
23
  #include <boost/memory_order.hpp>
24
+ #include <boost/atomic/wait_result.hpp>
21
25
  #include <boost/atomic/detail/config.hpp>
22
26
  #include <boost/atomic/detail/core_operations.hpp>
23
27
  #include <boost/atomic/detail/wait_operations.hpp>
@@ -37,53 +41,52 @@ namespace boost {
37
41
  namespace atomics {
38
42
  namespace detail {
39
43
 
40
- #if defined(BOOST_ATOMIC_DETAIL_NO_CXX11_CONSTEXPR_UNION_INIT) || defined(BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX)
41
- #define BOOST_ATOMIC_NO_ATOMIC_FLAG_INIT
42
- #else
43
44
  #define BOOST_ATOMIC_FLAG_INIT {}
44
- #endif
45
45
 
46
46
  //! Atomic flag implementation
47
47
  template< bool IsInterprocess >
48
48
  struct atomic_flag_impl
49
49
  {
50
50
  // Prefer 4-byte storage as most platforms support waiting/notifying operations without a lock pool for 32-bit integers
51
- typedef atomics::detail::core_operations< 4u, false, IsInterprocess > core_operations;
52
- typedef atomics::detail::wait_operations< core_operations > wait_operations;
53
- typedef typename core_operations::storage_type storage_type;
51
+ using core_operations = atomics::detail::core_operations< 4u, false, IsInterprocess >;
52
+ using wait_operations = atomics::detail::wait_operations< core_operations >;
53
+ using storage_type = typename core_operations::storage_type;
54
54
 
55
- static BOOST_CONSTEXPR_OR_CONST bool is_always_lock_free = core_operations::is_always_lock_free;
56
- static BOOST_CONSTEXPR_OR_CONST bool always_has_native_wait_notify = wait_operations::always_has_native_wait_notify;
55
+ static constexpr bool is_always_lock_free = core_operations::is_always_lock_free;
56
+ static constexpr bool always_has_native_wait_notify = wait_operations::always_has_native_wait_notify;
57
57
 
58
58
  BOOST_ATOMIC_DETAIL_ALIGNED_VAR_TPL(core_operations::storage_alignment, storage_type, m_storage);
59
59
 
60
- BOOST_FORCEINLINE BOOST_ATOMIC_DETAIL_CONSTEXPR_UNION_INIT atomic_flag_impl() BOOST_NOEXCEPT : m_storage(0u)
60
+ BOOST_FORCEINLINE constexpr atomic_flag_impl() noexcept : m_storage(0u)
61
61
  {
62
62
  }
63
63
 
64
- BOOST_FORCEINLINE bool is_lock_free() const volatile BOOST_NOEXCEPT
64
+ atomic_flag_impl(atomic_flag_impl const&) = delete;
65
+ atomic_flag_impl& operator= (atomic_flag_impl const&) = delete;
66
+
67
+ BOOST_FORCEINLINE bool is_lock_free() const volatile noexcept
65
68
  {
66
69
  return is_always_lock_free;
67
70
  }
68
71
 
69
- BOOST_FORCEINLINE bool has_native_wait_notify() const volatile BOOST_NOEXCEPT
72
+ BOOST_FORCEINLINE bool has_native_wait_notify() const volatile noexcept
70
73
  {
71
74
  return wait_operations::has_native_wait_notify(m_storage);
72
75
  }
73
76
 
74
- BOOST_FORCEINLINE bool test(memory_order order = memory_order_seq_cst) const volatile BOOST_NOEXCEPT
77
+ BOOST_FORCEINLINE bool test(memory_order order = memory_order_seq_cst) const volatile noexcept
75
78
  {
76
79
  BOOST_ASSERT(order != memory_order_release);
77
80
  BOOST_ASSERT(order != memory_order_acq_rel);
78
81
  return !!core_operations::load(m_storage, order);
79
82
  }
80
83
 
81
- BOOST_FORCEINLINE bool test_and_set(memory_order order = memory_order_seq_cst) volatile BOOST_NOEXCEPT
84
+ BOOST_FORCEINLINE bool test_and_set(memory_order order = memory_order_seq_cst) volatile noexcept
82
85
  {
83
86
  return core_operations::test_and_set(m_storage, order);
84
87
  }
85
88
 
86
- BOOST_FORCEINLINE void clear(memory_order order = memory_order_seq_cst) volatile BOOST_NOEXCEPT
89
+ BOOST_FORCEINLINE void clear(memory_order order = memory_order_seq_cst) volatile noexcept
87
90
  {
88
91
  BOOST_ASSERT(order != memory_order_consume);
89
92
  BOOST_ASSERT(order != memory_order_acquire);
@@ -91,7 +94,7 @@ struct atomic_flag_impl
91
94
  core_operations::clear(m_storage, order);
92
95
  }
93
96
 
94
- BOOST_FORCEINLINE bool wait(bool old_val, memory_order order = memory_order_seq_cst) const volatile BOOST_NOEXCEPT
97
+ BOOST_FORCEINLINE bool wait(bool old_val, memory_order order = memory_order_seq_cst) const volatile noexcept
95
98
  {
96
99
  BOOST_ASSERT(order != memory_order_release);
97
100
  BOOST_ASSERT(order != memory_order_acq_rel);
@@ -99,25 +102,50 @@ struct atomic_flag_impl
99
102
  return !!wait_operations::wait(m_storage, static_cast< storage_type >(old_val), order);
100
103
  }
101
104
 
102
- BOOST_FORCEINLINE void notify_one() volatile BOOST_NOEXCEPT
105
+ template< typename Clock, typename Duration >
106
+ BOOST_FORCEINLINE wait_result< bool >
107
+ wait_until(bool old_val, std::chrono::time_point< Clock, Duration > timeout, memory_order order = memory_order_seq_cst) const volatile
108
+ noexcept(noexcept(wait_operations::wait_until(
109
+ std::declval< storage_type const volatile& >(), std::declval< storage_type >(), timeout, order, std::declval< bool& >())))
110
+ {
111
+ BOOST_ASSERT(order != memory_order_release);
112
+ BOOST_ASSERT(order != memory_order_acq_rel);
113
+
114
+ bool timed_out = false;
115
+ storage_type new_value = wait_operations::wait_until(m_storage, static_cast< storage_type >(old_val), timeout, order, timed_out);
116
+ return wait_result< bool >(!!new_value, timed_out);
117
+ }
118
+
119
+ template< typename Rep, typename Period >
120
+ BOOST_FORCEINLINE wait_result< bool >
121
+ wait_for(bool old_val, std::chrono::duration< Rep, Period > timeout, memory_order order = memory_order_seq_cst) const volatile
122
+ noexcept(noexcept(wait_operations::wait_for(
123
+ std::declval< storage_type const volatile& >(), std::declval< storage_type >(), timeout, order, std::declval< bool& >())))
124
+ {
125
+ BOOST_ASSERT(order != memory_order_release);
126
+ BOOST_ASSERT(order != memory_order_acq_rel);
127
+
128
+ bool timed_out = false;
129
+ storage_type new_value = wait_operations::wait_for(m_storage, static_cast< storage_type >(old_val), timeout, order, timed_out);
130
+ return wait_result< bool >(!!new_value, timed_out);
131
+ }
132
+
133
+ BOOST_FORCEINLINE void notify_one() volatile noexcept
103
134
  {
104
135
  wait_operations::notify_one(m_storage);
105
136
  }
106
137
 
107
- BOOST_FORCEINLINE void notify_all() volatile BOOST_NOEXCEPT
138
+ BOOST_FORCEINLINE void notify_all() volatile noexcept
108
139
  {
109
140
  wait_operations::notify_all(m_storage);
110
141
  }
111
-
112
- BOOST_DELETED_FUNCTION(atomic_flag_impl(atomic_flag_impl const&))
113
- BOOST_DELETED_FUNCTION(atomic_flag_impl& operator= (atomic_flag_impl const&))
114
142
  };
115
143
 
116
144
  #if defined(BOOST_NO_CXX17_INLINE_VARIABLES)
117
145
  template< bool IsInterprocess >
118
- BOOST_CONSTEXPR_OR_CONST bool atomic_flag_impl< IsInterprocess >::is_always_lock_free;
146
+ constexpr bool atomic_flag_impl< IsInterprocess >::is_always_lock_free;
119
147
  template< bool IsInterprocess >
120
- BOOST_CONSTEXPR_OR_CONST bool atomic_flag_impl< IsInterprocess >::always_has_native_wait_notify;
148
+ constexpr bool atomic_flag_impl< IsInterprocess >::always_has_native_wait_notify;
121
149
  #endif
122
150
 
123
151
  } // namespace detail