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
@@ -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 Andrey Semashev
6
+ * Copyright (c) 2020-2025 Andrey Semashev
7
7
  */
8
8
  /*!
9
9
  * \file atomic/detail/core_arch_ops_gcc_aarch32.hpp
@@ -15,7 +15,7 @@
15
15
  #define BOOST_ATOMIC_DETAIL_CORE_ARCH_OPS_GCC_AARCH32_HPP_INCLUDED_
16
16
 
17
17
  #include <cstddef>
18
- #include <boost/cstdint.hpp>
18
+ #include <cstdint>
19
19
  #include <boost/memory_order.hpp>
20
20
  #include <boost/atomic/detail/config.hpp>
21
21
  #include <boost/atomic/detail/storage_traits.hpp>
@@ -45,23 +45,24 @@ namespace detail {
45
45
 
46
46
  struct core_arch_operations_gcc_aarch32_base
47
47
  {
48
- static BOOST_CONSTEXPR_OR_CONST bool full_cas_based = false;
49
- static BOOST_CONSTEXPR_OR_CONST bool is_always_lock_free = true;
48
+ static constexpr bool full_cas_based = false;
49
+ static constexpr bool is_always_lock_free = true;
50
50
  };
51
51
 
52
52
  template< bool Signed, bool Interprocess >
53
53
  struct core_arch_operations< 1u, Signed, Interprocess > :
54
54
  public core_arch_operations_gcc_aarch32_base
55
55
  {
56
- typedef typename storage_traits< 1u >::type storage_type;
56
+ using storage_type = typename storage_traits< 1u >::type;
57
57
 
58
- static BOOST_CONSTEXPR_OR_CONST std::size_t storage_size = 1u;
59
- static BOOST_CONSTEXPR_OR_CONST std::size_t storage_alignment = 1u;
60
- static BOOST_CONSTEXPR_OR_CONST bool is_signed = Signed;
61
- static BOOST_CONSTEXPR_OR_CONST bool is_interprocess = Interprocess;
58
+ static constexpr std::size_t storage_size = 1u;
59
+ static constexpr std::size_t storage_alignment = 1u;
60
+ static constexpr bool is_signed = Signed;
61
+ static constexpr bool is_interprocess = Interprocess;
62
62
 
63
- static BOOST_FORCEINLINE void store(storage_type volatile& storage, storage_type v, memory_order order) BOOST_NOEXCEPT
63
+ static BOOST_FORCEINLINE void store(storage_type volatile& storage, storage_type v, memory_order order) noexcept
64
64
  {
65
+ BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
65
66
  if ((static_cast< unsigned int >(order) & static_cast< unsigned int >(memory_order_release)) != 0u)
66
67
  {
67
68
  __asm__ __volatile__
@@ -78,7 +79,7 @@ struct core_arch_operations< 1u, Signed, Interprocess > :
78
79
  }
79
80
  }
80
81
 
81
- static BOOST_FORCEINLINE storage_type load(storage_type const volatile& storage, memory_order order) BOOST_NOEXCEPT
82
+ static BOOST_FORCEINLINE storage_type load(storage_type const volatile& storage, memory_order order) noexcept
82
83
  {
83
84
  storage_type v;
84
85
  if ((static_cast< unsigned int >(order) & (static_cast< unsigned int >(memory_order_consume) | static_cast< unsigned int >(memory_order_acquire))) != 0u)
@@ -95,14 +96,16 @@ struct core_arch_operations< 1u, Signed, Interprocess > :
95
96
  {
96
97
  v = storage;
97
98
  }
99
+ BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
98
100
 
99
101
  return v;
100
102
  }
101
103
 
102
- static BOOST_FORCEINLINE storage_type exchange(storage_type volatile& storage, storage_type v, memory_order order) BOOST_NOEXCEPT
104
+ static BOOST_FORCEINLINE storage_type exchange(storage_type volatile& storage, storage_type v, memory_order order) noexcept
103
105
  {
106
+ BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
104
107
  storage_type original;
105
- uint32_t tmp;
108
+ std::uint32_t tmp;
106
109
  #define BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN(ld_mo, st_mo)\
107
110
  __asm__ __volatile__\
108
111
  (\
@@ -118,13 +121,15 @@ struct core_arch_operations< 1u, Signed, Interprocess > :
118
121
 
119
122
  BOOST_ATOMIC_DETAIL_AARCH32_MO_SWITCH(order)
120
123
  #undef BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN
124
+ BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
121
125
 
122
126
  return original;
123
127
  }
124
128
 
125
129
  static BOOST_FORCEINLINE bool compare_exchange_weak(
126
- storage_type volatile& storage, storage_type& expected, storage_type desired, memory_order success_order, memory_order failure_order) BOOST_NOEXCEPT
130
+ storage_type volatile& storage, storage_type& expected, storage_type desired, memory_order success_order, memory_order failure_order) noexcept
127
131
  {
132
+ BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, success_order);
128
133
  storage_type original;
129
134
  bool success;
130
135
  #define BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN(ld_mo, st_mo)\
@@ -147,12 +152,15 @@ struct core_arch_operations< 1u, Signed, Interprocess > :
147
152
  #undef BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN
148
153
 
149
154
  expected = original;
155
+ BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, (success ? success_order : failure_order));
156
+
150
157
  return success;
151
158
  }
152
159
 
153
160
  static BOOST_FORCEINLINE bool compare_exchange_strong(
154
- storage_type volatile& storage, storage_type& expected, storage_type desired, memory_order success_order, memory_order failure_order) BOOST_NOEXCEPT
161
+ storage_type volatile& storage, storage_type& expected, storage_type desired, memory_order success_order, memory_order failure_order) noexcept
155
162
  {
163
+ BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, success_order);
156
164
  storage_type original;
157
165
  bool success;
158
166
  #define BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN(ld_mo, st_mo)\
@@ -177,13 +185,16 @@ struct core_arch_operations< 1u, Signed, Interprocess > :
177
185
  #undef BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN
178
186
 
179
187
  expected = original;
188
+ BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, (success ? success_order : failure_order));
189
+
180
190
  return success;
181
191
  }
182
192
 
183
- static BOOST_FORCEINLINE storage_type fetch_add(storage_type volatile& storage, storage_type v, memory_order order) BOOST_NOEXCEPT
193
+ static BOOST_FORCEINLINE storage_type fetch_add(storage_type volatile& storage, storage_type v, memory_order order) noexcept
184
194
  {
195
+ BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
185
196
  storage_type original, result;
186
- uint32_t tmp;
197
+ std::uint32_t tmp;
187
198
  #define BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN(ld_mo, st_mo)\
188
199
  __asm__ __volatile__\
189
200
  (\
@@ -200,14 +211,16 @@ struct core_arch_operations< 1u, Signed, Interprocess > :
200
211
 
201
212
  BOOST_ATOMIC_DETAIL_AARCH32_MO_SWITCH(order)
202
213
  #undef BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN
214
+ BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
203
215
 
204
216
  return original;
205
217
  }
206
218
 
207
- static BOOST_FORCEINLINE storage_type fetch_sub(storage_type volatile& storage, storage_type v, memory_order order) BOOST_NOEXCEPT
219
+ static BOOST_FORCEINLINE storage_type fetch_sub(storage_type volatile& storage, storage_type v, memory_order order) noexcept
208
220
  {
221
+ BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
209
222
  storage_type original, result;
210
- uint32_t tmp;
223
+ std::uint32_t tmp;
211
224
  #define BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN(ld_mo, st_mo)\
212
225
  __asm__ __volatile__\
213
226
  (\
@@ -224,14 +237,16 @@ struct core_arch_operations< 1u, Signed, Interprocess > :
224
237
 
225
238
  BOOST_ATOMIC_DETAIL_AARCH32_MO_SWITCH(order)
226
239
  #undef BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN
240
+ BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
227
241
 
228
242
  return original;
229
243
  }
230
244
 
231
- static BOOST_FORCEINLINE storage_type fetch_and(storage_type volatile& storage, storage_type v, memory_order order) BOOST_NOEXCEPT
245
+ static BOOST_FORCEINLINE storage_type fetch_and(storage_type volatile& storage, storage_type v, memory_order order) noexcept
232
246
  {
247
+ BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
233
248
  storage_type original, result;
234
- uint32_t tmp;
249
+ std::uint32_t tmp;
235
250
  #define BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN(ld_mo, st_mo)\
236
251
  __asm__ __volatile__\
237
252
  (\
@@ -248,14 +263,16 @@ struct core_arch_operations< 1u, Signed, Interprocess > :
248
263
 
249
264
  BOOST_ATOMIC_DETAIL_AARCH32_MO_SWITCH(order)
250
265
  #undef BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN
266
+ BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
251
267
 
252
268
  return original;
253
269
  }
254
270
 
255
- static BOOST_FORCEINLINE storage_type fetch_or(storage_type volatile& storage, storage_type v, memory_order order) BOOST_NOEXCEPT
271
+ static BOOST_FORCEINLINE storage_type fetch_or(storage_type volatile& storage, storage_type v, memory_order order) noexcept
256
272
  {
273
+ BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
257
274
  storage_type original, result;
258
- uint32_t tmp;
275
+ std::uint32_t tmp;
259
276
  #define BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN(ld_mo, st_mo)\
260
277
  __asm__ __volatile__\
261
278
  (\
@@ -272,14 +289,16 @@ struct core_arch_operations< 1u, Signed, Interprocess > :
272
289
 
273
290
  BOOST_ATOMIC_DETAIL_AARCH32_MO_SWITCH(order)
274
291
  #undef BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN
292
+ BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
275
293
 
276
294
  return original;
277
295
  }
278
296
 
279
- static BOOST_FORCEINLINE storage_type fetch_xor(storage_type volatile& storage, storage_type v, memory_order order) BOOST_NOEXCEPT
297
+ static BOOST_FORCEINLINE storage_type fetch_xor(storage_type volatile& storage, storage_type v, memory_order order) noexcept
280
298
  {
299
+ BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
281
300
  storage_type original, result;
282
- uint32_t tmp;
301
+ std::uint32_t tmp;
283
302
  #define BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN(ld_mo, st_mo)\
284
303
  __asm__ __volatile__\
285
304
  (\
@@ -296,16 +315,17 @@ struct core_arch_operations< 1u, Signed, Interprocess > :
296
315
 
297
316
  BOOST_ATOMIC_DETAIL_AARCH32_MO_SWITCH(order)
298
317
  #undef BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN
318
+ BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
299
319
 
300
320
  return original;
301
321
  }
302
322
 
303
- static BOOST_FORCEINLINE bool test_and_set(storage_type volatile& storage, memory_order order) BOOST_NOEXCEPT
323
+ static BOOST_FORCEINLINE bool test_and_set(storage_type volatile& storage, memory_order order) noexcept
304
324
  {
305
325
  return !!exchange(storage, (storage_type)1, order);
306
326
  }
307
327
 
308
- static BOOST_FORCEINLINE void clear(storage_type volatile& storage, memory_order order) BOOST_NOEXCEPT
328
+ static BOOST_FORCEINLINE void clear(storage_type volatile& storage, memory_order order) noexcept
309
329
  {
310
330
  store(storage, (storage_type)0, order);
311
331
  }
@@ -315,15 +335,16 @@ template< bool Signed, bool Interprocess >
315
335
  struct core_arch_operations< 2u, Signed, Interprocess > :
316
336
  public core_arch_operations_gcc_aarch32_base
317
337
  {
318
- typedef typename storage_traits< 2u >::type storage_type;
338
+ using storage_type = typename storage_traits< 2u >::type;
319
339
 
320
- static BOOST_CONSTEXPR_OR_CONST std::size_t storage_size = 2u;
321
- static BOOST_CONSTEXPR_OR_CONST std::size_t storage_alignment = 2u;
322
- static BOOST_CONSTEXPR_OR_CONST bool is_signed = Signed;
323
- static BOOST_CONSTEXPR_OR_CONST bool is_interprocess = Interprocess;
340
+ static constexpr std::size_t storage_size = 2u;
341
+ static constexpr std::size_t storage_alignment = 2u;
342
+ static constexpr bool is_signed = Signed;
343
+ static constexpr bool is_interprocess = Interprocess;
324
344
 
325
- static BOOST_FORCEINLINE void store(storage_type volatile& storage, storage_type v, memory_order order) BOOST_NOEXCEPT
345
+ static BOOST_FORCEINLINE void store(storage_type volatile& storage, storage_type v, memory_order order) noexcept
326
346
  {
347
+ BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
327
348
  if ((static_cast< unsigned int >(order) & static_cast< unsigned int >(memory_order_release)) != 0u)
328
349
  {
329
350
  __asm__ __volatile__
@@ -340,7 +361,7 @@ struct core_arch_operations< 2u, Signed, Interprocess > :
340
361
  }
341
362
  }
342
363
 
343
- static BOOST_FORCEINLINE storage_type load(storage_type const volatile& storage, memory_order order) BOOST_NOEXCEPT
364
+ static BOOST_FORCEINLINE storage_type load(storage_type const volatile& storage, memory_order order) noexcept
344
365
  {
345
366
  storage_type v;
346
367
  if ((static_cast< unsigned int >(order) & (static_cast< unsigned int >(memory_order_consume) | static_cast< unsigned int >(memory_order_acquire))) != 0u)
@@ -357,14 +378,16 @@ struct core_arch_operations< 2u, Signed, Interprocess > :
357
378
  {
358
379
  v = storage;
359
380
  }
381
+ BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
360
382
 
361
383
  return v;
362
384
  }
363
385
 
364
- static BOOST_FORCEINLINE storage_type exchange(storage_type volatile& storage, storage_type v, memory_order order) BOOST_NOEXCEPT
386
+ static BOOST_FORCEINLINE storage_type exchange(storage_type volatile& storage, storage_type v, memory_order order) noexcept
365
387
  {
388
+ BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
366
389
  storage_type original;
367
- uint32_t tmp;
390
+ std::uint32_t tmp;
368
391
  #define BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN(ld_mo, st_mo)\
369
392
  __asm__ __volatile__\
370
393
  (\
@@ -380,13 +403,15 @@ struct core_arch_operations< 2u, Signed, Interprocess > :
380
403
 
381
404
  BOOST_ATOMIC_DETAIL_AARCH32_MO_SWITCH(order)
382
405
  #undef BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN
406
+ BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
383
407
 
384
408
  return original;
385
409
  }
386
410
 
387
411
  static BOOST_FORCEINLINE bool compare_exchange_weak(
388
- storage_type volatile& storage, storage_type& expected, storage_type desired, memory_order success_order, memory_order failure_order) BOOST_NOEXCEPT
412
+ storage_type volatile& storage, storage_type& expected, storage_type desired, memory_order success_order, memory_order failure_order) noexcept
389
413
  {
414
+ BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, success_order);
390
415
  storage_type original;
391
416
  bool success;
392
417
  #define BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN(ld_mo, st_mo)\
@@ -409,12 +434,15 @@ struct core_arch_operations< 2u, Signed, Interprocess > :
409
434
  #undef BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN
410
435
 
411
436
  expected = original;
437
+ BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, (success ? success_order : failure_order));
438
+
412
439
  return success;
413
440
  }
414
441
 
415
442
  static BOOST_FORCEINLINE bool compare_exchange_strong(
416
- storage_type volatile& storage, storage_type& expected, storage_type desired, memory_order success_order, memory_order failure_order) BOOST_NOEXCEPT
443
+ storage_type volatile& storage, storage_type& expected, storage_type desired, memory_order success_order, memory_order failure_order) noexcept
417
444
  {
445
+ BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, success_order);
418
446
  storage_type original;
419
447
  bool success;
420
448
  #define BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN(ld_mo, st_mo)\
@@ -439,13 +467,16 @@ struct core_arch_operations< 2u, Signed, Interprocess > :
439
467
  #undef BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN
440
468
 
441
469
  expected = original;
470
+ BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, (success ? success_order : failure_order));
471
+
442
472
  return success;
443
473
  }
444
474
 
445
- static BOOST_FORCEINLINE storage_type fetch_add(storage_type volatile& storage, storage_type v, memory_order order) BOOST_NOEXCEPT
475
+ static BOOST_FORCEINLINE storage_type fetch_add(storage_type volatile& storage, storage_type v, memory_order order) noexcept
446
476
  {
477
+ BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
447
478
  storage_type original, result;
448
- uint32_t tmp;
479
+ std::uint32_t tmp;
449
480
  #define BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN(ld_mo, st_mo)\
450
481
  __asm__ __volatile__\
451
482
  (\
@@ -462,14 +493,16 @@ struct core_arch_operations< 2u, Signed, Interprocess > :
462
493
 
463
494
  BOOST_ATOMIC_DETAIL_AARCH32_MO_SWITCH(order)
464
495
  #undef BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN
496
+ BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
465
497
 
466
498
  return original;
467
499
  }
468
500
 
469
- static BOOST_FORCEINLINE storage_type fetch_sub(storage_type volatile& storage, storage_type v, memory_order order) BOOST_NOEXCEPT
501
+ static BOOST_FORCEINLINE storage_type fetch_sub(storage_type volatile& storage, storage_type v, memory_order order) noexcept
470
502
  {
503
+ BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
471
504
  storage_type original, result;
472
- uint32_t tmp;
505
+ std::uint32_t tmp;
473
506
  #define BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN(ld_mo, st_mo)\
474
507
  __asm__ __volatile__\
475
508
  (\
@@ -486,14 +519,16 @@ struct core_arch_operations< 2u, Signed, Interprocess > :
486
519
 
487
520
  BOOST_ATOMIC_DETAIL_AARCH32_MO_SWITCH(order)
488
521
  #undef BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN
522
+ BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
489
523
 
490
524
  return original;
491
525
  }
492
526
 
493
- static BOOST_FORCEINLINE storage_type fetch_and(storage_type volatile& storage, storage_type v, memory_order order) BOOST_NOEXCEPT
527
+ static BOOST_FORCEINLINE storage_type fetch_and(storage_type volatile& storage, storage_type v, memory_order order) noexcept
494
528
  {
529
+ BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
495
530
  storage_type original, result;
496
- uint32_t tmp;
531
+ std::uint32_t tmp;
497
532
  #define BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN(ld_mo, st_mo)\
498
533
  __asm__ __volatile__\
499
534
  (\
@@ -510,14 +545,16 @@ struct core_arch_operations< 2u, Signed, Interprocess > :
510
545
 
511
546
  BOOST_ATOMIC_DETAIL_AARCH32_MO_SWITCH(order)
512
547
  #undef BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN
548
+ BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
513
549
 
514
550
  return original;
515
551
  }
516
552
 
517
- static BOOST_FORCEINLINE storage_type fetch_or(storage_type volatile& storage, storage_type v, memory_order order) BOOST_NOEXCEPT
553
+ static BOOST_FORCEINLINE storage_type fetch_or(storage_type volatile& storage, storage_type v, memory_order order) noexcept
518
554
  {
555
+ BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
519
556
  storage_type original, result;
520
- uint32_t tmp;
557
+ std::uint32_t tmp;
521
558
  #define BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN(ld_mo, st_mo)\
522
559
  __asm__ __volatile__\
523
560
  (\
@@ -534,14 +571,16 @@ struct core_arch_operations< 2u, Signed, Interprocess > :
534
571
 
535
572
  BOOST_ATOMIC_DETAIL_AARCH32_MO_SWITCH(order)
536
573
  #undef BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN
574
+ BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
537
575
 
538
576
  return original;
539
577
  }
540
578
 
541
- static BOOST_FORCEINLINE storage_type fetch_xor(storage_type volatile& storage, storage_type v, memory_order order) BOOST_NOEXCEPT
579
+ static BOOST_FORCEINLINE storage_type fetch_xor(storage_type volatile& storage, storage_type v, memory_order order) noexcept
542
580
  {
581
+ BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
543
582
  storage_type original, result;
544
- uint32_t tmp;
583
+ std::uint32_t tmp;
545
584
  #define BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN(ld_mo, st_mo)\
546
585
  __asm__ __volatile__\
547
586
  (\
@@ -558,16 +597,17 @@ struct core_arch_operations< 2u, Signed, Interprocess > :
558
597
 
559
598
  BOOST_ATOMIC_DETAIL_AARCH32_MO_SWITCH(order)
560
599
  #undef BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN
600
+ BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
561
601
 
562
602
  return original;
563
603
  }
564
604
 
565
- static BOOST_FORCEINLINE bool test_and_set(storage_type volatile& storage, memory_order order) BOOST_NOEXCEPT
605
+ static BOOST_FORCEINLINE bool test_and_set(storage_type volatile& storage, memory_order order) noexcept
566
606
  {
567
607
  return !!exchange(storage, (storage_type)1, order);
568
608
  }
569
609
 
570
- static BOOST_FORCEINLINE void clear(storage_type volatile& storage, memory_order order) BOOST_NOEXCEPT
610
+ static BOOST_FORCEINLINE void clear(storage_type volatile& storage, memory_order order) noexcept
571
611
  {
572
612
  store(storage, (storage_type)0, order);
573
613
  }
@@ -577,15 +617,16 @@ template< bool Signed, bool Interprocess >
577
617
  struct core_arch_operations< 4u, Signed, Interprocess > :
578
618
  public core_arch_operations_gcc_aarch32_base
579
619
  {
580
- typedef typename storage_traits< 4u >::type storage_type;
620
+ using storage_type = typename storage_traits< 4u >::type;
581
621
 
582
- static BOOST_CONSTEXPR_OR_CONST std::size_t storage_size = 4u;
583
- static BOOST_CONSTEXPR_OR_CONST std::size_t storage_alignment = 4u;
584
- static BOOST_CONSTEXPR_OR_CONST bool is_signed = Signed;
585
- static BOOST_CONSTEXPR_OR_CONST bool is_interprocess = Interprocess;
622
+ static constexpr std::size_t storage_size = 4u;
623
+ static constexpr std::size_t storage_alignment = 4u;
624
+ static constexpr bool is_signed = Signed;
625
+ static constexpr bool is_interprocess = Interprocess;
586
626
 
587
- static BOOST_FORCEINLINE void store(storage_type volatile& storage, storage_type v, memory_order order) BOOST_NOEXCEPT
627
+ static BOOST_FORCEINLINE void store(storage_type volatile& storage, storage_type v, memory_order order) noexcept
588
628
  {
629
+ BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
589
630
  if ((static_cast< unsigned int >(order) & static_cast< unsigned int >(memory_order_release)) != 0u)
590
631
  {
591
632
  __asm__ __volatile__
@@ -602,7 +643,7 @@ struct core_arch_operations< 4u, Signed, Interprocess > :
602
643
  }
603
644
  }
604
645
 
605
- static BOOST_FORCEINLINE storage_type load(storage_type const volatile& storage, memory_order order) BOOST_NOEXCEPT
646
+ static BOOST_FORCEINLINE storage_type load(storage_type const volatile& storage, memory_order order) noexcept
606
647
  {
607
648
  storage_type v;
608
649
  if ((static_cast< unsigned int >(order) & (static_cast< unsigned int >(memory_order_consume) | static_cast< unsigned int >(memory_order_acquire))) != 0u)
@@ -619,14 +660,16 @@ struct core_arch_operations< 4u, Signed, Interprocess > :
619
660
  {
620
661
  v = storage;
621
662
  }
663
+ BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
622
664
 
623
665
  return v;
624
666
  }
625
667
 
626
- static BOOST_FORCEINLINE storage_type exchange(storage_type volatile& storage, storage_type v, memory_order order) BOOST_NOEXCEPT
668
+ static BOOST_FORCEINLINE storage_type exchange(storage_type volatile& storage, storage_type v, memory_order order) noexcept
627
669
  {
670
+ BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
628
671
  storage_type original;
629
- uint32_t tmp;
672
+ std::uint32_t tmp;
630
673
  #define BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN(ld_mo, st_mo)\
631
674
  __asm__ __volatile__\
632
675
  (\
@@ -642,13 +685,15 @@ struct core_arch_operations< 4u, Signed, Interprocess > :
642
685
 
643
686
  BOOST_ATOMIC_DETAIL_AARCH32_MO_SWITCH(order)
644
687
  #undef BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN
688
+ BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
645
689
 
646
690
  return original;
647
691
  }
648
692
 
649
693
  static BOOST_FORCEINLINE bool compare_exchange_weak(
650
- storage_type volatile& storage, storage_type& expected, storage_type desired, memory_order success_order, memory_order failure_order) BOOST_NOEXCEPT
694
+ storage_type volatile& storage, storage_type& expected, storage_type desired, memory_order success_order, memory_order failure_order) noexcept
651
695
  {
696
+ BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, success_order);
652
697
  storage_type original;
653
698
  bool success;
654
699
  #define BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN(ld_mo, st_mo)\
@@ -670,12 +715,15 @@ struct core_arch_operations< 4u, Signed, Interprocess > :
670
715
  #undef BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN
671
716
 
672
717
  expected = original;
718
+ BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, (success ? success_order : failure_order));
719
+
673
720
  return success;
674
721
  }
675
722
 
676
723
  static BOOST_FORCEINLINE bool compare_exchange_strong(
677
- storage_type volatile& storage, storage_type& expected, storage_type desired, memory_order success_order, memory_order failure_order) BOOST_NOEXCEPT
724
+ storage_type volatile& storage, storage_type& expected, storage_type desired, memory_order success_order, memory_order failure_order) noexcept
678
725
  {
726
+ BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, success_order);
679
727
  storage_type original;
680
728
  bool success;
681
729
  #define BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN(ld_mo, st_mo)\
@@ -699,13 +747,16 @@ struct core_arch_operations< 4u, Signed, Interprocess > :
699
747
  #undef BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN
700
748
 
701
749
  expected = original;
750
+ BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, (success ? success_order : failure_order));
751
+
702
752
  return success;
703
753
  }
704
754
 
705
- static BOOST_FORCEINLINE storage_type fetch_add(storage_type volatile& storage, storage_type v, memory_order order) BOOST_NOEXCEPT
755
+ static BOOST_FORCEINLINE storage_type fetch_add(storage_type volatile& storage, storage_type v, memory_order order) noexcept
706
756
  {
757
+ BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
707
758
  storage_type original, result;
708
- uint32_t tmp;
759
+ std::uint32_t tmp;
709
760
  #define BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN(ld_mo, st_mo)\
710
761
  __asm__ __volatile__\
711
762
  (\
@@ -722,14 +773,16 @@ struct core_arch_operations< 4u, Signed, Interprocess > :
722
773
 
723
774
  BOOST_ATOMIC_DETAIL_AARCH32_MO_SWITCH(order)
724
775
  #undef BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN
776
+ BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
725
777
 
726
778
  return original;
727
779
  }
728
780
 
729
- static BOOST_FORCEINLINE storage_type fetch_sub(storage_type volatile& storage, storage_type v, memory_order order) BOOST_NOEXCEPT
781
+ static BOOST_FORCEINLINE storage_type fetch_sub(storage_type volatile& storage, storage_type v, memory_order order) noexcept
730
782
  {
783
+ BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
731
784
  storage_type original, result;
732
- uint32_t tmp;
785
+ std::uint32_t tmp;
733
786
  #define BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN(ld_mo, st_mo)\
734
787
  __asm__ __volatile__\
735
788
  (\
@@ -746,14 +799,16 @@ struct core_arch_operations< 4u, Signed, Interprocess > :
746
799
 
747
800
  BOOST_ATOMIC_DETAIL_AARCH32_MO_SWITCH(order)
748
801
  #undef BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN
802
+ BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
749
803
 
750
804
  return original;
751
805
  }
752
806
 
753
- static BOOST_FORCEINLINE storage_type fetch_and(storage_type volatile& storage, storage_type v, memory_order order) BOOST_NOEXCEPT
807
+ static BOOST_FORCEINLINE storage_type fetch_and(storage_type volatile& storage, storage_type v, memory_order order) noexcept
754
808
  {
809
+ BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
755
810
  storage_type original, result;
756
- uint32_t tmp;
811
+ std::uint32_t tmp;
757
812
  #define BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN(ld_mo, st_mo)\
758
813
  __asm__ __volatile__\
759
814
  (\
@@ -770,14 +825,16 @@ struct core_arch_operations< 4u, Signed, Interprocess > :
770
825
 
771
826
  BOOST_ATOMIC_DETAIL_AARCH32_MO_SWITCH(order)
772
827
  #undef BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN
828
+ BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
773
829
 
774
830
  return original;
775
831
  }
776
832
 
777
- static BOOST_FORCEINLINE storage_type fetch_or(storage_type volatile& storage, storage_type v, memory_order order) BOOST_NOEXCEPT
833
+ static BOOST_FORCEINLINE storage_type fetch_or(storage_type volatile& storage, storage_type v, memory_order order) noexcept
778
834
  {
835
+ BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
779
836
  storage_type original, result;
780
- uint32_t tmp;
837
+ std::uint32_t tmp;
781
838
  #define BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN(ld_mo, st_mo)\
782
839
  __asm__ __volatile__\
783
840
  (\
@@ -794,14 +851,16 @@ struct core_arch_operations< 4u, Signed, Interprocess > :
794
851
 
795
852
  BOOST_ATOMIC_DETAIL_AARCH32_MO_SWITCH(order)
796
853
  #undef BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN
854
+ BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
797
855
 
798
856
  return original;
799
857
  }
800
858
 
801
- static BOOST_FORCEINLINE storage_type fetch_xor(storage_type volatile& storage, storage_type v, memory_order order) BOOST_NOEXCEPT
859
+ static BOOST_FORCEINLINE storage_type fetch_xor(storage_type volatile& storage, storage_type v, memory_order order) noexcept
802
860
  {
861
+ BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
803
862
  storage_type original, result;
804
- uint32_t tmp;
863
+ std::uint32_t tmp;
805
864
  #define BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN(ld_mo, st_mo)\
806
865
  __asm__ __volatile__\
807
866
  (\
@@ -818,16 +877,17 @@ struct core_arch_operations< 4u, Signed, Interprocess > :
818
877
 
819
878
  BOOST_ATOMIC_DETAIL_AARCH32_MO_SWITCH(order)
820
879
  #undef BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN
880
+ BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
821
881
 
822
882
  return original;
823
883
  }
824
884
 
825
- static BOOST_FORCEINLINE bool test_and_set(storage_type volatile& storage, memory_order order) BOOST_NOEXCEPT
885
+ static BOOST_FORCEINLINE bool test_and_set(storage_type volatile& storage, memory_order order) noexcept
826
886
  {
827
887
  return !!exchange(storage, (storage_type)1, order);
828
888
  }
829
889
 
830
- static BOOST_FORCEINLINE void clear(storage_type volatile& storage, memory_order order) BOOST_NOEXCEPT
890
+ static BOOST_FORCEINLINE void clear(storage_type volatile& storage, memory_order order) noexcept
831
891
  {
832
892
  store(storage, (storage_type)0, order);
833
893
  }
@@ -854,19 +914,49 @@ template< bool Signed, bool Interprocess >
854
914
  struct core_arch_operations< 8u, Signed, Interprocess > :
855
915
  public core_arch_operations_gcc_aarch32_base
856
916
  {
857
- typedef typename storage_traits< 8u >::type storage_type;
917
+ using storage_type = typename storage_traits< 8u >::type;
858
918
 
859
- static BOOST_CONSTEXPR_OR_CONST std::size_t storage_size = 8u;
860
- static BOOST_CONSTEXPR_OR_CONST std::size_t storage_alignment = 8u;
861
- static BOOST_CONSTEXPR_OR_CONST bool is_signed = Signed;
862
- static BOOST_CONSTEXPR_OR_CONST bool is_interprocess = Interprocess;
919
+ static constexpr std::size_t storage_size = 8u;
920
+ static constexpr std::size_t storage_alignment = 8u;
921
+ static constexpr bool is_signed = Signed;
922
+ static constexpr bool is_interprocess = Interprocess;
863
923
 
864
- static BOOST_FORCEINLINE void store(storage_type volatile& storage, storage_type v, memory_order order) BOOST_NOEXCEPT
924
+ static BOOST_FORCEINLINE void store(storage_type volatile& storage, storage_type v, memory_order order) noexcept
865
925
  {
866
- exchange(storage, v, order);
926
+ BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
927
+ storage_type original;
928
+ std::uint32_t tmp;
929
+ if ((static_cast< unsigned int >(order) & static_cast< unsigned int >(memory_order_release)) != 0u)
930
+ {
931
+ __asm__ __volatile__
932
+ (
933
+ "1:\n\t"
934
+ "ldrexd %1, %H1, %2\n\t"
935
+ "stlexd %0, %3, %H3, %2\n\t"
936
+ "teq %0, #0\n\t"
937
+ "bne 1b\n\t"
938
+ : "=&r" (tmp), "=&r" (original), "+Q" (storage)
939
+ : "r" (v)
940
+ : BOOST_ATOMIC_DETAIL_ASM_CLOBBER_CC_COMMA "memory"
941
+ );
942
+ }
943
+ else
944
+ {
945
+ __asm__ __volatile__
946
+ (
947
+ "1:\n\t"
948
+ "ldrexd %1, %H1, %2\n\t"
949
+ "strexd %0, %3, %H3, %2\n\t"
950
+ "teq %0, #0\n\t"
951
+ "bne 1b\n\t"
952
+ : "=&r" (tmp), "=&r" (original), "+Q" (storage)
953
+ : "r" (v)
954
+ : BOOST_ATOMIC_DETAIL_ASM_CLOBBER_CC_COMMA "memory"
955
+ );
956
+ }
867
957
  }
868
958
 
869
- static BOOST_FORCEINLINE storage_type load(storage_type const volatile& storage, memory_order order) BOOST_NOEXCEPT
959
+ static BOOST_FORCEINLINE storage_type load(storage_type const volatile& storage, memory_order order) noexcept
870
960
  {
871
961
  storage_type original;
872
962
  if ((static_cast< unsigned int >(order) & (static_cast< unsigned int >(memory_order_consume) | static_cast< unsigned int >(memory_order_acquire))) != 0u)
@@ -887,14 +977,16 @@ struct core_arch_operations< 8u, Signed, Interprocess > :
887
977
  : "Q" (storage) // %1
888
978
  );
889
979
  }
980
+ BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
890
981
 
891
982
  return original;
892
983
  }
893
984
 
894
- static BOOST_FORCEINLINE storage_type exchange(storage_type volatile& storage, storage_type v, memory_order order) BOOST_NOEXCEPT
985
+ static BOOST_FORCEINLINE storage_type exchange(storage_type volatile& storage, storage_type v, memory_order order) noexcept
895
986
  {
987
+ BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
896
988
  storage_type original;
897
- uint32_t tmp;
989
+ std::uint32_t tmp;
898
990
  #define BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN(ld_mo, st_mo)\
899
991
  __asm__ __volatile__\
900
992
  (\
@@ -910,13 +1002,15 @@ struct core_arch_operations< 8u, Signed, Interprocess > :
910
1002
 
911
1003
  BOOST_ATOMIC_DETAIL_AARCH32_MO_SWITCH(order)
912
1004
  #undef BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN
1005
+ BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
913
1006
 
914
1007
  return original;
915
1008
  }
916
1009
 
917
1010
  static BOOST_FORCEINLINE bool compare_exchange_weak(
918
- storage_type volatile& storage, storage_type& expected, storage_type desired, memory_order success_order, memory_order failure_order) BOOST_NOEXCEPT
1011
+ storage_type volatile& storage, storage_type& expected, storage_type desired, memory_order success_order, memory_order failure_order) noexcept
919
1012
  {
1013
+ BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, success_order);
920
1014
  storage_type original;
921
1015
  bool success;
922
1016
  #define BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN(ld_mo, st_mo)\
@@ -940,13 +1034,15 @@ struct core_arch_operations< 8u, Signed, Interprocess > :
940
1034
  #undef BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN
941
1035
 
942
1036
  expected = original;
1037
+ BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, (success ? success_order : failure_order));
943
1038
 
944
1039
  return success;
945
1040
  }
946
1041
 
947
1042
  static BOOST_FORCEINLINE bool compare_exchange_strong(
948
- storage_type volatile& storage, storage_type& expected, storage_type desired, memory_order success_order, memory_order failure_order) BOOST_NOEXCEPT
1043
+ storage_type volatile& storage, storage_type& expected, storage_type desired, memory_order success_order, memory_order failure_order) noexcept
949
1044
  {
1045
+ BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, success_order);
950
1046
  storage_type original;
951
1047
  bool success;
952
1048
  #define BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN(ld_mo, st_mo)\
@@ -972,14 +1068,16 @@ struct core_arch_operations< 8u, Signed, Interprocess > :
972
1068
  #undef BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN
973
1069
 
974
1070
  expected = original;
1071
+ BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, (success ? success_order : failure_order));
975
1072
 
976
1073
  return success;
977
1074
  }
978
1075
 
979
- static BOOST_FORCEINLINE storage_type fetch_add(storage_type volatile& storage, storage_type v, memory_order order) BOOST_NOEXCEPT
1076
+ static BOOST_FORCEINLINE storage_type fetch_add(storage_type volatile& storage, storage_type v, memory_order order) noexcept
980
1077
  {
1078
+ BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
981
1079
  storage_type original, result;
982
- uint32_t tmp;
1080
+ std::uint32_t tmp;
983
1081
  #define BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN(ld_mo, st_mo)\
984
1082
  __asm__ __volatile__\
985
1083
  (\
@@ -997,14 +1095,16 @@ struct core_arch_operations< 8u, Signed, Interprocess > :
997
1095
 
998
1096
  BOOST_ATOMIC_DETAIL_AARCH32_MO_SWITCH(order)
999
1097
  #undef BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN
1098
+ BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
1000
1099
 
1001
1100
  return original;
1002
1101
  }
1003
1102
 
1004
- static BOOST_FORCEINLINE storage_type fetch_sub(storage_type volatile& storage, storage_type v, memory_order order) BOOST_NOEXCEPT
1103
+ static BOOST_FORCEINLINE storage_type fetch_sub(storage_type volatile& storage, storage_type v, memory_order order) noexcept
1005
1104
  {
1105
+ BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
1006
1106
  storage_type original, result;
1007
- uint32_t tmp;
1107
+ std::uint32_t tmp;
1008
1108
  #define BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN(ld_mo, st_mo)\
1009
1109
  __asm__ __volatile__\
1010
1110
  (\
@@ -1022,14 +1122,16 @@ struct core_arch_operations< 8u, Signed, Interprocess > :
1022
1122
 
1023
1123
  BOOST_ATOMIC_DETAIL_AARCH32_MO_SWITCH(order)
1024
1124
  #undef BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN
1125
+ BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
1025
1126
 
1026
1127
  return original;
1027
1128
  }
1028
1129
 
1029
- static BOOST_FORCEINLINE storage_type fetch_and(storage_type volatile& storage, storage_type v, memory_order order) BOOST_NOEXCEPT
1130
+ static BOOST_FORCEINLINE storage_type fetch_and(storage_type volatile& storage, storage_type v, memory_order order) noexcept
1030
1131
  {
1132
+ BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
1031
1133
  storage_type original, result;
1032
- uint32_t tmp;
1134
+ std::uint32_t tmp;
1033
1135
  #define BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN(ld_mo, st_mo)\
1034
1136
  __asm__ __volatile__\
1035
1137
  (\
@@ -1047,14 +1149,16 @@ struct core_arch_operations< 8u, Signed, Interprocess > :
1047
1149
 
1048
1150
  BOOST_ATOMIC_DETAIL_AARCH32_MO_SWITCH(order)
1049
1151
  #undef BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN
1152
+ BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
1050
1153
 
1051
1154
  return original;
1052
1155
  }
1053
1156
 
1054
- static BOOST_FORCEINLINE storage_type fetch_or(storage_type volatile& storage, storage_type v, memory_order order) BOOST_NOEXCEPT
1157
+ static BOOST_FORCEINLINE storage_type fetch_or(storage_type volatile& storage, storage_type v, memory_order order) noexcept
1055
1158
  {
1159
+ BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
1056
1160
  storage_type original, result;
1057
- uint32_t tmp;
1161
+ std::uint32_t tmp;
1058
1162
  #define BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN(ld_mo, st_mo)\
1059
1163
  __asm__ __volatile__\
1060
1164
  (\
@@ -1072,14 +1176,16 @@ struct core_arch_operations< 8u, Signed, Interprocess > :
1072
1176
 
1073
1177
  BOOST_ATOMIC_DETAIL_AARCH32_MO_SWITCH(order)
1074
1178
  #undef BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN
1179
+ BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
1075
1180
 
1076
1181
  return original;
1077
1182
  }
1078
1183
 
1079
- static BOOST_FORCEINLINE storage_type fetch_xor(storage_type volatile& storage, storage_type v, memory_order order) BOOST_NOEXCEPT
1184
+ static BOOST_FORCEINLINE storage_type fetch_xor(storage_type volatile& storage, storage_type v, memory_order order) noexcept
1080
1185
  {
1186
+ BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
1081
1187
  storage_type original, result;
1082
- uint32_t tmp;
1188
+ std::uint32_t tmp;
1083
1189
  #define BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN(ld_mo, st_mo)\
1084
1190
  __asm__ __volatile__\
1085
1191
  (\
@@ -1097,16 +1203,17 @@ struct core_arch_operations< 8u, Signed, Interprocess > :
1097
1203
 
1098
1204
  BOOST_ATOMIC_DETAIL_AARCH32_MO_SWITCH(order)
1099
1205
  #undef BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN
1206
+ BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
1100
1207
 
1101
1208
  return original;
1102
1209
  }
1103
1210
 
1104
- static BOOST_FORCEINLINE bool test_and_set(storage_type volatile& storage, memory_order order) BOOST_NOEXCEPT
1211
+ static BOOST_FORCEINLINE bool test_and_set(storage_type volatile& storage, memory_order order) noexcept
1105
1212
  {
1106
1213
  return !!exchange(storage, (storage_type)1, order);
1107
1214
  }
1108
1215
 
1109
- static BOOST_FORCEINLINE void clear(storage_type volatile& storage, memory_order order) BOOST_NOEXCEPT
1216
+ static BOOST_FORCEINLINE void clear(storage_type volatile& storage, memory_order order) noexcept
1110
1217
  {
1111
1218
  store(storage, (storage_type)0, order);
1112
1219
  }