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.
- checksums.yaml +4 -4
- data/CHANGELOG +32 -2
- data/Rakefile +6 -13
- data/bin/passenger-install-apache2-module +15 -19
- data/bin/passenger-install-nginx-module +42 -44
- data/bin/passenger-status +9 -10
- data/build/common_library.rb +4 -4
- data/build/support/vendor/cxxcodebuilder/lib/cxxcodebuilder/builder.rb +1 -1
- data/build/test_basics.rb +4 -3
- data/dev/copy_boost_headers +54 -40
- data/dev/ruby_server.rb +1 -1
- data/src/agent/Core/Config.h +1 -1
- data/src/agent/Core/Controller/Config.h +1 -1
- data/src/agent/Watchdog/Config.h +1 -1
- data/src/cxx_supportlib/Constants.h +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/assert/source_location.hpp +8 -1
- data/src/cxx_supportlib/vendor-modified/boost/assert.hpp +6 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/atomic.hpp +94 -110
- data/src/cxx_supportlib/vendor-modified/boost/atomic/atomic_flag.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/atomic/atomic_ref.hpp +14 -14
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/addressof.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/atomic_flag_impl.hpp +52 -24
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/atomic_impl.hpp +641 -285
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/atomic_ref_impl.hpp +593 -260
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/bitwise_cast.hpp +37 -24
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/bitwise_fp_cast.hpp +9 -9
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/cas_based_exchange.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/chrono.hpp +93 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/classify.hpp +16 -17
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/config.hpp +25 -34
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_gcc_aarch32.hpp +204 -97
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_gcc_aarch64.hpp +251 -122
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_gcc_alpha.hpp +56 -56
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_gcc_arm.hpp +129 -129
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_gcc_ppc.hpp +253 -125
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_gcc_sparc.hpp +25 -25
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_gcc_x86.hpp +193 -126
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_msvc_arm.hpp +57 -57
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_msvc_x86.hpp +96 -97
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_operations_emulated.hpp +24 -24
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_ops_cas_based.hpp +10 -10
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_ops_gcc_atomic.hpp +27 -24
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_ops_gcc_sync.hpp +39 -37
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_ops_linux_arm.hpp +17 -17
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extending_cas_based_arithmetic.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_fp_ops_emulated.hpp +12 -12
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_fp_ops_generic.hpp +21 -21
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_emulated.hpp +30 -30
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_gcc_aarch32.hpp +170 -98
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_gcc_aarch64.hpp +209 -119
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_gcc_arm.hpp +95 -95
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_gcc_ppc.hpp +148 -76
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_gcc_x86.hpp +293 -123
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_generic.hpp +87 -71
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_msvc_arm.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_msvc_x86.hpp +88 -88
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_operations.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_gcc_aarch32.hpp +4 -5
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_gcc_aarch64.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_gcc_alpha.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_gcc_arm.hpp +9 -9
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_gcc_ppc.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_gcc_sparc.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_gcc_x86.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_msvc_arm.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_msvc_x86.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_operations.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_operations_emulated.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_ops_gcc_atomic.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_ops_gcc_sync.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_ops_linux_arm.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fp_ops_emulated.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fp_ops_generic.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/futex.hpp +110 -49
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/gcc_atomic_memory_order_utils.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/has_posix_clock_traits.hpp +51 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/int_sizes.hpp +26 -32
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/integral_conversions.hpp +15 -15
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/interlocked.hpp +69 -30
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/intptr.hpp +8 -8
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/lock_pool.hpp +51 -31
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/memory_order_utils.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/once_flag.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_arm_common.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_ppc_common.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/platform.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/storage_traits.hpp +31 -31
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/alignment_of.hpp +2 -3
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/has_unique_object_representations.hpp +2 -5
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_floating_point.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_iec559.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_integral.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_signed.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_trivially_copyable.hpp +20 -13
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_trivially_default_constructible.hpp +13 -13
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/make_signed.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/make_unsigned.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_ops_darwin_ulock.hpp +90 -16
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_ops_dragonfly_umtx.hpp +80 -11
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_ops_emulated.hpp +160 -15
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_ops_freebsd_umtx.hpp +327 -38
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_ops_futex.hpp +276 -33
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_ops_generic.hpp +260 -20
- data/src/cxx_supportlib/vendor-modified/boost/atomic/fences.hpp +4 -3
- data/src/cxx_supportlib/vendor-modified/boost/atomic/ipc_atomic.hpp +14 -18
- data/src/cxx_supportlib/vendor-modified/boost/atomic/ipc_atomic_flag.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/atomic/ipc_atomic_ref.hpp +13 -13
- data/src/cxx_supportlib/vendor-modified/boost/atomic/posix_clock_traits_fwd.hpp +59 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/thread_pause.hpp +102 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/wait_result.hpp +56 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic.hpp +4 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libcpp.hpp +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/allocator.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/allocator_traits.hpp +108 -41
- data/src/cxx_supportlib/vendor-modified/boost/container/deque.hpp +1235 -1009
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/advanced_insert_int.hpp +3 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/algorithm.hpp +56 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/alloc_helpers.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/alloc_lib.h +9 -9
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/compare_functors.hpp +23 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/config_begin.hpp +0 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/copy_move_algo.hpp +88 -23
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/flat_tree.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_pool_impl.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/operator_new_helpers.hpp +68 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/pair.hpp +72 -13
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/std_fwd.hpp +13 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/tree.hpp +8 -5
- data/src/cxx_supportlib/vendor-modified/boost/container/devector.hpp +31 -10
- data/src/cxx_supportlib/vendor-modified/boost/container/flat_map.hpp +37 -10
- data/src/cxx_supportlib/vendor-modified/boost/container/flat_set.hpp +19 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/list.hpp +23 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/map.hpp +72 -5
- data/src/cxx_supportlib/vendor-modified/boost/container/new_allocator.hpp +3 -10
- data/src/cxx_supportlib/vendor-modified/boost/container/options.hpp +54 -23
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/devector.hpp +6 -4
- data/src/cxx_supportlib/vendor-modified/boost/container/set.hpp +19 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/slist.hpp +32 -5
- data/src/cxx_supportlib/vendor-modified/boost/container/small_vector.hpp +27 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/stable_vector.hpp +22 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/static_vector.hpp +37 -17
- data/src/cxx_supportlib/vendor-modified/boost/container/string.hpp +23 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/vector.hpp +41 -20
- data/src/cxx_supportlib/vendor-modified/boost/container_hash/hash.hpp +5 -8
- data/src/cxx_supportlib/vendor-modified/boost/container_hash/hash_fwd.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/container_hash/hash_is_avalanching.hpp +57 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/bit.hpp +29 -29
- data/src/cxx_supportlib/vendor-modified/boost/core/cmath.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/core/data.hpp +15 -1
- data/src/cxx_supportlib/vendor-modified/boost/core/default_allocator.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/demangle.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/core/detail/assert.hpp +18 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/detail/sp_thread_sleep.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/core/detail/static_assert.hpp +42 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/detail/string_view.hpp +16 -10
- data/src/cxx_supportlib/vendor-modified/boost/core/lightweight_test.hpp +35 -27
- data/src/cxx_supportlib/vendor-modified/boost/core/scoped_enum.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/core/size.hpp +14 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/span.hpp +20 -9
- data/src/cxx_supportlib/vendor-modified/boost/cregex.hpp +0 -5
- data/src/cxx_supportlib/vendor-modified/boost/describe/detail/config.hpp +8 -0
- data/src/cxx_supportlib/vendor-modified/boost/describe/modifiers.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/foreach.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/ebo_functor_holder.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/list.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/pointer_rebind.hpp +9 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/rbtree_algorithms.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/slist.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/iterator/advance.hpp +43 -64
- data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/config_def.hpp +0 -83
- data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/config_undef.hpp +1 -5
- data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/eval_if_default.hpp +44 -0
- data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/facade_iterator_category.hpp +103 -117
- data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/type_traits/conjunction.hpp +53 -0
- data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/type_traits/disjunction.hpp +53 -0
- data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/type_traits/negation.hpp +53 -0
- data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/type_traits/type_identity.hpp +54 -0
- data/src/cxx_supportlib/vendor-modified/boost/iterator/distance.hpp +32 -38
- data/src/cxx_supportlib/vendor-modified/boost/iterator/enable_if_convertible.hpp +84 -0
- data/src/cxx_supportlib/vendor-modified/boost/iterator/interoperable.hpp +22 -34
- data/src/cxx_supportlib/vendor-modified/boost/iterator/is_iterator.hpp +16 -16
- data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_adaptor.hpp +162 -309
- data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_categories.hpp +52 -161
- data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_concepts.hpp +3 -11
- data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_facade.hpp +804 -977
- data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_traits.hpp +24 -17
- data/src/cxx_supportlib/vendor-modified/boost/iterator/min_category.hpp +83 -0
- data/src/cxx_supportlib/vendor-modified/boost/iterator/minimum_category.hpp +11 -73
- data/src/cxx_supportlib/vendor-modified/boost/iterator/reverse_iterator.hpp +56 -57
- data/src/cxx_supportlib/vendor-modified/boost/iterator/transform_iterator.hpp +123 -156
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/bad_lexical_cast.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/buffer_view.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical.hpp +36 -33
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical_streams.hpp +43 -50
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_numeric.hpp +23 -27
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/inf_nan.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/is_character.hpp +10 -11
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_basic_unlockedbuf.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_char_constants.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_unsigned_converters.hpp +6 -7
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/type_traits.hpp +81 -0
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/widest_char.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/try_lexical_convert.hpp +8 -9
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/wide_posix_api.cpp +1 -12
- data/src/cxx_supportlib/vendor-modified/boost/memory_order.hpp +8 -26
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/iterator_to_raw_pointer.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/launder.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/std_ns_begin.hpp +6 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/unique_ptr_meta_utils.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/mp11/algorithm.hpp +11 -44
- data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_map_find.hpp +34 -0
- data/src/cxx_supportlib/vendor-modified/boost/mp11/set.hpp +33 -1
- data/src/cxx_supportlib/vendor-modified/boost/mp11/version.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/mpl/and.hpp +4 -8
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/na_assert.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/ptr_to_ref.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/mpl/bitand.hpp +2 -6
- data/src/cxx_supportlib/vendor-modified/boost/mpl/bitor.hpp +2 -6
- data/src/cxx_supportlib/vendor-modified/boost/mpl/or.hpp +2 -6
- data/src/cxx_supportlib/vendor-modified/boost/pool/pool.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/pool/simple_segregated_storage.hpp +0 -13
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/limits/to_seq_256.hpp +190 -190
- data/src/cxx_supportlib/vendor-modified/boost/random/beta_distribution.hpp +12 -2
- data/src/cxx_supportlib/vendor-modified/boost/random/detail/config.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/detail/size.hpp +41 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/detail/xoshiro_base.hpp +472 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/discrete_distribution.hpp +7 -10
- data/src/cxx_supportlib/vendor-modified/boost/random/gamma_distribution.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/random/generalized_inverse_gaussian_distribution.hpp +339 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/hyperexponential_distribution.hpp +12 -14
- data/src/cxx_supportlib/vendor-modified/boost/random/inverse_gaussian_distribution.hpp +226 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/mersenne_twister.hpp +1 -4
- data/src/cxx_supportlib/vendor-modified/boost/random/mixmax.hpp +63 -63
- data/src/cxx_supportlib/vendor-modified/boost/random/piecewise_constant_distribution.hpp +7 -10
- data/src/cxx_supportlib/vendor-modified/boost/random/piecewise_linear_distribution.hpp +8 -11
- data/src/cxx_supportlib/vendor-modified/boost/random/seed_seq.hpp +1 -3
- data/src/cxx_supportlib/vendor-modified/boost/random/splitmix64.hpp +1 -4
- data/src/cxx_supportlib/vendor-modified/boost/random/xoshiro.hpp +488 -0
- data/src/cxx_supportlib/vendor-modified/boost/random.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/range/concepts.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/range/detail/has_member_size.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/range/detail/msvc_has_iterator_workaround.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/range/has_range_iterator.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/range/iterator.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/range/iterator_range_core.hpp +4 -1
- data/src/cxx_supportlib/vendor-modified/boost/range/size_type.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/regex/concepts.hpp +35 -18
- data/src/cxx_supportlib/vendor-modified/boost/regex/config.hpp +18 -101
- data/src/cxx_supportlib/vendor-modified/boost/regex/pattern_except.hpp +0 -4
- data/src/cxx_supportlib/vendor-modified/boost/regex/pending/object_cache.hpp +0 -4
- data/src/cxx_supportlib/vendor-modified/boost/regex/pending/unicode_iterator.hpp +0 -6
- data/src/cxx_supportlib/vendor-modified/boost/regex/regex_traits.hpp +0 -4
- data/src/cxx_supportlib/vendor-modified/boost/regex/user.hpp +4 -10
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/basic_regex.hpp +63 -17
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/basic_regex_creator.hpp +71 -16
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/basic_regex_parser.hpp +22 -1
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/c_regex_traits.hpp +11 -4
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/char_regex_traits.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/cpp_regex_traits.hpp +11 -8
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/cregex.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/error_type.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/icu.hpp +40 -38
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/iterator_category.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/iterator_traits.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/match_flags.hpp +39 -37
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/match_results.hpp +46 -9
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/mem_block_cache.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/object_cache.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/pattern_except.hpp +6 -4
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/perl_matcher.hpp +57 -8
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/perl_matcher_common.hpp +21 -6
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/perl_matcher_non_recursive.hpp +18 -3
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regbase.hpp +4 -2
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_format.hpp +23 -18
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_fwd.hpp +9 -9
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_grep.hpp +9 -5
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_iterator.hpp +11 -7
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_match.hpp +10 -7
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_merge.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_raw_buffer.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_replace.hpp +6 -2
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_search.hpp +12 -9
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_split.hpp +6 -3
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_token_iterator.hpp +16 -11
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_traits.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_traits_defaults.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_workaround.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/states.hpp +7 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/sub_match.hpp +54 -49
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/syntax_type.hpp +64 -62
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/u32regex_iterator.hpp +16 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/u32regex_token_iterator.hpp +12 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/unicode_iterator.hpp +6 -4
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/w32_regex_traits.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/regex.hpp +0 -4
- data/src/cxx_supportlib/vendor-modified/boost/regex_fwd.hpp +0 -4
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count.hpp +1 -43
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/deprecated_macros.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/shared_count.hpp +2 -77
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base.hpp +1 -64
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_nt.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_impl.hpp +0 -77
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_cxx20_constexpr.hpp +37 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock.hpp +5 -28
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/intrusive_ptr.hpp +41 -40
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/scoped_array.hpp +0 -15
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/scoped_ptr.hpp +0 -18
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/shared_ptr.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/thread/future.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/tuple/detail/tuple_basic.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/integral_constant.hpp +8 -6
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_complete.hpp +31 -10
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/fca.hpp +34 -8
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/core.hpp +6 -4
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/table.hpp +9 -1
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/implementation.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/unordered/{unordered_printers.hpp → detail/unordered_printers.hpp} +34 -36
- data/src/cxx_supportlib/vendor-modified/boost/unordered/hash_traits.hpp +6 -49
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_map.hpp +6 -1
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_set.hpp +6 -1
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_map.hpp +6 -1
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_set.hpp +6 -1
- data/src/cxx_supportlib/vendor-modified/boost/version.hpp +2 -2
- data/src/nginx_module/ContentHandler.c +2 -0
- data/src/ruby_supportlib/phusion_passenger/config/download_agent_command.rb +3 -5
- data/src/ruby_supportlib/phusion_passenger/config/download_nginx_engine_command.rb +3 -5
- data/src/ruby_supportlib/phusion_passenger/config/install_agent_command.rb +3 -5
- data/src/ruby_supportlib/phusion_passenger/config/install_standalone_runtime_command.rb +3 -5
- data/src/ruby_supportlib/phusion_passenger/config/installation_utils.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/config/nginx_engine_compiler.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/loader_shared_helpers.rb +5 -3
- data/src/ruby_supportlib/phusion_passenger/platform_info/apache.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/platform_info/compiler.rb +6 -13
- data/src/ruby_supportlib/phusion_passenger/platform_info/cxx_portability.rb +29 -30
- data/src/ruby_supportlib/phusion_passenger/request_handler/thread_handler.rb +2 -3
- data/src/ruby_supportlib/phusion_passenger/standalone/config_utils.rb +2 -0
- data/src/ruby_supportlib/phusion_passenger/standalone/start_command/builtin_engine.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/utils/json.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/utils/terminal_choice_menu.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/gdb_controller.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger.rb +8 -8
- metadata +26 -99
- data/src/cxx_supportlib/vendor-modified/boost/align/aligned_alloc.hpp +0 -47
- data/src/cxx_supportlib/vendor-modified/boost/align/detail/aligned_alloc_posix.hpp +0 -41
- data/src/cxx_supportlib/vendor-modified/boost/align/detail/aligned_alloc_sunos.hpp +0 -34
- data/src/cxx_supportlib/vendor-modified/boost/align/detail/is_alignment.hpp +0 -28
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/pause.hpp +0 -68
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/conditional.hpp +0 -42
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/integral_constant.hpp +0 -46
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_enum.hpp +0 -42
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_function.hpp +0 -42
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_nothrow_default_constructible.hpp +0 -46
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/remove_cv.hpp +0 -42
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_on_address.hpp +0 -64
- data/src/cxx_supportlib/vendor-modified/boost/cerrno.hpp +0 -15
- data/src/cxx_supportlib/vendor-modified/boost/detail/indirect_traits.hpp +0 -195
- data/src/cxx_supportlib/vendor-modified/boost/detail/select_type.hpp +0 -36
- data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/enable_if.hpp +0 -83
- data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/internals.hpp +0 -35
- data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/regex.cpp +0 -120
- data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/regex_debug.cpp +0 -59
- data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/static_mutex.cpp +0 -189
- data/src/cxx_supportlib/vendor-modified/boost/libs/system/src/error_code.cpp +0 -31
- data/src/cxx_supportlib/vendor-modified/boost/regex/config/borland.hpp +0 -72
- data/src/cxx_supportlib/vendor-modified/boost/regex/config/cwchar.hpp +0 -207
- data/src/cxx_supportlib/vendor-modified/boost/regex/pending/static_mutex.hpp +0 -182
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex.hpp +0 -797
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex_creator.hpp +0 -1598
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex_parser.hpp +0 -3174
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/c_regex_traits.hpp +0 -511
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/char_regex_traits.hpp +0 -81
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/cpp_regex_traits.hpp +0 -1237
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/cregex.hpp +0 -213
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/error_type.hpp +0 -59
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/icu.hpp +0 -1516
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/indexed_bit_flag.hpp +0 -54
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/iterator_category.hpp +0 -91
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/iterator_traits.hpp +0 -135
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/match_flags.hpp +0 -161
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/match_results.hpp +0 -716
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/mem_block_cache.hpp +0 -183
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/object_cache.hpp +0 -171
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/pattern_except.hpp +0 -128
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher.hpp +0 -645
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_common.hpp +0 -1030
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_non_recursive.hpp +0 -1947
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_recursive.hpp +0 -1131
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/primary_transform.hpp +0 -146
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/protected_call.hpp +0 -83
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regbase.hpp +0 -180
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex.hpp +0 -166
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_format.hpp +0 -1158
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_fwd.hpp +0 -73
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_grep.hpp +0 -155
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_iterator.hpp +0 -195
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_match.hpp +0 -382
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_merge.hpp +0 -93
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_raw_buffer.hpp +0 -241
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_replace.hpp +0 -99
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_search.hpp +0 -217
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_split.hpp +0 -174
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_token_iterator.hpp +0 -327
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_traits.hpp +0 -189
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_traits_defaults.hpp +0 -997
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_workaround.hpp +0 -237
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/states.hpp +0 -321
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/sub_match.hpp +0 -516
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/syntax_type.hpp +0 -105
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/u32regex_iterator.hpp +0 -185
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/u32regex_token_iterator.hpp +0 -360
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/unicode_iterator.hpp +0 -871
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/w32_regex_traits.hpp +0 -1229
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count_gcc.hpp +0 -79
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count_gcc_atomic.hpp +0 -63
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count_gcc_x86.hpp +0 -88
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count_pt.hpp +0 -104
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count_spin.hpp +0 -69
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count_sync.hpp +0 -72
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp +0 -163
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_aix.hpp +0 -152
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp +0 -185
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_atomic.hpp +0 -148
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp +0 -170
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp +0 -200
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp +0 -194
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp +0 -179
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp +0 -186
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_pt.hpp +0 -147
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_snc_ps3.hpp +0 -174
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_spin.hpp +0 -141
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_sync.hpp +0 -165
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_vacpp_ppc.hpp +0 -163
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_has_gcc_intrinsics.hpp +0 -30
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_has_sync_intrinsics.hpp +0 -69
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock_gcc_arm.hpp +0 -128
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock_nt.hpp +0 -96
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock_pt.hpp +0 -86
- 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/extra_ops_gcc_aarch32.hpp
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
#define BOOST_ATOMIC_DETAIL_EXTRA_OPS_GCC_AARCH32_HPP_INCLUDED_
|
|
16
16
|
|
|
17
17
|
#include <cstddef>
|
|
18
|
-
#include <
|
|
18
|
+
#include <cstdint>
|
|
19
19
|
#include <boost/memory_order.hpp>
|
|
20
20
|
#include <boost/atomic/detail/config.hpp>
|
|
21
21
|
#include <boost/atomic/detail/platform.hpp>
|
|
@@ -38,77 +38,77 @@ template< typename Base >
|
|
|
38
38
|
struct extra_operations_gcc_aarch32_common :
|
|
39
39
|
public Base
|
|
40
40
|
{
|
|
41
|
-
|
|
42
|
-
|
|
41
|
+
using base_type = Base;
|
|
42
|
+
using storage_type = typename base_type::storage_type;
|
|
43
43
|
|
|
44
44
|
// Note: For opaque operations prefer operations returning the resulting values instead of the original values
|
|
45
45
|
// as these operations require less registers.
|
|
46
|
-
static BOOST_FORCEINLINE void opaque_negate(storage_type volatile& storage, memory_order order)
|
|
46
|
+
static BOOST_FORCEINLINE void opaque_negate(storage_type volatile& storage, memory_order order) noexcept
|
|
47
47
|
{
|
|
48
48
|
base_type::negate(storage, order);
|
|
49
49
|
}
|
|
50
50
|
|
|
51
|
-
static BOOST_FORCEINLINE void opaque_complement(storage_type volatile& storage, memory_order order)
|
|
51
|
+
static BOOST_FORCEINLINE void opaque_complement(storage_type volatile& storage, memory_order order) noexcept
|
|
52
52
|
{
|
|
53
53
|
base_type::bitwise_complement(storage, order);
|
|
54
54
|
}
|
|
55
55
|
|
|
56
|
-
static BOOST_FORCEINLINE void opaque_add(storage_type volatile& storage, storage_type v, memory_order order)
|
|
56
|
+
static BOOST_FORCEINLINE void opaque_add(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
57
57
|
{
|
|
58
58
|
base_type::add(storage, v, order);
|
|
59
59
|
}
|
|
60
60
|
|
|
61
|
-
static BOOST_FORCEINLINE void opaque_sub(storage_type volatile& storage, storage_type v, memory_order order)
|
|
61
|
+
static BOOST_FORCEINLINE void opaque_sub(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
62
62
|
{
|
|
63
63
|
base_type::sub(storage, v, order);
|
|
64
64
|
}
|
|
65
65
|
|
|
66
|
-
static BOOST_FORCEINLINE void opaque_and(storage_type volatile& storage, storage_type v, memory_order order)
|
|
66
|
+
static BOOST_FORCEINLINE void opaque_and(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
67
67
|
{
|
|
68
68
|
base_type::bitwise_and(storage, v, order);
|
|
69
69
|
}
|
|
70
70
|
|
|
71
|
-
static BOOST_FORCEINLINE void opaque_or(storage_type volatile& storage, storage_type v, memory_order order)
|
|
71
|
+
static BOOST_FORCEINLINE void opaque_or(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
72
72
|
{
|
|
73
73
|
base_type::bitwise_or(storage, v, order);
|
|
74
74
|
}
|
|
75
75
|
|
|
76
|
-
static BOOST_FORCEINLINE void opaque_xor(storage_type volatile& storage, storage_type v, memory_order order)
|
|
76
|
+
static BOOST_FORCEINLINE void opaque_xor(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
77
77
|
{
|
|
78
78
|
base_type::bitwise_xor(storage, v, order);
|
|
79
79
|
}
|
|
80
80
|
|
|
81
|
-
static BOOST_FORCEINLINE bool negate_and_test(storage_type volatile& storage, memory_order order)
|
|
81
|
+
static BOOST_FORCEINLINE bool negate_and_test(storage_type volatile& storage, memory_order order) noexcept
|
|
82
82
|
{
|
|
83
83
|
return !!base_type::negate(storage, order);
|
|
84
84
|
}
|
|
85
85
|
|
|
86
|
-
static BOOST_FORCEINLINE bool add_and_test(storage_type volatile& storage, storage_type v, memory_order order)
|
|
86
|
+
static BOOST_FORCEINLINE bool add_and_test(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
87
87
|
{
|
|
88
88
|
return !!base_type::add(storage, v, order);
|
|
89
89
|
}
|
|
90
90
|
|
|
91
|
-
static BOOST_FORCEINLINE bool sub_and_test(storage_type volatile& storage, storage_type v, memory_order order)
|
|
91
|
+
static BOOST_FORCEINLINE bool sub_and_test(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
92
92
|
{
|
|
93
93
|
return !!base_type::sub(storage, v, order);
|
|
94
94
|
}
|
|
95
95
|
|
|
96
|
-
static BOOST_FORCEINLINE bool and_and_test(storage_type volatile& storage, storage_type v, memory_order order)
|
|
96
|
+
static BOOST_FORCEINLINE bool and_and_test(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
97
97
|
{
|
|
98
98
|
return !!base_type::bitwise_and(storage, v, order);
|
|
99
99
|
}
|
|
100
100
|
|
|
101
|
-
static BOOST_FORCEINLINE bool or_and_test(storage_type volatile& storage, storage_type v, memory_order order)
|
|
101
|
+
static BOOST_FORCEINLINE bool or_and_test(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
102
102
|
{
|
|
103
103
|
return !!base_type::bitwise_or(storage, v, order);
|
|
104
104
|
}
|
|
105
105
|
|
|
106
|
-
static BOOST_FORCEINLINE bool xor_and_test(storage_type volatile& storage, storage_type v, memory_order order)
|
|
106
|
+
static BOOST_FORCEINLINE bool xor_and_test(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
107
107
|
{
|
|
108
108
|
return !!base_type::bitwise_xor(storage, v, order);
|
|
109
109
|
}
|
|
110
110
|
|
|
111
|
-
static BOOST_FORCEINLINE bool complement_and_test(storage_type volatile& storage, memory_order order)
|
|
111
|
+
static BOOST_FORCEINLINE bool complement_and_test(storage_type volatile& storage, memory_order order) noexcept
|
|
112
112
|
{
|
|
113
113
|
return !!base_type::bitwise_complement(storage, order);
|
|
114
114
|
}
|
|
@@ -121,13 +121,14 @@ template< typename Base, bool Signed >
|
|
|
121
121
|
struct extra_operations_gcc_aarch32< Base, 1u, Signed > :
|
|
122
122
|
public extra_operations_generic< Base, 1u, Signed >
|
|
123
123
|
{
|
|
124
|
-
|
|
125
|
-
|
|
124
|
+
using base_type = extra_operations_generic< Base, 1u, Signed >;
|
|
125
|
+
using storage_type = typename base_type::storage_type;
|
|
126
126
|
|
|
127
|
-
static BOOST_FORCEINLINE storage_type fetch_negate(storage_type volatile& storage, memory_order order)
|
|
127
|
+
static BOOST_FORCEINLINE storage_type fetch_negate(storage_type volatile& storage, memory_order order) noexcept
|
|
128
128
|
{
|
|
129
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
129
130
|
storage_type original, result;
|
|
130
|
-
uint32_t tmp;
|
|
131
|
+
std::uint32_t tmp;
|
|
131
132
|
#define BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN(ld_mo, st_mo)\
|
|
132
133
|
__asm__ __volatile__\
|
|
133
134
|
(\
|
|
@@ -144,14 +145,16 @@ struct extra_operations_gcc_aarch32< Base, 1u, Signed > :
|
|
|
144
145
|
|
|
145
146
|
BOOST_ATOMIC_DETAIL_AARCH32_MO_SWITCH(order)
|
|
146
147
|
#undef BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN
|
|
148
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
147
149
|
|
|
148
150
|
return original;
|
|
149
151
|
}
|
|
150
152
|
|
|
151
|
-
static BOOST_FORCEINLINE storage_type negate(storage_type volatile& storage, memory_order order)
|
|
153
|
+
static BOOST_FORCEINLINE storage_type negate(storage_type volatile& storage, memory_order order) noexcept
|
|
152
154
|
{
|
|
155
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
153
156
|
storage_type result;
|
|
154
|
-
uint32_t tmp;
|
|
157
|
+
std::uint32_t tmp;
|
|
155
158
|
#define BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN(ld_mo, st_mo)\
|
|
156
159
|
__asm__ __volatile__\
|
|
157
160
|
(\
|
|
@@ -168,14 +171,16 @@ struct extra_operations_gcc_aarch32< Base, 1u, Signed > :
|
|
|
168
171
|
|
|
169
172
|
BOOST_ATOMIC_DETAIL_AARCH32_MO_SWITCH(order)
|
|
170
173
|
#undef BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN
|
|
174
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
171
175
|
|
|
172
176
|
return result;
|
|
173
177
|
}
|
|
174
178
|
|
|
175
|
-
static BOOST_FORCEINLINE storage_type add(storage_type volatile& storage, storage_type v, memory_order order)
|
|
179
|
+
static BOOST_FORCEINLINE storage_type add(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
176
180
|
{
|
|
181
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
177
182
|
storage_type result;
|
|
178
|
-
uint32_t tmp;
|
|
183
|
+
std::uint32_t tmp;
|
|
179
184
|
#define BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN(ld_mo, st_mo)\
|
|
180
185
|
__asm__ __volatile__\
|
|
181
186
|
(\
|
|
@@ -192,14 +197,16 @@ struct extra_operations_gcc_aarch32< Base, 1u, Signed > :
|
|
|
192
197
|
|
|
193
198
|
BOOST_ATOMIC_DETAIL_AARCH32_MO_SWITCH(order)
|
|
194
199
|
#undef BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN
|
|
200
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
195
201
|
|
|
196
202
|
return result;
|
|
197
203
|
}
|
|
198
204
|
|
|
199
|
-
static BOOST_FORCEINLINE storage_type sub(storage_type volatile& storage, storage_type v, memory_order order)
|
|
205
|
+
static BOOST_FORCEINLINE storage_type sub(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
200
206
|
{
|
|
207
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
201
208
|
storage_type result;
|
|
202
|
-
uint32_t tmp;
|
|
209
|
+
std::uint32_t tmp;
|
|
203
210
|
#define BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN(ld_mo, st_mo)\
|
|
204
211
|
__asm__ __volatile__\
|
|
205
212
|
(\
|
|
@@ -216,14 +223,16 @@ struct extra_operations_gcc_aarch32< Base, 1u, Signed > :
|
|
|
216
223
|
|
|
217
224
|
BOOST_ATOMIC_DETAIL_AARCH32_MO_SWITCH(order)
|
|
218
225
|
#undef BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN
|
|
226
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
219
227
|
|
|
220
228
|
return result;
|
|
221
229
|
}
|
|
222
230
|
|
|
223
|
-
static BOOST_FORCEINLINE storage_type bitwise_and(storage_type volatile& storage, storage_type v, memory_order order)
|
|
231
|
+
static BOOST_FORCEINLINE storage_type bitwise_and(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
224
232
|
{
|
|
233
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
225
234
|
storage_type result;
|
|
226
|
-
uint32_t tmp;
|
|
235
|
+
std::uint32_t tmp;
|
|
227
236
|
#define BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN(ld_mo, st_mo)\
|
|
228
237
|
__asm__ __volatile__\
|
|
229
238
|
(\
|
|
@@ -240,14 +249,16 @@ struct extra_operations_gcc_aarch32< Base, 1u, Signed > :
|
|
|
240
249
|
|
|
241
250
|
BOOST_ATOMIC_DETAIL_AARCH32_MO_SWITCH(order)
|
|
242
251
|
#undef BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN
|
|
252
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
243
253
|
|
|
244
254
|
return result;
|
|
245
255
|
}
|
|
246
256
|
|
|
247
|
-
static BOOST_FORCEINLINE storage_type bitwise_or(storage_type volatile& storage, storage_type v, memory_order order)
|
|
257
|
+
static BOOST_FORCEINLINE storage_type bitwise_or(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
248
258
|
{
|
|
259
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
249
260
|
storage_type result;
|
|
250
|
-
uint32_t tmp;
|
|
261
|
+
std::uint32_t tmp;
|
|
251
262
|
#define BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN(ld_mo, st_mo)\
|
|
252
263
|
__asm__ __volatile__\
|
|
253
264
|
(\
|
|
@@ -264,14 +275,16 @@ struct extra_operations_gcc_aarch32< Base, 1u, Signed > :
|
|
|
264
275
|
|
|
265
276
|
BOOST_ATOMIC_DETAIL_AARCH32_MO_SWITCH(order)
|
|
266
277
|
#undef BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN
|
|
278
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
267
279
|
|
|
268
280
|
return result;
|
|
269
281
|
}
|
|
270
282
|
|
|
271
|
-
static BOOST_FORCEINLINE storage_type bitwise_xor(storage_type volatile& storage, storage_type v, memory_order order)
|
|
283
|
+
static BOOST_FORCEINLINE storage_type bitwise_xor(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
272
284
|
{
|
|
285
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
273
286
|
storage_type result;
|
|
274
|
-
uint32_t tmp;
|
|
287
|
+
std::uint32_t tmp;
|
|
275
288
|
#define BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN(ld_mo, st_mo)\
|
|
276
289
|
__asm__ __volatile__\
|
|
277
290
|
(\
|
|
@@ -288,14 +301,16 @@ struct extra_operations_gcc_aarch32< Base, 1u, Signed > :
|
|
|
288
301
|
|
|
289
302
|
BOOST_ATOMIC_DETAIL_AARCH32_MO_SWITCH(order)
|
|
290
303
|
#undef BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN
|
|
304
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
291
305
|
|
|
292
306
|
return result;
|
|
293
307
|
}
|
|
294
308
|
|
|
295
|
-
static BOOST_FORCEINLINE storage_type fetch_complement(storage_type volatile& storage, memory_order order)
|
|
309
|
+
static BOOST_FORCEINLINE storage_type fetch_complement(storage_type volatile& storage, memory_order order) noexcept
|
|
296
310
|
{
|
|
311
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
297
312
|
storage_type original, result;
|
|
298
|
-
uint32_t tmp;
|
|
313
|
+
std::uint32_t tmp;
|
|
299
314
|
#define BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN(ld_mo, st_mo)\
|
|
300
315
|
__asm__ __volatile__\
|
|
301
316
|
(\
|
|
@@ -312,14 +327,16 @@ struct extra_operations_gcc_aarch32< Base, 1u, Signed > :
|
|
|
312
327
|
|
|
313
328
|
BOOST_ATOMIC_DETAIL_AARCH32_MO_SWITCH(order)
|
|
314
329
|
#undef BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN
|
|
330
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
315
331
|
|
|
316
332
|
return original;
|
|
317
333
|
}
|
|
318
334
|
|
|
319
|
-
static BOOST_FORCEINLINE storage_type bitwise_complement(storage_type volatile& storage, memory_order order)
|
|
335
|
+
static BOOST_FORCEINLINE storage_type bitwise_complement(storage_type volatile& storage, memory_order order) noexcept
|
|
320
336
|
{
|
|
337
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
321
338
|
storage_type result;
|
|
322
|
-
uint32_t tmp;
|
|
339
|
+
std::uint32_t tmp;
|
|
323
340
|
#define BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN(ld_mo, st_mo)\
|
|
324
341
|
__asm__ __volatile__\
|
|
325
342
|
(\
|
|
@@ -336,6 +353,7 @@ struct extra_operations_gcc_aarch32< Base, 1u, Signed > :
|
|
|
336
353
|
|
|
337
354
|
BOOST_ATOMIC_DETAIL_AARCH32_MO_SWITCH(order)
|
|
338
355
|
#undef BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN
|
|
356
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
339
357
|
|
|
340
358
|
return result;
|
|
341
359
|
}
|
|
@@ -352,13 +370,14 @@ template< typename Base, bool Signed >
|
|
|
352
370
|
struct extra_operations_gcc_aarch32< Base, 2u, Signed > :
|
|
353
371
|
public extra_operations_generic< Base, 2u, Signed >
|
|
354
372
|
{
|
|
355
|
-
|
|
356
|
-
|
|
373
|
+
using base_type = extra_operations_generic< Base, 2u, Signed >;
|
|
374
|
+
using storage_type = typename base_type::storage_type;
|
|
357
375
|
|
|
358
|
-
static BOOST_FORCEINLINE storage_type fetch_negate(storage_type volatile& storage, memory_order order)
|
|
376
|
+
static BOOST_FORCEINLINE storage_type fetch_negate(storage_type volatile& storage, memory_order order) noexcept
|
|
359
377
|
{
|
|
378
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
360
379
|
storage_type original, result;
|
|
361
|
-
uint32_t tmp;
|
|
380
|
+
std::uint32_t tmp;
|
|
362
381
|
#define BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN(ld_mo, st_mo)\
|
|
363
382
|
__asm__ __volatile__\
|
|
364
383
|
(\
|
|
@@ -375,14 +394,16 @@ struct extra_operations_gcc_aarch32< Base, 2u, Signed > :
|
|
|
375
394
|
|
|
376
395
|
BOOST_ATOMIC_DETAIL_AARCH32_MO_SWITCH(order)
|
|
377
396
|
#undef BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN
|
|
397
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
378
398
|
|
|
379
399
|
return original;
|
|
380
400
|
}
|
|
381
401
|
|
|
382
|
-
static BOOST_FORCEINLINE storage_type negate(storage_type volatile& storage, memory_order order)
|
|
402
|
+
static BOOST_FORCEINLINE storage_type negate(storage_type volatile& storage, memory_order order) noexcept
|
|
383
403
|
{
|
|
404
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
384
405
|
storage_type result;
|
|
385
|
-
uint32_t tmp;
|
|
406
|
+
std::uint32_t tmp;
|
|
386
407
|
#define BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN(ld_mo, st_mo)\
|
|
387
408
|
__asm__ __volatile__\
|
|
388
409
|
(\
|
|
@@ -399,14 +420,16 @@ struct extra_operations_gcc_aarch32< Base, 2u, Signed > :
|
|
|
399
420
|
|
|
400
421
|
BOOST_ATOMIC_DETAIL_AARCH32_MO_SWITCH(order)
|
|
401
422
|
#undef BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN
|
|
423
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
402
424
|
|
|
403
425
|
return result;
|
|
404
426
|
}
|
|
405
427
|
|
|
406
|
-
static BOOST_FORCEINLINE storage_type add(storage_type volatile& storage, storage_type v, memory_order order)
|
|
428
|
+
static BOOST_FORCEINLINE storage_type add(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
407
429
|
{
|
|
430
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
408
431
|
storage_type result;
|
|
409
|
-
uint32_t tmp;
|
|
432
|
+
std::uint32_t tmp;
|
|
410
433
|
#define BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN(ld_mo, st_mo)\
|
|
411
434
|
__asm__ __volatile__\
|
|
412
435
|
(\
|
|
@@ -423,14 +446,16 @@ struct extra_operations_gcc_aarch32< Base, 2u, Signed > :
|
|
|
423
446
|
|
|
424
447
|
BOOST_ATOMIC_DETAIL_AARCH32_MO_SWITCH(order)
|
|
425
448
|
#undef BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN
|
|
449
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
426
450
|
|
|
427
451
|
return result;
|
|
428
452
|
}
|
|
429
453
|
|
|
430
|
-
static BOOST_FORCEINLINE storage_type sub(storage_type volatile& storage, storage_type v, memory_order order)
|
|
454
|
+
static BOOST_FORCEINLINE storage_type sub(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
431
455
|
{
|
|
456
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
432
457
|
storage_type result;
|
|
433
|
-
uint32_t tmp;
|
|
458
|
+
std::uint32_t tmp;
|
|
434
459
|
#define BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN(ld_mo, st_mo)\
|
|
435
460
|
__asm__ __volatile__\
|
|
436
461
|
(\
|
|
@@ -447,14 +472,16 @@ struct extra_operations_gcc_aarch32< Base, 2u, Signed > :
|
|
|
447
472
|
|
|
448
473
|
BOOST_ATOMIC_DETAIL_AARCH32_MO_SWITCH(order)
|
|
449
474
|
#undef BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN
|
|
475
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
450
476
|
|
|
451
477
|
return result;
|
|
452
478
|
}
|
|
453
479
|
|
|
454
|
-
static BOOST_FORCEINLINE storage_type bitwise_and(storage_type volatile& storage, storage_type v, memory_order order)
|
|
480
|
+
static BOOST_FORCEINLINE storage_type bitwise_and(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
455
481
|
{
|
|
482
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
456
483
|
storage_type result;
|
|
457
|
-
uint32_t tmp;
|
|
484
|
+
std::uint32_t tmp;
|
|
458
485
|
#define BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN(ld_mo, st_mo)\
|
|
459
486
|
__asm__ __volatile__\
|
|
460
487
|
(\
|
|
@@ -471,14 +498,16 @@ struct extra_operations_gcc_aarch32< Base, 2u, Signed > :
|
|
|
471
498
|
|
|
472
499
|
BOOST_ATOMIC_DETAIL_AARCH32_MO_SWITCH(order)
|
|
473
500
|
#undef BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN
|
|
501
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
474
502
|
|
|
475
503
|
return result;
|
|
476
504
|
}
|
|
477
505
|
|
|
478
|
-
static BOOST_FORCEINLINE storage_type bitwise_or(storage_type volatile& storage, storage_type v, memory_order order)
|
|
506
|
+
static BOOST_FORCEINLINE storage_type bitwise_or(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
479
507
|
{
|
|
508
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
480
509
|
storage_type result;
|
|
481
|
-
uint32_t tmp;
|
|
510
|
+
std::uint32_t tmp;
|
|
482
511
|
#define BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN(ld_mo, st_mo)\
|
|
483
512
|
__asm__ __volatile__\
|
|
484
513
|
(\
|
|
@@ -495,14 +524,16 @@ struct extra_operations_gcc_aarch32< Base, 2u, Signed > :
|
|
|
495
524
|
|
|
496
525
|
BOOST_ATOMIC_DETAIL_AARCH32_MO_SWITCH(order)
|
|
497
526
|
#undef BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN
|
|
527
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
498
528
|
|
|
499
529
|
return result;
|
|
500
530
|
}
|
|
501
531
|
|
|
502
|
-
static BOOST_FORCEINLINE storage_type bitwise_xor(storage_type volatile& storage, storage_type v, memory_order order)
|
|
532
|
+
static BOOST_FORCEINLINE storage_type bitwise_xor(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
503
533
|
{
|
|
534
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
504
535
|
storage_type result;
|
|
505
|
-
uint32_t tmp;
|
|
536
|
+
std::uint32_t tmp;
|
|
506
537
|
#define BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN(ld_mo, st_mo)\
|
|
507
538
|
__asm__ __volatile__\
|
|
508
539
|
(\
|
|
@@ -519,14 +550,16 @@ struct extra_operations_gcc_aarch32< Base, 2u, Signed > :
|
|
|
519
550
|
|
|
520
551
|
BOOST_ATOMIC_DETAIL_AARCH32_MO_SWITCH(order)
|
|
521
552
|
#undef BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN
|
|
553
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
522
554
|
|
|
523
555
|
return result;
|
|
524
556
|
}
|
|
525
557
|
|
|
526
|
-
static BOOST_FORCEINLINE storage_type fetch_complement(storage_type volatile& storage, memory_order order)
|
|
558
|
+
static BOOST_FORCEINLINE storage_type fetch_complement(storage_type volatile& storage, memory_order order) noexcept
|
|
527
559
|
{
|
|
560
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
528
561
|
storage_type original, result;
|
|
529
|
-
uint32_t tmp;
|
|
562
|
+
std::uint32_t tmp;
|
|
530
563
|
#define BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN(ld_mo, st_mo)\
|
|
531
564
|
__asm__ __volatile__\
|
|
532
565
|
(\
|
|
@@ -543,14 +576,16 @@ struct extra_operations_gcc_aarch32< Base, 2u, Signed > :
|
|
|
543
576
|
|
|
544
577
|
BOOST_ATOMIC_DETAIL_AARCH32_MO_SWITCH(order)
|
|
545
578
|
#undef BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN
|
|
579
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
546
580
|
|
|
547
581
|
return original;
|
|
548
582
|
}
|
|
549
583
|
|
|
550
|
-
static BOOST_FORCEINLINE storage_type bitwise_complement(storage_type volatile& storage, memory_order order)
|
|
584
|
+
static BOOST_FORCEINLINE storage_type bitwise_complement(storage_type volatile& storage, memory_order order) noexcept
|
|
551
585
|
{
|
|
586
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
552
587
|
storage_type result;
|
|
553
|
-
uint32_t tmp;
|
|
588
|
+
std::uint32_t tmp;
|
|
554
589
|
#define BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN(ld_mo, st_mo)\
|
|
555
590
|
__asm__ __volatile__\
|
|
556
591
|
(\
|
|
@@ -567,6 +602,7 @@ struct extra_operations_gcc_aarch32< Base, 2u, Signed > :
|
|
|
567
602
|
|
|
568
603
|
BOOST_ATOMIC_DETAIL_AARCH32_MO_SWITCH(order)
|
|
569
604
|
#undef BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN
|
|
605
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
570
606
|
|
|
571
607
|
return result;
|
|
572
608
|
}
|
|
@@ -582,13 +618,14 @@ template< typename Base, bool Signed >
|
|
|
582
618
|
struct extra_operations_gcc_aarch32< Base, 4u, Signed > :
|
|
583
619
|
public extra_operations_generic< Base, 4u, Signed >
|
|
584
620
|
{
|
|
585
|
-
|
|
586
|
-
|
|
621
|
+
using base_type = extra_operations_generic< Base, 4u, Signed >;
|
|
622
|
+
using storage_type = typename base_type::storage_type;
|
|
587
623
|
|
|
588
|
-
static BOOST_FORCEINLINE storage_type fetch_negate(storage_type volatile& storage, memory_order order)
|
|
624
|
+
static BOOST_FORCEINLINE storage_type fetch_negate(storage_type volatile& storage, memory_order order) noexcept
|
|
589
625
|
{
|
|
626
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
590
627
|
storage_type original, result;
|
|
591
|
-
uint32_t tmp;
|
|
628
|
+
std::uint32_t tmp;
|
|
592
629
|
#define BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN(ld_mo, st_mo)\
|
|
593
630
|
__asm__ __volatile__\
|
|
594
631
|
(\
|
|
@@ -605,14 +642,16 @@ struct extra_operations_gcc_aarch32< Base, 4u, Signed > :
|
|
|
605
642
|
|
|
606
643
|
BOOST_ATOMIC_DETAIL_AARCH32_MO_SWITCH(order)
|
|
607
644
|
#undef BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN
|
|
645
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
608
646
|
|
|
609
647
|
return original;
|
|
610
648
|
}
|
|
611
649
|
|
|
612
|
-
static BOOST_FORCEINLINE storage_type negate(storage_type volatile& storage, memory_order order)
|
|
650
|
+
static BOOST_FORCEINLINE storage_type negate(storage_type volatile& storage, memory_order order) noexcept
|
|
613
651
|
{
|
|
652
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
614
653
|
storage_type result;
|
|
615
|
-
uint32_t tmp;
|
|
654
|
+
std::uint32_t tmp;
|
|
616
655
|
#define BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN(ld_mo, st_mo)\
|
|
617
656
|
__asm__ __volatile__\
|
|
618
657
|
(\
|
|
@@ -629,14 +668,16 @@ struct extra_operations_gcc_aarch32< Base, 4u, Signed > :
|
|
|
629
668
|
|
|
630
669
|
BOOST_ATOMIC_DETAIL_AARCH32_MO_SWITCH(order)
|
|
631
670
|
#undef BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN
|
|
671
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
632
672
|
|
|
633
673
|
return result;
|
|
634
674
|
}
|
|
635
675
|
|
|
636
|
-
static BOOST_FORCEINLINE storage_type add(storage_type volatile& storage, storage_type v, memory_order order)
|
|
676
|
+
static BOOST_FORCEINLINE storage_type add(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
637
677
|
{
|
|
678
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
638
679
|
storage_type result;
|
|
639
|
-
uint32_t tmp;
|
|
680
|
+
std::uint32_t tmp;
|
|
640
681
|
#define BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN(ld_mo, st_mo)\
|
|
641
682
|
__asm__ __volatile__\
|
|
642
683
|
(\
|
|
@@ -653,14 +694,16 @@ struct extra_operations_gcc_aarch32< Base, 4u, Signed > :
|
|
|
653
694
|
|
|
654
695
|
BOOST_ATOMIC_DETAIL_AARCH32_MO_SWITCH(order)
|
|
655
696
|
#undef BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN
|
|
697
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
656
698
|
|
|
657
699
|
return result;
|
|
658
700
|
}
|
|
659
701
|
|
|
660
|
-
static BOOST_FORCEINLINE storage_type sub(storage_type volatile& storage, storage_type v, memory_order order)
|
|
702
|
+
static BOOST_FORCEINLINE storage_type sub(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
661
703
|
{
|
|
704
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
662
705
|
storage_type result;
|
|
663
|
-
uint32_t tmp;
|
|
706
|
+
std::uint32_t tmp;
|
|
664
707
|
#define BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN(ld_mo, st_mo)\
|
|
665
708
|
__asm__ __volatile__\
|
|
666
709
|
(\
|
|
@@ -677,14 +720,16 @@ struct extra_operations_gcc_aarch32< Base, 4u, Signed > :
|
|
|
677
720
|
|
|
678
721
|
BOOST_ATOMIC_DETAIL_AARCH32_MO_SWITCH(order)
|
|
679
722
|
#undef BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN
|
|
723
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
680
724
|
|
|
681
725
|
return result;
|
|
682
726
|
}
|
|
683
727
|
|
|
684
|
-
static BOOST_FORCEINLINE storage_type bitwise_and(storage_type volatile& storage, storage_type v, memory_order order)
|
|
728
|
+
static BOOST_FORCEINLINE storage_type bitwise_and(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
685
729
|
{
|
|
730
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
686
731
|
storage_type result;
|
|
687
|
-
uint32_t tmp;
|
|
732
|
+
std::uint32_t tmp;
|
|
688
733
|
#define BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN(ld_mo, st_mo)\
|
|
689
734
|
__asm__ __volatile__\
|
|
690
735
|
(\
|
|
@@ -701,14 +746,16 @@ struct extra_operations_gcc_aarch32< Base, 4u, Signed > :
|
|
|
701
746
|
|
|
702
747
|
BOOST_ATOMIC_DETAIL_AARCH32_MO_SWITCH(order)
|
|
703
748
|
#undef BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN
|
|
749
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
704
750
|
|
|
705
751
|
return result;
|
|
706
752
|
}
|
|
707
753
|
|
|
708
|
-
static BOOST_FORCEINLINE storage_type bitwise_or(storage_type volatile& storage, storage_type v, memory_order order)
|
|
754
|
+
static BOOST_FORCEINLINE storage_type bitwise_or(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
709
755
|
{
|
|
756
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
710
757
|
storage_type result;
|
|
711
|
-
uint32_t tmp;
|
|
758
|
+
std::uint32_t tmp;
|
|
712
759
|
#define BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN(ld_mo, st_mo)\
|
|
713
760
|
__asm__ __volatile__\
|
|
714
761
|
(\
|
|
@@ -725,14 +772,16 @@ struct extra_operations_gcc_aarch32< Base, 4u, Signed > :
|
|
|
725
772
|
|
|
726
773
|
BOOST_ATOMIC_DETAIL_AARCH32_MO_SWITCH(order)
|
|
727
774
|
#undef BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN
|
|
775
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
728
776
|
|
|
729
777
|
return result;
|
|
730
778
|
}
|
|
731
779
|
|
|
732
|
-
static BOOST_FORCEINLINE storage_type bitwise_xor(storage_type volatile& storage, storage_type v, memory_order order)
|
|
780
|
+
static BOOST_FORCEINLINE storage_type bitwise_xor(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
733
781
|
{
|
|
782
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
734
783
|
storage_type result;
|
|
735
|
-
uint32_t tmp;
|
|
784
|
+
std::uint32_t tmp;
|
|
736
785
|
#define BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN(ld_mo, st_mo)\
|
|
737
786
|
__asm__ __volatile__\
|
|
738
787
|
(\
|
|
@@ -749,14 +798,16 @@ struct extra_operations_gcc_aarch32< Base, 4u, Signed > :
|
|
|
749
798
|
|
|
750
799
|
BOOST_ATOMIC_DETAIL_AARCH32_MO_SWITCH(order)
|
|
751
800
|
#undef BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN
|
|
801
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
752
802
|
|
|
753
803
|
return result;
|
|
754
804
|
}
|
|
755
805
|
|
|
756
|
-
static BOOST_FORCEINLINE storage_type fetch_complement(storage_type volatile& storage, memory_order order)
|
|
806
|
+
static BOOST_FORCEINLINE storage_type fetch_complement(storage_type volatile& storage, memory_order order) noexcept
|
|
757
807
|
{
|
|
808
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
758
809
|
storage_type original, result;
|
|
759
|
-
uint32_t tmp;
|
|
810
|
+
std::uint32_t tmp;
|
|
760
811
|
#define BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN(ld_mo, st_mo)\
|
|
761
812
|
__asm__ __volatile__\
|
|
762
813
|
(\
|
|
@@ -773,14 +824,16 @@ struct extra_operations_gcc_aarch32< Base, 4u, Signed > :
|
|
|
773
824
|
|
|
774
825
|
BOOST_ATOMIC_DETAIL_AARCH32_MO_SWITCH(order)
|
|
775
826
|
#undef BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN
|
|
827
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
776
828
|
|
|
777
829
|
return original;
|
|
778
830
|
}
|
|
779
831
|
|
|
780
|
-
static BOOST_FORCEINLINE storage_type bitwise_complement(storage_type volatile& storage, memory_order order)
|
|
832
|
+
static BOOST_FORCEINLINE storage_type bitwise_complement(storage_type volatile& storage, memory_order order) noexcept
|
|
781
833
|
{
|
|
834
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
782
835
|
storage_type result;
|
|
783
|
-
uint32_t tmp;
|
|
836
|
+
std::uint32_t tmp;
|
|
784
837
|
#define BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN(ld_mo, st_mo)\
|
|
785
838
|
__asm__ __volatile__\
|
|
786
839
|
(\
|
|
@@ -797,6 +850,7 @@ struct extra_operations_gcc_aarch32< Base, 4u, Signed > :
|
|
|
797
850
|
|
|
798
851
|
BOOST_ATOMIC_DETAIL_AARCH32_MO_SWITCH(order)
|
|
799
852
|
#undef BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN
|
|
853
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
800
854
|
|
|
801
855
|
return result;
|
|
802
856
|
}
|
|
@@ -812,13 +866,14 @@ template< typename Base, bool Signed >
|
|
|
812
866
|
struct extra_operations_gcc_aarch32< Base, 8u, Signed > :
|
|
813
867
|
public extra_operations_generic< Base, 8u, Signed >
|
|
814
868
|
{
|
|
815
|
-
|
|
816
|
-
|
|
869
|
+
using base_type = extra_operations_generic< Base, 8u, Signed >;
|
|
870
|
+
using storage_type = typename base_type::storage_type;
|
|
817
871
|
|
|
818
|
-
static BOOST_FORCEINLINE storage_type fetch_negate(storage_type volatile& storage, memory_order order)
|
|
872
|
+
static BOOST_FORCEINLINE storage_type fetch_negate(storage_type volatile& storage, memory_order order) noexcept
|
|
819
873
|
{
|
|
874
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
820
875
|
storage_type original, result;
|
|
821
|
-
uint32_t tmp;
|
|
876
|
+
std::uint32_t tmp;
|
|
822
877
|
#define BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN(ld_mo, st_mo)\
|
|
823
878
|
__asm__ __volatile__\
|
|
824
879
|
(\
|
|
@@ -838,14 +893,16 @@ struct extra_operations_gcc_aarch32< Base, 8u, Signed > :
|
|
|
838
893
|
|
|
839
894
|
BOOST_ATOMIC_DETAIL_AARCH32_MO_SWITCH(order)
|
|
840
895
|
#undef BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN
|
|
896
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
841
897
|
|
|
842
898
|
return original;
|
|
843
899
|
}
|
|
844
900
|
|
|
845
|
-
static BOOST_FORCEINLINE storage_type negate(storage_type volatile& storage, memory_order order)
|
|
901
|
+
static BOOST_FORCEINLINE storage_type negate(storage_type volatile& storage, memory_order order) noexcept
|
|
846
902
|
{
|
|
903
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
847
904
|
storage_type result;
|
|
848
|
-
uint32_t tmp;
|
|
905
|
+
std::uint32_t tmp;
|
|
849
906
|
#define BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN(ld_mo, st_mo)\
|
|
850
907
|
__asm__ __volatile__\
|
|
851
908
|
(\
|
|
@@ -865,14 +922,16 @@ struct extra_operations_gcc_aarch32< Base, 8u, Signed > :
|
|
|
865
922
|
|
|
866
923
|
BOOST_ATOMIC_DETAIL_AARCH32_MO_SWITCH(order)
|
|
867
924
|
#undef BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN
|
|
925
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
868
926
|
|
|
869
927
|
return result;
|
|
870
928
|
}
|
|
871
929
|
|
|
872
|
-
static BOOST_FORCEINLINE storage_type add(storage_type volatile& storage, storage_type v, memory_order order)
|
|
930
|
+
static BOOST_FORCEINLINE storage_type add(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
873
931
|
{
|
|
932
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
874
933
|
storage_type result;
|
|
875
|
-
uint32_t tmp;
|
|
934
|
+
std::uint32_t tmp;
|
|
876
935
|
#define BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN(ld_mo, st_mo)\
|
|
877
936
|
__asm__ __volatile__\
|
|
878
937
|
(\
|
|
@@ -890,14 +949,16 @@ struct extra_operations_gcc_aarch32< Base, 8u, Signed > :
|
|
|
890
949
|
|
|
891
950
|
BOOST_ATOMIC_DETAIL_AARCH32_MO_SWITCH(order)
|
|
892
951
|
#undef BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN
|
|
952
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
893
953
|
|
|
894
954
|
return result;
|
|
895
955
|
}
|
|
896
956
|
|
|
897
|
-
static BOOST_FORCEINLINE storage_type sub(storage_type volatile& storage, storage_type v, memory_order order)
|
|
957
|
+
static BOOST_FORCEINLINE storage_type sub(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
898
958
|
{
|
|
959
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
899
960
|
storage_type result;
|
|
900
|
-
uint32_t tmp;
|
|
961
|
+
std::uint32_t tmp;
|
|
901
962
|
#define BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN(ld_mo, st_mo)\
|
|
902
963
|
__asm__ __volatile__\
|
|
903
964
|
(\
|
|
@@ -915,14 +976,16 @@ struct extra_operations_gcc_aarch32< Base, 8u, Signed > :
|
|
|
915
976
|
|
|
916
977
|
BOOST_ATOMIC_DETAIL_AARCH32_MO_SWITCH(order)
|
|
917
978
|
#undef BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN
|
|
979
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
918
980
|
|
|
919
981
|
return result;
|
|
920
982
|
}
|
|
921
983
|
|
|
922
|
-
static BOOST_FORCEINLINE storage_type bitwise_and(storage_type volatile& storage, storage_type v, memory_order order)
|
|
984
|
+
static BOOST_FORCEINLINE storage_type bitwise_and(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
923
985
|
{
|
|
986
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
924
987
|
storage_type result;
|
|
925
|
-
uint32_t tmp;
|
|
988
|
+
std::uint32_t tmp;
|
|
926
989
|
#define BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN(ld_mo, st_mo)\
|
|
927
990
|
__asm__ __volatile__\
|
|
928
991
|
(\
|
|
@@ -940,14 +1003,16 @@ struct extra_operations_gcc_aarch32< Base, 8u, Signed > :
|
|
|
940
1003
|
|
|
941
1004
|
BOOST_ATOMIC_DETAIL_AARCH32_MO_SWITCH(order)
|
|
942
1005
|
#undef BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN
|
|
1006
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
943
1007
|
|
|
944
1008
|
return result;
|
|
945
1009
|
}
|
|
946
1010
|
|
|
947
|
-
static BOOST_FORCEINLINE storage_type bitwise_or(storage_type volatile& storage, storage_type v, memory_order order)
|
|
1011
|
+
static BOOST_FORCEINLINE storage_type bitwise_or(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
948
1012
|
{
|
|
1013
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
949
1014
|
storage_type result;
|
|
950
|
-
uint32_t tmp;
|
|
1015
|
+
std::uint32_t tmp;
|
|
951
1016
|
#define BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN(ld_mo, st_mo)\
|
|
952
1017
|
__asm__ __volatile__\
|
|
953
1018
|
(\
|
|
@@ -965,14 +1030,16 @@ struct extra_operations_gcc_aarch32< Base, 8u, Signed > :
|
|
|
965
1030
|
|
|
966
1031
|
BOOST_ATOMIC_DETAIL_AARCH32_MO_SWITCH(order)
|
|
967
1032
|
#undef BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN
|
|
1033
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
968
1034
|
|
|
969
1035
|
return result;
|
|
970
1036
|
}
|
|
971
1037
|
|
|
972
|
-
static BOOST_FORCEINLINE storage_type bitwise_xor(storage_type volatile& storage, storage_type v, memory_order order)
|
|
1038
|
+
static BOOST_FORCEINLINE storage_type bitwise_xor(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
973
1039
|
{
|
|
1040
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
974
1041
|
storage_type result;
|
|
975
|
-
uint32_t tmp;
|
|
1042
|
+
std::uint32_t tmp;
|
|
976
1043
|
#define BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN(ld_mo, st_mo)\
|
|
977
1044
|
__asm__ __volatile__\
|
|
978
1045
|
(\
|
|
@@ -990,14 +1057,16 @@ struct extra_operations_gcc_aarch32< Base, 8u, Signed > :
|
|
|
990
1057
|
|
|
991
1058
|
BOOST_ATOMIC_DETAIL_AARCH32_MO_SWITCH(order)
|
|
992
1059
|
#undef BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN
|
|
1060
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
993
1061
|
|
|
994
1062
|
return result;
|
|
995
1063
|
}
|
|
996
1064
|
|
|
997
|
-
static BOOST_FORCEINLINE storage_type fetch_complement(storage_type volatile& storage, memory_order order)
|
|
1065
|
+
static BOOST_FORCEINLINE storage_type fetch_complement(storage_type volatile& storage, memory_order order) noexcept
|
|
998
1066
|
{
|
|
1067
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
999
1068
|
storage_type original, result;
|
|
1000
|
-
uint32_t tmp;
|
|
1069
|
+
std::uint32_t tmp;
|
|
1001
1070
|
#define BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN(ld_mo, st_mo)\
|
|
1002
1071
|
__asm__ __volatile__\
|
|
1003
1072
|
(\
|
|
@@ -1015,14 +1084,16 @@ struct extra_operations_gcc_aarch32< Base, 8u, Signed > :
|
|
|
1015
1084
|
|
|
1016
1085
|
BOOST_ATOMIC_DETAIL_AARCH32_MO_SWITCH(order)
|
|
1017
1086
|
#undef BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN
|
|
1087
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
1018
1088
|
|
|
1019
1089
|
return original;
|
|
1020
1090
|
}
|
|
1021
1091
|
|
|
1022
|
-
static BOOST_FORCEINLINE storage_type bitwise_complement(storage_type volatile& storage, memory_order order)
|
|
1092
|
+
static BOOST_FORCEINLINE storage_type bitwise_complement(storage_type volatile& storage, memory_order order) noexcept
|
|
1023
1093
|
{
|
|
1094
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
1024
1095
|
storage_type result;
|
|
1025
|
-
uint32_t tmp;
|
|
1096
|
+
std::uint32_t tmp;
|
|
1026
1097
|
#define BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN(ld_mo, st_mo)\
|
|
1027
1098
|
__asm__ __volatile__\
|
|
1028
1099
|
(\
|
|
@@ -1040,6 +1111,7 @@ struct extra_operations_gcc_aarch32< Base, 8u, Signed > :
|
|
|
1040
1111
|
|
|
1041
1112
|
BOOST_ATOMIC_DETAIL_AARCH32_MO_SWITCH(order)
|
|
1042
1113
|
#undef BOOST_ATOMIC_DETAIL_AARCH32_MO_INSN
|
|
1114
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
1043
1115
|
|
|
1044
1116
|
return result;
|
|
1045
1117
|
}
|