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_aarch64.hpp
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
#define BOOST_ATOMIC_DETAIL_EXTRA_OPS_GCC_AARCH64_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,79 +38,79 @@ template< typename Base >
|
|
|
38
38
|
struct extra_operations_gcc_aarch64_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. That is unless LSE is available, in which case
|
|
46
46
|
// it is better to use the dedicated atomic instructions. The LSE check is done in the base_type,
|
|
47
47
|
// where needed (e.g. for 128-bit operations there are no LSE instructions).
|
|
48
|
-
static BOOST_FORCEINLINE void opaque_negate(storage_type volatile& storage, memory_order order)
|
|
48
|
+
static BOOST_FORCEINLINE void opaque_negate(storage_type volatile& storage, memory_order order) noexcept
|
|
49
49
|
{
|
|
50
50
|
base_type::negate(storage, order);
|
|
51
51
|
}
|
|
52
52
|
|
|
53
|
-
static BOOST_FORCEINLINE void opaque_complement(storage_type volatile& storage, memory_order order)
|
|
53
|
+
static BOOST_FORCEINLINE void opaque_complement(storage_type volatile& storage, memory_order order) noexcept
|
|
54
54
|
{
|
|
55
55
|
base_type::bitwise_complement(storage, order);
|
|
56
56
|
}
|
|
57
57
|
|
|
58
|
-
static BOOST_FORCEINLINE void opaque_add(storage_type volatile& storage, storage_type v, memory_order order)
|
|
58
|
+
static BOOST_FORCEINLINE void opaque_add(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
59
59
|
{
|
|
60
60
|
base_type::add(storage, v, order);
|
|
61
61
|
}
|
|
62
62
|
|
|
63
|
-
static BOOST_FORCEINLINE void opaque_sub(storage_type volatile& storage, storage_type v, memory_order order)
|
|
63
|
+
static BOOST_FORCEINLINE void opaque_sub(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
64
64
|
{
|
|
65
65
|
base_type::sub(storage, v, order);
|
|
66
66
|
}
|
|
67
67
|
|
|
68
|
-
static BOOST_FORCEINLINE void opaque_and(storage_type volatile& storage, storage_type v, memory_order order)
|
|
68
|
+
static BOOST_FORCEINLINE void opaque_and(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
69
69
|
{
|
|
70
70
|
base_type::bitwise_and(storage, v, order);
|
|
71
71
|
}
|
|
72
72
|
|
|
73
|
-
static BOOST_FORCEINLINE void opaque_or(storage_type volatile& storage, storage_type v, memory_order order)
|
|
73
|
+
static BOOST_FORCEINLINE void opaque_or(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
74
74
|
{
|
|
75
75
|
base_type::bitwise_or(storage, v, order);
|
|
76
76
|
}
|
|
77
77
|
|
|
78
|
-
static BOOST_FORCEINLINE void opaque_xor(storage_type volatile& storage, storage_type v, memory_order order)
|
|
78
|
+
static BOOST_FORCEINLINE void opaque_xor(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
79
79
|
{
|
|
80
80
|
base_type::bitwise_xor(storage, v, order);
|
|
81
81
|
}
|
|
82
82
|
|
|
83
|
-
static BOOST_FORCEINLINE bool negate_and_test(storage_type volatile& storage, memory_order order)
|
|
83
|
+
static BOOST_FORCEINLINE bool negate_and_test(storage_type volatile& storage, memory_order order) noexcept
|
|
84
84
|
{
|
|
85
85
|
return !!base_type::negate(storage, order);
|
|
86
86
|
}
|
|
87
87
|
|
|
88
|
-
static BOOST_FORCEINLINE bool add_and_test(storage_type volatile& storage, storage_type v, memory_order order)
|
|
88
|
+
static BOOST_FORCEINLINE bool add_and_test(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
89
89
|
{
|
|
90
90
|
return !!base_type::add(storage, v, order);
|
|
91
91
|
}
|
|
92
92
|
|
|
93
|
-
static BOOST_FORCEINLINE bool sub_and_test(storage_type volatile& storage, storage_type v, memory_order order)
|
|
93
|
+
static BOOST_FORCEINLINE bool sub_and_test(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
94
94
|
{
|
|
95
95
|
return !!base_type::sub(storage, v, order);
|
|
96
96
|
}
|
|
97
97
|
|
|
98
|
-
static BOOST_FORCEINLINE bool and_and_test(storage_type volatile& storage, storage_type v, memory_order order)
|
|
98
|
+
static BOOST_FORCEINLINE bool and_and_test(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
99
99
|
{
|
|
100
100
|
return !!base_type::bitwise_and(storage, v, order);
|
|
101
101
|
}
|
|
102
102
|
|
|
103
|
-
static BOOST_FORCEINLINE bool or_and_test(storage_type volatile& storage, storage_type v, memory_order order)
|
|
103
|
+
static BOOST_FORCEINLINE bool or_and_test(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
104
104
|
{
|
|
105
105
|
return !!base_type::bitwise_or(storage, v, order);
|
|
106
106
|
}
|
|
107
107
|
|
|
108
|
-
static BOOST_FORCEINLINE bool xor_and_test(storage_type volatile& storage, storage_type v, memory_order order)
|
|
108
|
+
static BOOST_FORCEINLINE bool xor_and_test(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
109
109
|
{
|
|
110
110
|
return !!base_type::bitwise_xor(storage, v, order);
|
|
111
111
|
}
|
|
112
112
|
|
|
113
|
-
static BOOST_FORCEINLINE bool complement_and_test(storage_type volatile& storage, memory_order order)
|
|
113
|
+
static BOOST_FORCEINLINE bool complement_and_test(storage_type volatile& storage, memory_order order) noexcept
|
|
114
114
|
{
|
|
115
115
|
return !!base_type::bitwise_complement(storage, order);
|
|
116
116
|
}
|
|
@@ -123,13 +123,14 @@ template< typename Base, bool Signed >
|
|
|
123
123
|
struct extra_operations_gcc_aarch64< Base, 1u, Signed > :
|
|
124
124
|
public extra_operations_generic< Base, 1u, Signed >
|
|
125
125
|
{
|
|
126
|
-
|
|
127
|
-
|
|
126
|
+
using base_type = extra_operations_generic< Base, 1u, Signed >;
|
|
127
|
+
using storage_type = typename base_type::storage_type;
|
|
128
128
|
|
|
129
|
-
static BOOST_FORCEINLINE storage_type fetch_negate(storage_type volatile& storage, memory_order order)
|
|
129
|
+
static BOOST_FORCEINLINE storage_type fetch_negate(storage_type volatile& storage, memory_order order) noexcept
|
|
130
130
|
{
|
|
131
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
131
132
|
storage_type original, result;
|
|
132
|
-
uint32_t tmp;
|
|
133
|
+
std::uint32_t tmp;
|
|
133
134
|
|
|
134
135
|
#define BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN(ld_mo, st_mo)\
|
|
135
136
|
__asm__ __volatile__\
|
|
@@ -146,14 +147,16 @@ struct extra_operations_gcc_aarch64< Base, 1u, Signed > :
|
|
|
146
147
|
|
|
147
148
|
BOOST_ATOMIC_DETAIL_AARCH64_MO_SWITCH(order)
|
|
148
149
|
#undef BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN
|
|
150
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
149
151
|
|
|
150
152
|
return original;
|
|
151
153
|
}
|
|
152
154
|
|
|
153
|
-
static BOOST_FORCEINLINE storage_type negate(storage_type volatile& storage, memory_order order)
|
|
155
|
+
static BOOST_FORCEINLINE storage_type negate(storage_type volatile& storage, memory_order order) noexcept
|
|
154
156
|
{
|
|
157
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
155
158
|
storage_type result;
|
|
156
|
-
uint32_t tmp;
|
|
159
|
+
std::uint32_t tmp;
|
|
157
160
|
|
|
158
161
|
#define BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN(ld_mo, st_mo)\
|
|
159
162
|
__asm__ __volatile__\
|
|
@@ -170,16 +173,18 @@ struct extra_operations_gcc_aarch64< Base, 1u, Signed > :
|
|
|
170
173
|
|
|
171
174
|
BOOST_ATOMIC_DETAIL_AARCH64_MO_SWITCH(order)
|
|
172
175
|
#undef BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN
|
|
176
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
173
177
|
|
|
174
178
|
return result;
|
|
175
179
|
}
|
|
176
180
|
|
|
177
181
|
#if !defined(BOOST_ATOMIC_DETAIL_AARCH64_HAS_LSE)
|
|
178
182
|
|
|
179
|
-
static BOOST_FORCEINLINE storage_type add(storage_type volatile& storage, storage_type v, memory_order order)
|
|
183
|
+
static BOOST_FORCEINLINE storage_type add(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
180
184
|
{
|
|
185
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
181
186
|
storage_type result;
|
|
182
|
-
uint32_t tmp;
|
|
187
|
+
std::uint32_t tmp;
|
|
183
188
|
|
|
184
189
|
#define BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN(ld_mo, st_mo)\
|
|
185
190
|
__asm__ __volatile__\
|
|
@@ -196,14 +201,16 @@ struct extra_operations_gcc_aarch64< Base, 1u, Signed > :
|
|
|
196
201
|
|
|
197
202
|
BOOST_ATOMIC_DETAIL_AARCH64_MO_SWITCH(order)
|
|
198
203
|
#undef BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN
|
|
204
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
199
205
|
|
|
200
206
|
return result;
|
|
201
207
|
}
|
|
202
208
|
|
|
203
|
-
static BOOST_FORCEINLINE storage_type sub(storage_type volatile& storage, storage_type v, memory_order order)
|
|
209
|
+
static BOOST_FORCEINLINE storage_type sub(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
204
210
|
{
|
|
211
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
205
212
|
storage_type result;
|
|
206
|
-
uint32_t tmp;
|
|
213
|
+
std::uint32_t tmp;
|
|
207
214
|
|
|
208
215
|
#define BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN(ld_mo, st_mo)\
|
|
209
216
|
__asm__ __volatile__\
|
|
@@ -220,14 +227,16 @@ struct extra_operations_gcc_aarch64< Base, 1u, Signed > :
|
|
|
220
227
|
|
|
221
228
|
BOOST_ATOMIC_DETAIL_AARCH64_MO_SWITCH(order)
|
|
222
229
|
#undef BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN
|
|
230
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
223
231
|
|
|
224
232
|
return result;
|
|
225
233
|
}
|
|
226
234
|
|
|
227
|
-
static BOOST_FORCEINLINE storage_type bitwise_and(storage_type volatile& storage, storage_type v, memory_order order)
|
|
235
|
+
static BOOST_FORCEINLINE storage_type bitwise_and(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
228
236
|
{
|
|
237
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
229
238
|
storage_type result;
|
|
230
|
-
uint32_t tmp;
|
|
239
|
+
std::uint32_t tmp;
|
|
231
240
|
|
|
232
241
|
#define BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN(ld_mo, st_mo)\
|
|
233
242
|
__asm__ __volatile__\
|
|
@@ -244,14 +253,16 @@ struct extra_operations_gcc_aarch64< Base, 1u, Signed > :
|
|
|
244
253
|
|
|
245
254
|
BOOST_ATOMIC_DETAIL_AARCH64_MO_SWITCH(order)
|
|
246
255
|
#undef BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN
|
|
256
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
247
257
|
|
|
248
258
|
return result;
|
|
249
259
|
}
|
|
250
260
|
|
|
251
|
-
static BOOST_FORCEINLINE storage_type bitwise_or(storage_type volatile& storage, storage_type v, memory_order order)
|
|
261
|
+
static BOOST_FORCEINLINE storage_type bitwise_or(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
252
262
|
{
|
|
263
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
253
264
|
storage_type result;
|
|
254
|
-
uint32_t tmp;
|
|
265
|
+
std::uint32_t tmp;
|
|
255
266
|
|
|
256
267
|
#define BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN(ld_mo, st_mo)\
|
|
257
268
|
__asm__ __volatile__\
|
|
@@ -268,14 +279,16 @@ struct extra_operations_gcc_aarch64< Base, 1u, Signed > :
|
|
|
268
279
|
|
|
269
280
|
BOOST_ATOMIC_DETAIL_AARCH64_MO_SWITCH(order)
|
|
270
281
|
#undef BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN
|
|
282
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
271
283
|
|
|
272
284
|
return result;
|
|
273
285
|
}
|
|
274
286
|
|
|
275
|
-
static BOOST_FORCEINLINE storage_type bitwise_xor(storage_type volatile& storage, storage_type v, memory_order order)
|
|
287
|
+
static BOOST_FORCEINLINE storage_type bitwise_xor(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
276
288
|
{
|
|
289
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
277
290
|
storage_type result;
|
|
278
|
-
uint32_t tmp;
|
|
291
|
+
std::uint32_t tmp;
|
|
279
292
|
|
|
280
293
|
#define BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN(ld_mo, st_mo)\
|
|
281
294
|
__asm__ __volatile__\
|
|
@@ -292,14 +305,16 @@ struct extra_operations_gcc_aarch64< Base, 1u, Signed > :
|
|
|
292
305
|
|
|
293
306
|
BOOST_ATOMIC_DETAIL_AARCH64_MO_SWITCH(order)
|
|
294
307
|
#undef BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN
|
|
308
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
295
309
|
|
|
296
310
|
return result;
|
|
297
311
|
}
|
|
298
312
|
|
|
299
|
-
static BOOST_FORCEINLINE storage_type fetch_complement(storage_type volatile& storage, memory_order order)
|
|
313
|
+
static BOOST_FORCEINLINE storage_type fetch_complement(storage_type volatile& storage, memory_order order) noexcept
|
|
300
314
|
{
|
|
315
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
301
316
|
storage_type original, result;
|
|
302
|
-
uint32_t tmp;
|
|
317
|
+
std::uint32_t tmp;
|
|
303
318
|
|
|
304
319
|
#define BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN(ld_mo, st_mo)\
|
|
305
320
|
__asm__ __volatile__\
|
|
@@ -316,14 +331,16 @@ struct extra_operations_gcc_aarch64< Base, 1u, Signed > :
|
|
|
316
331
|
|
|
317
332
|
BOOST_ATOMIC_DETAIL_AARCH64_MO_SWITCH(order)
|
|
318
333
|
#undef BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN
|
|
334
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
319
335
|
|
|
320
336
|
return original;
|
|
321
337
|
}
|
|
322
338
|
|
|
323
|
-
static BOOST_FORCEINLINE storage_type bitwise_complement(storage_type volatile& storage, memory_order order)
|
|
339
|
+
static BOOST_FORCEINLINE storage_type bitwise_complement(storage_type volatile& storage, memory_order order) noexcept
|
|
324
340
|
{
|
|
341
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
325
342
|
storage_type result;
|
|
326
|
-
uint32_t tmp;
|
|
343
|
+
std::uint32_t tmp;
|
|
327
344
|
|
|
328
345
|
#define BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN(ld_mo, st_mo)\
|
|
329
346
|
__asm__ __volatile__\
|
|
@@ -340,6 +357,7 @@ struct extra_operations_gcc_aarch64< Base, 1u, Signed > :
|
|
|
340
357
|
|
|
341
358
|
BOOST_ATOMIC_DETAIL_AARCH64_MO_SWITCH(order)
|
|
342
359
|
#undef BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN
|
|
360
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
343
361
|
|
|
344
362
|
return result;
|
|
345
363
|
}
|
|
@@ -358,13 +376,14 @@ template< typename Base, bool Signed >
|
|
|
358
376
|
struct extra_operations_gcc_aarch64< Base, 2u, Signed > :
|
|
359
377
|
public extra_operations_generic< Base, 2u, Signed >
|
|
360
378
|
{
|
|
361
|
-
|
|
362
|
-
|
|
379
|
+
using base_type = extra_operations_generic< Base, 2u, Signed >;
|
|
380
|
+
using storage_type = typename base_type::storage_type;
|
|
363
381
|
|
|
364
|
-
static BOOST_FORCEINLINE storage_type fetch_negate(storage_type volatile& storage, memory_order order)
|
|
382
|
+
static BOOST_FORCEINLINE storage_type fetch_negate(storage_type volatile& storage, memory_order order) noexcept
|
|
365
383
|
{
|
|
384
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
366
385
|
storage_type original, result;
|
|
367
|
-
uint32_t tmp;
|
|
386
|
+
std::uint32_t tmp;
|
|
368
387
|
|
|
369
388
|
#define BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN(ld_mo, st_mo)\
|
|
370
389
|
__asm__ __volatile__\
|
|
@@ -381,14 +400,16 @@ struct extra_operations_gcc_aarch64< Base, 2u, Signed > :
|
|
|
381
400
|
|
|
382
401
|
BOOST_ATOMIC_DETAIL_AARCH64_MO_SWITCH(order)
|
|
383
402
|
#undef BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN
|
|
403
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
384
404
|
|
|
385
405
|
return original;
|
|
386
406
|
}
|
|
387
407
|
|
|
388
|
-
static BOOST_FORCEINLINE storage_type negate(storage_type volatile& storage, memory_order order)
|
|
408
|
+
static BOOST_FORCEINLINE storage_type negate(storage_type volatile& storage, memory_order order) noexcept
|
|
389
409
|
{
|
|
410
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
390
411
|
storage_type result;
|
|
391
|
-
uint32_t tmp;
|
|
412
|
+
std::uint32_t tmp;
|
|
392
413
|
|
|
393
414
|
#define BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN(ld_mo, st_mo)\
|
|
394
415
|
__asm__ __volatile__\
|
|
@@ -405,16 +426,18 @@ struct extra_operations_gcc_aarch64< Base, 2u, Signed > :
|
|
|
405
426
|
|
|
406
427
|
BOOST_ATOMIC_DETAIL_AARCH64_MO_SWITCH(order)
|
|
407
428
|
#undef BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN
|
|
429
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
408
430
|
|
|
409
431
|
return result;
|
|
410
432
|
}
|
|
411
433
|
|
|
412
434
|
#if !defined(BOOST_ATOMIC_DETAIL_AARCH64_HAS_LSE)
|
|
413
435
|
|
|
414
|
-
static BOOST_FORCEINLINE storage_type add(storage_type volatile& storage, storage_type v, memory_order order)
|
|
436
|
+
static BOOST_FORCEINLINE storage_type add(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
415
437
|
{
|
|
438
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
416
439
|
storage_type result;
|
|
417
|
-
uint32_t tmp;
|
|
440
|
+
std::uint32_t tmp;
|
|
418
441
|
|
|
419
442
|
#define BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN(ld_mo, st_mo)\
|
|
420
443
|
__asm__ __volatile__\
|
|
@@ -431,14 +454,16 @@ struct extra_operations_gcc_aarch64< Base, 2u, Signed > :
|
|
|
431
454
|
|
|
432
455
|
BOOST_ATOMIC_DETAIL_AARCH64_MO_SWITCH(order)
|
|
433
456
|
#undef BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN
|
|
457
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
434
458
|
|
|
435
459
|
return result;
|
|
436
460
|
}
|
|
437
461
|
|
|
438
|
-
static BOOST_FORCEINLINE storage_type sub(storage_type volatile& storage, storage_type v, memory_order order)
|
|
462
|
+
static BOOST_FORCEINLINE storage_type sub(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
439
463
|
{
|
|
464
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
440
465
|
storage_type result;
|
|
441
|
-
uint32_t tmp;
|
|
466
|
+
std::uint32_t tmp;
|
|
442
467
|
|
|
443
468
|
#define BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN(ld_mo, st_mo)\
|
|
444
469
|
__asm__ __volatile__\
|
|
@@ -455,14 +480,16 @@ struct extra_operations_gcc_aarch64< Base, 2u, Signed > :
|
|
|
455
480
|
|
|
456
481
|
BOOST_ATOMIC_DETAIL_AARCH64_MO_SWITCH(order)
|
|
457
482
|
#undef BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN
|
|
483
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
458
484
|
|
|
459
485
|
return result;
|
|
460
486
|
}
|
|
461
487
|
|
|
462
|
-
static BOOST_FORCEINLINE storage_type bitwise_and(storage_type volatile& storage, storage_type v, memory_order order)
|
|
488
|
+
static BOOST_FORCEINLINE storage_type bitwise_and(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
463
489
|
{
|
|
490
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
464
491
|
storage_type result;
|
|
465
|
-
uint32_t tmp;
|
|
492
|
+
std::uint32_t tmp;
|
|
466
493
|
|
|
467
494
|
#define BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN(ld_mo, st_mo)\
|
|
468
495
|
__asm__ __volatile__\
|
|
@@ -479,14 +506,16 @@ struct extra_operations_gcc_aarch64< Base, 2u, Signed > :
|
|
|
479
506
|
|
|
480
507
|
BOOST_ATOMIC_DETAIL_AARCH64_MO_SWITCH(order)
|
|
481
508
|
#undef BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN
|
|
509
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
482
510
|
|
|
483
511
|
return result;
|
|
484
512
|
}
|
|
485
513
|
|
|
486
|
-
static BOOST_FORCEINLINE storage_type bitwise_or(storage_type volatile& storage, storage_type v, memory_order order)
|
|
514
|
+
static BOOST_FORCEINLINE storage_type bitwise_or(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
487
515
|
{
|
|
516
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
488
517
|
storage_type result;
|
|
489
|
-
uint32_t tmp;
|
|
518
|
+
std::uint32_t tmp;
|
|
490
519
|
|
|
491
520
|
#define BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN(ld_mo, st_mo)\
|
|
492
521
|
__asm__ __volatile__\
|
|
@@ -503,14 +532,16 @@ struct extra_operations_gcc_aarch64< Base, 2u, Signed > :
|
|
|
503
532
|
|
|
504
533
|
BOOST_ATOMIC_DETAIL_AARCH64_MO_SWITCH(order)
|
|
505
534
|
#undef BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN
|
|
535
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
506
536
|
|
|
507
537
|
return result;
|
|
508
538
|
}
|
|
509
539
|
|
|
510
|
-
static BOOST_FORCEINLINE storage_type bitwise_xor(storage_type volatile& storage, storage_type v, memory_order order)
|
|
540
|
+
static BOOST_FORCEINLINE storage_type bitwise_xor(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
511
541
|
{
|
|
542
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
512
543
|
storage_type result;
|
|
513
|
-
uint32_t tmp;
|
|
544
|
+
std::uint32_t tmp;
|
|
514
545
|
|
|
515
546
|
#define BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN(ld_mo, st_mo)\
|
|
516
547
|
__asm__ __volatile__\
|
|
@@ -527,14 +558,16 @@ struct extra_operations_gcc_aarch64< Base, 2u, Signed > :
|
|
|
527
558
|
|
|
528
559
|
BOOST_ATOMIC_DETAIL_AARCH64_MO_SWITCH(order)
|
|
529
560
|
#undef BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN
|
|
561
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
530
562
|
|
|
531
563
|
return result;
|
|
532
564
|
}
|
|
533
565
|
|
|
534
|
-
static BOOST_FORCEINLINE storage_type fetch_complement(storage_type volatile& storage, memory_order order)
|
|
566
|
+
static BOOST_FORCEINLINE storage_type fetch_complement(storage_type volatile& storage, memory_order order) noexcept
|
|
535
567
|
{
|
|
568
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
536
569
|
storage_type original, result;
|
|
537
|
-
uint32_t tmp;
|
|
570
|
+
std::uint32_t tmp;
|
|
538
571
|
|
|
539
572
|
#define BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN(ld_mo, st_mo)\
|
|
540
573
|
__asm__ __volatile__\
|
|
@@ -551,14 +584,16 @@ struct extra_operations_gcc_aarch64< Base, 2u, Signed > :
|
|
|
551
584
|
|
|
552
585
|
BOOST_ATOMIC_DETAIL_AARCH64_MO_SWITCH(order)
|
|
553
586
|
#undef BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN
|
|
587
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
554
588
|
|
|
555
589
|
return original;
|
|
556
590
|
}
|
|
557
591
|
|
|
558
|
-
static BOOST_FORCEINLINE storage_type bitwise_complement(storage_type volatile& storage, memory_order order)
|
|
592
|
+
static BOOST_FORCEINLINE storage_type bitwise_complement(storage_type volatile& storage, memory_order order) noexcept
|
|
559
593
|
{
|
|
594
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
560
595
|
storage_type result;
|
|
561
|
-
uint32_t tmp;
|
|
596
|
+
std::uint32_t tmp;
|
|
562
597
|
|
|
563
598
|
#define BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN(ld_mo, st_mo)\
|
|
564
599
|
__asm__ __volatile__\
|
|
@@ -575,6 +610,7 @@ struct extra_operations_gcc_aarch64< Base, 2u, Signed > :
|
|
|
575
610
|
|
|
576
611
|
BOOST_ATOMIC_DETAIL_AARCH64_MO_SWITCH(order)
|
|
577
612
|
#undef BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN
|
|
613
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
578
614
|
|
|
579
615
|
return result;
|
|
580
616
|
}
|
|
@@ -593,13 +629,14 @@ template< typename Base, bool Signed >
|
|
|
593
629
|
struct extra_operations_gcc_aarch64< Base, 4u, Signed > :
|
|
594
630
|
public extra_operations_generic< Base, 4u, Signed >
|
|
595
631
|
{
|
|
596
|
-
|
|
597
|
-
|
|
632
|
+
using base_type = extra_operations_generic< Base, 4u, Signed >;
|
|
633
|
+
using storage_type = typename base_type::storage_type;
|
|
598
634
|
|
|
599
|
-
static BOOST_FORCEINLINE storage_type fetch_negate(storage_type volatile& storage, memory_order order)
|
|
635
|
+
static BOOST_FORCEINLINE storage_type fetch_negate(storage_type volatile& storage, memory_order order) noexcept
|
|
600
636
|
{
|
|
637
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
601
638
|
storage_type original, result;
|
|
602
|
-
uint32_t tmp;
|
|
639
|
+
std::uint32_t tmp;
|
|
603
640
|
|
|
604
641
|
#define BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN(ld_mo, st_mo)\
|
|
605
642
|
__asm__ __volatile__\
|
|
@@ -616,14 +653,16 @@ struct extra_operations_gcc_aarch64< Base, 4u, Signed > :
|
|
|
616
653
|
|
|
617
654
|
BOOST_ATOMIC_DETAIL_AARCH64_MO_SWITCH(order)
|
|
618
655
|
#undef BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN
|
|
656
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
619
657
|
|
|
620
658
|
return original;
|
|
621
659
|
}
|
|
622
660
|
|
|
623
|
-
static BOOST_FORCEINLINE storage_type negate(storage_type volatile& storage, memory_order order)
|
|
661
|
+
static BOOST_FORCEINLINE storage_type negate(storage_type volatile& storage, memory_order order) noexcept
|
|
624
662
|
{
|
|
663
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
625
664
|
storage_type result;
|
|
626
|
-
uint32_t tmp;
|
|
665
|
+
std::uint32_t tmp;
|
|
627
666
|
|
|
628
667
|
#define BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN(ld_mo, st_mo)\
|
|
629
668
|
__asm__ __volatile__\
|
|
@@ -640,16 +679,18 @@ struct extra_operations_gcc_aarch64< Base, 4u, Signed > :
|
|
|
640
679
|
|
|
641
680
|
BOOST_ATOMIC_DETAIL_AARCH64_MO_SWITCH(order)
|
|
642
681
|
#undef BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN
|
|
682
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
643
683
|
|
|
644
684
|
return result;
|
|
645
685
|
}
|
|
646
686
|
|
|
647
687
|
#if !defined(BOOST_ATOMIC_DETAIL_AARCH64_HAS_LSE)
|
|
648
688
|
|
|
649
|
-
static BOOST_FORCEINLINE storage_type add(storage_type volatile& storage, storage_type v, memory_order order)
|
|
689
|
+
static BOOST_FORCEINLINE storage_type add(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
650
690
|
{
|
|
691
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
651
692
|
storage_type result;
|
|
652
|
-
uint32_t tmp;
|
|
693
|
+
std::uint32_t tmp;
|
|
653
694
|
|
|
654
695
|
#define BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN(ld_mo, st_mo)\
|
|
655
696
|
__asm__ __volatile__\
|
|
@@ -666,14 +707,16 @@ struct extra_operations_gcc_aarch64< Base, 4u, Signed > :
|
|
|
666
707
|
|
|
667
708
|
BOOST_ATOMIC_DETAIL_AARCH64_MO_SWITCH(order)
|
|
668
709
|
#undef BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN
|
|
710
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
669
711
|
|
|
670
712
|
return result;
|
|
671
713
|
}
|
|
672
714
|
|
|
673
|
-
static BOOST_FORCEINLINE storage_type sub(storage_type volatile& storage, storage_type v, memory_order order)
|
|
715
|
+
static BOOST_FORCEINLINE storage_type sub(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
674
716
|
{
|
|
717
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
675
718
|
storage_type result;
|
|
676
|
-
uint32_t tmp;
|
|
719
|
+
std::uint32_t tmp;
|
|
677
720
|
|
|
678
721
|
#define BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN(ld_mo, st_mo)\
|
|
679
722
|
__asm__ __volatile__\
|
|
@@ -690,14 +733,16 @@ struct extra_operations_gcc_aarch64< Base, 4u, Signed > :
|
|
|
690
733
|
|
|
691
734
|
BOOST_ATOMIC_DETAIL_AARCH64_MO_SWITCH(order)
|
|
692
735
|
#undef BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN
|
|
736
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
693
737
|
|
|
694
738
|
return result;
|
|
695
739
|
}
|
|
696
740
|
|
|
697
|
-
static BOOST_FORCEINLINE storage_type bitwise_and(storage_type volatile& storage, storage_type v, memory_order order)
|
|
741
|
+
static BOOST_FORCEINLINE storage_type bitwise_and(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
698
742
|
{
|
|
743
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
699
744
|
storage_type result;
|
|
700
|
-
uint32_t tmp;
|
|
745
|
+
std::uint32_t tmp;
|
|
701
746
|
|
|
702
747
|
#define BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN(ld_mo, st_mo)\
|
|
703
748
|
__asm__ __volatile__\
|
|
@@ -714,14 +759,16 @@ struct extra_operations_gcc_aarch64< Base, 4u, Signed > :
|
|
|
714
759
|
|
|
715
760
|
BOOST_ATOMIC_DETAIL_AARCH64_MO_SWITCH(order)
|
|
716
761
|
#undef BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN
|
|
762
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
717
763
|
|
|
718
764
|
return result;
|
|
719
765
|
}
|
|
720
766
|
|
|
721
|
-
static BOOST_FORCEINLINE storage_type bitwise_or(storage_type volatile& storage, storage_type v, memory_order order)
|
|
767
|
+
static BOOST_FORCEINLINE storage_type bitwise_or(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
722
768
|
{
|
|
769
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
723
770
|
storage_type result;
|
|
724
|
-
uint32_t tmp;
|
|
771
|
+
std::uint32_t tmp;
|
|
725
772
|
|
|
726
773
|
#define BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN(ld_mo, st_mo)\
|
|
727
774
|
__asm__ __volatile__\
|
|
@@ -738,14 +785,16 @@ struct extra_operations_gcc_aarch64< Base, 4u, Signed > :
|
|
|
738
785
|
|
|
739
786
|
BOOST_ATOMIC_DETAIL_AARCH64_MO_SWITCH(order)
|
|
740
787
|
#undef BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN
|
|
788
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
741
789
|
|
|
742
790
|
return result;
|
|
743
791
|
}
|
|
744
792
|
|
|
745
|
-
static BOOST_FORCEINLINE storage_type bitwise_xor(storage_type volatile& storage, storage_type v, memory_order order)
|
|
793
|
+
static BOOST_FORCEINLINE storage_type bitwise_xor(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
746
794
|
{
|
|
795
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
747
796
|
storage_type result;
|
|
748
|
-
uint32_t tmp;
|
|
797
|
+
std::uint32_t tmp;
|
|
749
798
|
|
|
750
799
|
#define BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN(ld_mo, st_mo)\
|
|
751
800
|
__asm__ __volatile__\
|
|
@@ -762,14 +811,16 @@ struct extra_operations_gcc_aarch64< Base, 4u, Signed > :
|
|
|
762
811
|
|
|
763
812
|
BOOST_ATOMIC_DETAIL_AARCH64_MO_SWITCH(order)
|
|
764
813
|
#undef BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN
|
|
814
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
765
815
|
|
|
766
816
|
return result;
|
|
767
817
|
}
|
|
768
818
|
|
|
769
|
-
static BOOST_FORCEINLINE storage_type fetch_complement(storage_type volatile& storage, memory_order order)
|
|
819
|
+
static BOOST_FORCEINLINE storage_type fetch_complement(storage_type volatile& storage, memory_order order) noexcept
|
|
770
820
|
{
|
|
821
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
771
822
|
storage_type original, result;
|
|
772
|
-
uint32_t tmp;
|
|
823
|
+
std::uint32_t tmp;
|
|
773
824
|
|
|
774
825
|
#define BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN(ld_mo, st_mo)\
|
|
775
826
|
__asm__ __volatile__\
|
|
@@ -786,14 +837,16 @@ struct extra_operations_gcc_aarch64< Base, 4u, Signed > :
|
|
|
786
837
|
|
|
787
838
|
BOOST_ATOMIC_DETAIL_AARCH64_MO_SWITCH(order)
|
|
788
839
|
#undef BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN
|
|
840
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
789
841
|
|
|
790
842
|
return original;
|
|
791
843
|
}
|
|
792
844
|
|
|
793
|
-
static BOOST_FORCEINLINE storage_type bitwise_complement(storage_type volatile& storage, memory_order order)
|
|
845
|
+
static BOOST_FORCEINLINE storage_type bitwise_complement(storage_type volatile& storage, memory_order order) noexcept
|
|
794
846
|
{
|
|
847
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
795
848
|
storage_type result;
|
|
796
|
-
uint32_t tmp;
|
|
849
|
+
std::uint32_t tmp;
|
|
797
850
|
|
|
798
851
|
#define BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN(ld_mo, st_mo)\
|
|
799
852
|
__asm__ __volatile__\
|
|
@@ -810,6 +863,7 @@ struct extra_operations_gcc_aarch64< Base, 4u, Signed > :
|
|
|
810
863
|
|
|
811
864
|
BOOST_ATOMIC_DETAIL_AARCH64_MO_SWITCH(order)
|
|
812
865
|
#undef BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN
|
|
866
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
813
867
|
|
|
814
868
|
return result;
|
|
815
869
|
}
|
|
@@ -828,13 +882,14 @@ template< typename Base, bool Signed >
|
|
|
828
882
|
struct extra_operations_gcc_aarch64< Base, 8u, Signed > :
|
|
829
883
|
public extra_operations_generic< Base, 8u, Signed >
|
|
830
884
|
{
|
|
831
|
-
|
|
832
|
-
|
|
885
|
+
using base_type = extra_operations_generic< Base, 8u, Signed >;
|
|
886
|
+
using storage_type = typename base_type::storage_type;
|
|
833
887
|
|
|
834
|
-
static BOOST_FORCEINLINE storage_type fetch_negate(storage_type volatile& storage, memory_order order)
|
|
888
|
+
static BOOST_FORCEINLINE storage_type fetch_negate(storage_type volatile& storage, memory_order order) noexcept
|
|
835
889
|
{
|
|
890
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
836
891
|
storage_type original, result;
|
|
837
|
-
uint32_t tmp;
|
|
892
|
+
std::uint32_t tmp;
|
|
838
893
|
|
|
839
894
|
#define BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN(ld_mo, st_mo)\
|
|
840
895
|
__asm__ __volatile__\
|
|
@@ -851,14 +906,16 @@ struct extra_operations_gcc_aarch64< Base, 8u, Signed > :
|
|
|
851
906
|
|
|
852
907
|
BOOST_ATOMIC_DETAIL_AARCH64_MO_SWITCH(order)
|
|
853
908
|
#undef BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN
|
|
909
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
854
910
|
|
|
855
911
|
return original;
|
|
856
912
|
}
|
|
857
913
|
|
|
858
|
-
static BOOST_FORCEINLINE storage_type negate(storage_type volatile& storage, memory_order order)
|
|
914
|
+
static BOOST_FORCEINLINE storage_type negate(storage_type volatile& storage, memory_order order) noexcept
|
|
859
915
|
{
|
|
916
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
860
917
|
storage_type result;
|
|
861
|
-
uint32_t tmp;
|
|
918
|
+
std::uint32_t tmp;
|
|
862
919
|
|
|
863
920
|
#define BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN(ld_mo, st_mo)\
|
|
864
921
|
__asm__ __volatile__\
|
|
@@ -875,16 +932,18 @@ struct extra_operations_gcc_aarch64< Base, 8u, Signed > :
|
|
|
875
932
|
|
|
876
933
|
BOOST_ATOMIC_DETAIL_AARCH64_MO_SWITCH(order)
|
|
877
934
|
#undef BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN
|
|
935
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
878
936
|
|
|
879
937
|
return result;
|
|
880
938
|
}
|
|
881
939
|
|
|
882
940
|
#if !defined(BOOST_ATOMIC_DETAIL_AARCH64_HAS_LSE)
|
|
883
941
|
|
|
884
|
-
static BOOST_FORCEINLINE storage_type add(storage_type volatile& storage, storage_type v, memory_order order)
|
|
942
|
+
static BOOST_FORCEINLINE storage_type add(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
885
943
|
{
|
|
944
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
886
945
|
storage_type result;
|
|
887
|
-
uint32_t tmp;
|
|
946
|
+
std::uint32_t tmp;
|
|
888
947
|
|
|
889
948
|
#define BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN(ld_mo, st_mo)\
|
|
890
949
|
__asm__ __volatile__\
|
|
@@ -901,14 +960,16 @@ struct extra_operations_gcc_aarch64< Base, 8u, Signed > :
|
|
|
901
960
|
|
|
902
961
|
BOOST_ATOMIC_DETAIL_AARCH64_MO_SWITCH(order)
|
|
903
962
|
#undef BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN
|
|
963
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
904
964
|
|
|
905
965
|
return result;
|
|
906
966
|
}
|
|
907
967
|
|
|
908
|
-
static BOOST_FORCEINLINE storage_type sub(storage_type volatile& storage, storage_type v, memory_order order)
|
|
968
|
+
static BOOST_FORCEINLINE storage_type sub(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
909
969
|
{
|
|
970
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
910
971
|
storage_type result;
|
|
911
|
-
uint32_t tmp;
|
|
972
|
+
std::uint32_t tmp;
|
|
912
973
|
|
|
913
974
|
#define BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN(ld_mo, st_mo)\
|
|
914
975
|
__asm__ __volatile__\
|
|
@@ -925,14 +986,16 @@ struct extra_operations_gcc_aarch64< Base, 8u, Signed > :
|
|
|
925
986
|
|
|
926
987
|
BOOST_ATOMIC_DETAIL_AARCH64_MO_SWITCH(order)
|
|
927
988
|
#undef BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN
|
|
989
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
928
990
|
|
|
929
991
|
return result;
|
|
930
992
|
}
|
|
931
993
|
|
|
932
|
-
static BOOST_FORCEINLINE storage_type bitwise_and(storage_type volatile& storage, storage_type v, memory_order order)
|
|
994
|
+
static BOOST_FORCEINLINE storage_type bitwise_and(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
933
995
|
{
|
|
996
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
934
997
|
storage_type result;
|
|
935
|
-
uint32_t tmp;
|
|
998
|
+
std::uint32_t tmp;
|
|
936
999
|
|
|
937
1000
|
#define BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN(ld_mo, st_mo)\
|
|
938
1001
|
__asm__ __volatile__\
|
|
@@ -949,14 +1012,16 @@ struct extra_operations_gcc_aarch64< Base, 8u, Signed > :
|
|
|
949
1012
|
|
|
950
1013
|
BOOST_ATOMIC_DETAIL_AARCH64_MO_SWITCH(order)
|
|
951
1014
|
#undef BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN
|
|
1015
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
952
1016
|
|
|
953
1017
|
return result;
|
|
954
1018
|
}
|
|
955
1019
|
|
|
956
|
-
static BOOST_FORCEINLINE storage_type bitwise_or(storage_type volatile& storage, storage_type v, memory_order order)
|
|
1020
|
+
static BOOST_FORCEINLINE storage_type bitwise_or(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
957
1021
|
{
|
|
1022
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
958
1023
|
storage_type result;
|
|
959
|
-
uint32_t tmp;
|
|
1024
|
+
std::uint32_t tmp;
|
|
960
1025
|
|
|
961
1026
|
#define BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN(ld_mo, st_mo)\
|
|
962
1027
|
__asm__ __volatile__\
|
|
@@ -973,14 +1038,16 @@ struct extra_operations_gcc_aarch64< Base, 8u, Signed > :
|
|
|
973
1038
|
|
|
974
1039
|
BOOST_ATOMIC_DETAIL_AARCH64_MO_SWITCH(order)
|
|
975
1040
|
#undef BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN
|
|
1041
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
976
1042
|
|
|
977
1043
|
return result;
|
|
978
1044
|
}
|
|
979
1045
|
|
|
980
|
-
static BOOST_FORCEINLINE storage_type bitwise_xor(storage_type volatile& storage, storage_type v, memory_order order)
|
|
1046
|
+
static BOOST_FORCEINLINE storage_type bitwise_xor(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
981
1047
|
{
|
|
1048
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
982
1049
|
storage_type result;
|
|
983
|
-
uint32_t tmp;
|
|
1050
|
+
std::uint32_t tmp;
|
|
984
1051
|
|
|
985
1052
|
#define BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN(ld_mo, st_mo)\
|
|
986
1053
|
__asm__ __volatile__\
|
|
@@ -997,14 +1064,16 @@ struct extra_operations_gcc_aarch64< Base, 8u, Signed > :
|
|
|
997
1064
|
|
|
998
1065
|
BOOST_ATOMIC_DETAIL_AARCH64_MO_SWITCH(order)
|
|
999
1066
|
#undef BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN
|
|
1067
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
1000
1068
|
|
|
1001
1069
|
return result;
|
|
1002
1070
|
}
|
|
1003
1071
|
|
|
1004
|
-
static BOOST_FORCEINLINE storage_type fetch_complement(storage_type volatile& storage, memory_order order)
|
|
1072
|
+
static BOOST_FORCEINLINE storage_type fetch_complement(storage_type volatile& storage, memory_order order) noexcept
|
|
1005
1073
|
{
|
|
1074
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
1006
1075
|
storage_type original, result;
|
|
1007
|
-
uint32_t tmp;
|
|
1076
|
+
std::uint32_t tmp;
|
|
1008
1077
|
|
|
1009
1078
|
#define BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN(ld_mo, st_mo)\
|
|
1010
1079
|
__asm__ __volatile__\
|
|
@@ -1021,14 +1090,16 @@ struct extra_operations_gcc_aarch64< Base, 8u, Signed > :
|
|
|
1021
1090
|
|
|
1022
1091
|
BOOST_ATOMIC_DETAIL_AARCH64_MO_SWITCH(order)
|
|
1023
1092
|
#undef BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN
|
|
1093
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
1024
1094
|
|
|
1025
1095
|
return original;
|
|
1026
1096
|
}
|
|
1027
1097
|
|
|
1028
|
-
static BOOST_FORCEINLINE storage_type bitwise_complement(storage_type volatile& storage, memory_order order)
|
|
1098
|
+
static BOOST_FORCEINLINE storage_type bitwise_complement(storage_type volatile& storage, memory_order order) noexcept
|
|
1029
1099
|
{
|
|
1100
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
1030
1101
|
storage_type result;
|
|
1031
|
-
uint32_t tmp;
|
|
1102
|
+
std::uint32_t tmp;
|
|
1032
1103
|
|
|
1033
1104
|
#define BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN(ld_mo, st_mo)\
|
|
1034
1105
|
__asm__ __volatile__\
|
|
@@ -1045,6 +1116,7 @@ struct extra_operations_gcc_aarch64< Base, 8u, Signed > :
|
|
|
1045
1116
|
|
|
1046
1117
|
BOOST_ATOMIC_DETAIL_AARCH64_MO_SWITCH(order)
|
|
1047
1118
|
#undef BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN
|
|
1119
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
1048
1120
|
|
|
1049
1121
|
return result;
|
|
1050
1122
|
}
|
|
@@ -1063,15 +1135,16 @@ template< typename Base, bool Signed >
|
|
|
1063
1135
|
struct extra_operations_gcc_aarch64< Base, 16u, Signed > :
|
|
1064
1136
|
public extra_operations_generic< Base, 16u, Signed >
|
|
1065
1137
|
{
|
|
1066
|
-
|
|
1067
|
-
|
|
1068
|
-
|
|
1138
|
+
using base_type = extra_operations_generic< Base, 16u, Signed >;
|
|
1139
|
+
using storage_type = typename base_type::storage_type;
|
|
1140
|
+
using storage_union = typename base_type::storage_union;
|
|
1069
1141
|
|
|
1070
|
-
static BOOST_FORCEINLINE storage_type fetch_negate(storage_type volatile& storage, memory_order order)
|
|
1142
|
+
static BOOST_FORCEINLINE storage_type fetch_negate(storage_type volatile& storage, memory_order order) noexcept
|
|
1071
1143
|
{
|
|
1144
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
1072
1145
|
storage_union original;
|
|
1073
1146
|
storage_union result;
|
|
1074
|
-
uint32_t tmp;
|
|
1147
|
+
std::uint32_t tmp;
|
|
1075
1148
|
|
|
1076
1149
|
#define BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN(ld_mo, st_mo)\
|
|
1077
1150
|
__asm__ __volatile__\
|
|
@@ -1093,14 +1166,16 @@ struct extra_operations_gcc_aarch64< Base, 16u, Signed > :
|
|
|
1093
1166
|
|
|
1094
1167
|
BOOST_ATOMIC_DETAIL_AARCH64_MO_SWITCH(order)
|
|
1095
1168
|
#undef BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN
|
|
1169
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
1096
1170
|
|
|
1097
1171
|
return original.as_storage;
|
|
1098
1172
|
}
|
|
1099
1173
|
|
|
1100
|
-
static BOOST_FORCEINLINE storage_type negate(storage_type volatile& storage, memory_order order)
|
|
1174
|
+
static BOOST_FORCEINLINE storage_type negate(storage_type volatile& storage, memory_order order) noexcept
|
|
1101
1175
|
{
|
|
1176
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
1102
1177
|
storage_union result;
|
|
1103
|
-
uint32_t tmp;
|
|
1178
|
+
std::uint32_t tmp;
|
|
1104
1179
|
|
|
1105
1180
|
#define BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN(ld_mo, st_mo)\
|
|
1106
1181
|
__asm__ __volatile__\
|
|
@@ -1121,15 +1196,17 @@ struct extra_operations_gcc_aarch64< Base, 16u, Signed > :
|
|
|
1121
1196
|
|
|
1122
1197
|
BOOST_ATOMIC_DETAIL_AARCH64_MO_SWITCH(order)
|
|
1123
1198
|
#undef BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN
|
|
1199
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
1124
1200
|
|
|
1125
1201
|
return result.as_storage;
|
|
1126
1202
|
}
|
|
1127
1203
|
|
|
1128
|
-
static BOOST_FORCEINLINE storage_type add(storage_type volatile& storage, storage_type v, memory_order order)
|
|
1204
|
+
static BOOST_FORCEINLINE storage_type add(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
1129
1205
|
{
|
|
1206
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
1130
1207
|
storage_union result;
|
|
1131
1208
|
storage_union value = { v };
|
|
1132
|
-
uint32_t tmp;
|
|
1209
|
+
std::uint32_t tmp;
|
|
1133
1210
|
|
|
1134
1211
|
#define BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN(ld_mo, st_mo)\
|
|
1135
1212
|
__asm__ __volatile__\
|
|
@@ -1148,15 +1225,17 @@ struct extra_operations_gcc_aarch64< Base, 16u, Signed > :
|
|
|
1148
1225
|
|
|
1149
1226
|
BOOST_ATOMIC_DETAIL_AARCH64_MO_SWITCH(order)
|
|
1150
1227
|
#undef BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN
|
|
1228
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
1151
1229
|
|
|
1152
1230
|
return result.as_storage;
|
|
1153
1231
|
}
|
|
1154
1232
|
|
|
1155
|
-
static BOOST_FORCEINLINE storage_type sub(storage_type volatile& storage, storage_type v, memory_order order)
|
|
1233
|
+
static BOOST_FORCEINLINE storage_type sub(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
1156
1234
|
{
|
|
1235
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
1157
1236
|
storage_union result;
|
|
1158
1237
|
storage_union value = { v };
|
|
1159
|
-
uint32_t tmp;
|
|
1238
|
+
std::uint32_t tmp;
|
|
1160
1239
|
|
|
1161
1240
|
#define BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN(ld_mo, st_mo)\
|
|
1162
1241
|
__asm__ __volatile__\
|
|
@@ -1175,15 +1254,17 @@ struct extra_operations_gcc_aarch64< Base, 16u, Signed > :
|
|
|
1175
1254
|
|
|
1176
1255
|
BOOST_ATOMIC_DETAIL_AARCH64_MO_SWITCH(order)
|
|
1177
1256
|
#undef BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN
|
|
1257
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
1178
1258
|
|
|
1179
1259
|
return result.as_storage;
|
|
1180
1260
|
}
|
|
1181
1261
|
|
|
1182
|
-
static BOOST_FORCEINLINE storage_type bitwise_and(storage_type volatile& storage, storage_type v, memory_order order)
|
|
1262
|
+
static BOOST_FORCEINLINE storage_type bitwise_and(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
1183
1263
|
{
|
|
1264
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
1184
1265
|
storage_union result;
|
|
1185
1266
|
storage_union value = { v };
|
|
1186
|
-
uint32_t tmp;
|
|
1267
|
+
std::uint32_t tmp;
|
|
1187
1268
|
|
|
1188
1269
|
#define BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN(ld_mo, st_mo)\
|
|
1189
1270
|
__asm__ __volatile__\
|
|
@@ -1202,15 +1283,17 @@ struct extra_operations_gcc_aarch64< Base, 16u, Signed > :
|
|
|
1202
1283
|
|
|
1203
1284
|
BOOST_ATOMIC_DETAIL_AARCH64_MO_SWITCH(order)
|
|
1204
1285
|
#undef BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN
|
|
1286
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
1205
1287
|
|
|
1206
1288
|
return result.as_storage;
|
|
1207
1289
|
}
|
|
1208
1290
|
|
|
1209
|
-
static BOOST_FORCEINLINE storage_type bitwise_or(storage_type volatile& storage, storage_type v, memory_order order)
|
|
1291
|
+
static BOOST_FORCEINLINE storage_type bitwise_or(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
1210
1292
|
{
|
|
1293
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
1211
1294
|
storage_union result;
|
|
1212
1295
|
storage_union value = { v };
|
|
1213
|
-
uint32_t tmp;
|
|
1296
|
+
std::uint32_t tmp;
|
|
1214
1297
|
|
|
1215
1298
|
#define BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN(ld_mo, st_mo)\
|
|
1216
1299
|
__asm__ __volatile__\
|
|
@@ -1229,15 +1312,17 @@ struct extra_operations_gcc_aarch64< Base, 16u, Signed > :
|
|
|
1229
1312
|
|
|
1230
1313
|
BOOST_ATOMIC_DETAIL_AARCH64_MO_SWITCH(order)
|
|
1231
1314
|
#undef BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN
|
|
1315
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
1232
1316
|
|
|
1233
1317
|
return result.as_storage;
|
|
1234
1318
|
}
|
|
1235
1319
|
|
|
1236
|
-
static BOOST_FORCEINLINE storage_type bitwise_xor(storage_type volatile& storage, storage_type v, memory_order order)
|
|
1320
|
+
static BOOST_FORCEINLINE storage_type bitwise_xor(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
1237
1321
|
{
|
|
1322
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
1238
1323
|
storage_union result;
|
|
1239
1324
|
storage_union value = { v };
|
|
1240
|
-
uint32_t tmp;
|
|
1325
|
+
std::uint32_t tmp;
|
|
1241
1326
|
|
|
1242
1327
|
#define BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN(ld_mo, st_mo)\
|
|
1243
1328
|
__asm__ __volatile__\
|
|
@@ -1256,15 +1341,17 @@ struct extra_operations_gcc_aarch64< Base, 16u, Signed > :
|
|
|
1256
1341
|
|
|
1257
1342
|
BOOST_ATOMIC_DETAIL_AARCH64_MO_SWITCH(order)
|
|
1258
1343
|
#undef BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN
|
|
1344
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
1259
1345
|
|
|
1260
1346
|
return result.as_storage;
|
|
1261
1347
|
}
|
|
1262
1348
|
|
|
1263
|
-
static BOOST_FORCEINLINE storage_type fetch_complement(storage_type volatile& storage, memory_order order)
|
|
1349
|
+
static BOOST_FORCEINLINE storage_type fetch_complement(storage_type volatile& storage, memory_order order) noexcept
|
|
1264
1350
|
{
|
|
1351
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
1265
1352
|
storage_union original;
|
|
1266
1353
|
storage_union result;
|
|
1267
|
-
uint32_t tmp;
|
|
1354
|
+
std::uint32_t tmp;
|
|
1268
1355
|
|
|
1269
1356
|
#define BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN(ld_mo, st_mo)\
|
|
1270
1357
|
__asm__ __volatile__\
|
|
@@ -1284,14 +1371,16 @@ struct extra_operations_gcc_aarch64< Base, 16u, Signed > :
|
|
|
1284
1371
|
|
|
1285
1372
|
BOOST_ATOMIC_DETAIL_AARCH64_MO_SWITCH(order)
|
|
1286
1373
|
#undef BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN
|
|
1374
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
1287
1375
|
|
|
1288
1376
|
return original.as_storage;
|
|
1289
1377
|
}
|
|
1290
1378
|
|
|
1291
|
-
static BOOST_FORCEINLINE storage_type bitwise_complement(storage_type volatile& storage, memory_order order)
|
|
1379
|
+
static BOOST_FORCEINLINE storage_type bitwise_complement(storage_type volatile& storage, memory_order order) noexcept
|
|
1292
1380
|
{
|
|
1381
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
1293
1382
|
storage_union result;
|
|
1294
|
-
uint32_t tmp;
|
|
1383
|
+
std::uint32_t tmp;
|
|
1295
1384
|
|
|
1296
1385
|
#define BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN(ld_mo, st_mo)\
|
|
1297
1386
|
__asm__ __volatile__\
|
|
@@ -1310,6 +1399,7 @@ struct extra_operations_gcc_aarch64< Base, 16u, Signed > :
|
|
|
1310
1399
|
|
|
1311
1400
|
BOOST_ATOMIC_DETAIL_AARCH64_MO_SWITCH(order)
|
|
1312
1401
|
#undef BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN
|
|
1402
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
1313
1403
|
|
|
1314
1404
|
return result.as_storage;
|
|
1315
1405
|
}
|