passenger 6.0.27 → 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 +42 -2
- data/CONTRIBUTORS +2 -0
- data/Rakefile +6 -13
- data/bin/passenger-install-apache2-module +21 -22
- data/bin/passenger-install-nginx-module +50 -47
- data/bin/passenger-status +9 -10
- data/build/common_library.rb +4 -4
- data/build/support/cxx_dependency_map.rb +3 -621
- 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/index_cxx_dependencies.rb +4 -0
- data/dev/ruby_server.rb +1 -1
- data/package.json +1 -1
- data/src/agent/Core/ApplicationPool/Implementation.cpp +1 -1
- data/src/agent/Core/ApplicationPool/Socket.h +3 -3
- data/src/agent/Core/ApplicationPool/TestSession.h +3 -4
- data/src/agent/Core/Config.h +1 -6
- data/src/agent/Core/Controller/Config.h +1 -1
- data/src/agent/Core/CoreMain.cpp +1 -0
- data/src/agent/Core/SecurityUpdateChecker.h +10 -1
- data/src/agent/Core/SpawningKit/Exceptions.h +0 -1
- data/src/agent/Core/SpawningKit/Handshake/Perform.h +13 -2
- data/src/agent/Shared/Fundamentals/AbortHandler.cpp +23 -5
- data/src/agent/Shared/Fundamentals/AbortHandler.h +10 -22
- data/src/agent/Shared/Fundamentals/Initialization.cpp +1 -0
- data/src/agent/Watchdog/Config.h +1 -1
- data/src/apache2_module/ConfigGeneral/AutoGeneratedDefinitions.cpp +5 -0
- data/src/apache2_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.cpp +5 -0
- data/src/apache2_module/ConfigGeneral/AutoGeneratedSetterFuncs.cpp +14 -0
- data/src/apache2_module/DirConfig/AutoGeneratedCreateFunction.cpp +3 -0
- data/src/apache2_module/DirConfig/AutoGeneratedHeaderSerialization.cpp +3 -0
- data/src/apache2_module/DirConfig/AutoGeneratedManifestGeneration.cpp +11 -0
- data/src/apache2_module/DirConfig/AutoGeneratedMergeFunction.cpp +7 -0
- data/src/apache2_module/DirConfig/AutoGeneratedStruct.h +17 -0
- data/src/apache2_module/Hooks.cpp +0 -6
- data/src/cxx_supportlib/ConfigKit/IN_PRACTICE.md +2 -12
- data/src/cxx_supportlib/ConfigKit/Store.h +1 -6
- data/src/cxx_supportlib/Constants.h +1 -1
- data/src/cxx_supportlib/DataStructures/StringKeyTable.h +1 -7
- data/src/cxx_supportlib/Exceptions.cpp +178 -0
- data/src/cxx_supportlib/Exceptions.h +62 -177
- data/src/cxx_supportlib/IOTools/IOUtils.cpp +255 -228
- data/src/cxx_supportlib/IOTools/IOUtils.h +84 -121
- data/src/cxx_supportlib/ServerKit/Config.h +1 -6
- data/src/cxx_supportlib/ServerKit/FileBufferedChannel.h +1 -1
- data/src/cxx_supportlib/StaticString.h +1 -6
- data/src/cxx_supportlib/Utils/Curl.h +1 -6
- data/src/cxx_supportlib/Utils/ScopeGuard.h +0 -32
- data/src/cxx_supportlib/oxt/implementation.cpp +2 -2
- data/src/cxx_supportlib/oxt/spin_lock.hpp +94 -23
- 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 +12 -23
- data/src/ruby_supportlib/phusion_passenger/platform_info/cxx_portability.rb +31 -32
- data/src/ruby_supportlib/phusion_passenger/rack_handler.rb +2 -2
- 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 +27 -104
- data/src/cxx_supportlib/oxt/detail/spin_lock_darwin.hpp +0 -75
- data/src/cxx_supportlib/oxt/detail/spin_lock_gcc_x86.hpp +0 -85
- data/src/cxx_supportlib/oxt/detail/spin_lock_portable.hpp +0 -38
- data/src/cxx_supportlib/oxt/detail/spin_lock_pthreads.hpp +0 -111
- 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) 2017
|
|
6
|
+
* Copyright (c) 2017-2025 Andrey Semashev
|
|
7
7
|
*/
|
|
8
8
|
/*!
|
|
9
9
|
* \file atomic/detail/extra_ops_gcc_ppc.hpp
|
|
@@ -37,50 +37,50 @@ template< typename Base >
|
|
|
37
37
|
struct extra_operations_gcc_ppc_common :
|
|
38
38
|
public Base
|
|
39
39
|
{
|
|
40
|
-
|
|
41
|
-
|
|
40
|
+
using base_type = Base;
|
|
41
|
+
using storage_type = typename base_type::storage_type;
|
|
42
42
|
|
|
43
|
-
static BOOST_FORCEINLINE void opaque_negate(storage_type volatile& storage, memory_order order)
|
|
43
|
+
static BOOST_FORCEINLINE void opaque_negate(storage_type volatile& storage, memory_order order) noexcept
|
|
44
44
|
{
|
|
45
45
|
base_type::fetch_negate(storage, order);
|
|
46
46
|
}
|
|
47
47
|
|
|
48
|
-
static BOOST_FORCEINLINE void opaque_complement(storage_type volatile& storage, memory_order order)
|
|
48
|
+
static BOOST_FORCEINLINE void opaque_complement(storage_type volatile& storage, memory_order order) noexcept
|
|
49
49
|
{
|
|
50
50
|
base_type::fetch_complement(storage, order);
|
|
51
51
|
}
|
|
52
52
|
|
|
53
|
-
static BOOST_FORCEINLINE bool negate_and_test(storage_type volatile& storage, memory_order order)
|
|
53
|
+
static BOOST_FORCEINLINE bool negate_and_test(storage_type volatile& storage, memory_order order) noexcept
|
|
54
54
|
{
|
|
55
55
|
return !!base_type::negate(storage, order);
|
|
56
56
|
}
|
|
57
57
|
|
|
58
|
-
static BOOST_FORCEINLINE bool add_and_test(storage_type volatile& storage, storage_type v, memory_order order)
|
|
58
|
+
static BOOST_FORCEINLINE bool add_and_test(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
59
59
|
{
|
|
60
60
|
return !!base_type::add(storage, v, order);
|
|
61
61
|
}
|
|
62
62
|
|
|
63
|
-
static BOOST_FORCEINLINE bool sub_and_test(storage_type volatile& storage, storage_type v, memory_order order)
|
|
63
|
+
static BOOST_FORCEINLINE bool sub_and_test(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
64
64
|
{
|
|
65
65
|
return !!base_type::sub(storage, v, order);
|
|
66
66
|
}
|
|
67
67
|
|
|
68
|
-
static BOOST_FORCEINLINE bool and_and_test(storage_type volatile& storage, storage_type v, memory_order order)
|
|
68
|
+
static BOOST_FORCEINLINE bool and_and_test(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
69
69
|
{
|
|
70
70
|
return !!base_type::bitwise_and(storage, v, order);
|
|
71
71
|
}
|
|
72
72
|
|
|
73
|
-
static BOOST_FORCEINLINE bool or_and_test(storage_type volatile& storage, storage_type v, memory_order order)
|
|
73
|
+
static BOOST_FORCEINLINE bool or_and_test(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
74
74
|
{
|
|
75
75
|
return !!base_type::bitwise_or(storage, v, order);
|
|
76
76
|
}
|
|
77
77
|
|
|
78
|
-
static BOOST_FORCEINLINE bool xor_and_test(storage_type volatile& storage, storage_type v, memory_order order)
|
|
78
|
+
static BOOST_FORCEINLINE bool xor_and_test(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
79
79
|
{
|
|
80
80
|
return !!base_type::bitwise_xor(storage, v, order);
|
|
81
81
|
}
|
|
82
82
|
|
|
83
|
-
static BOOST_FORCEINLINE bool complement_and_test(storage_type volatile& storage, memory_order order)
|
|
83
|
+
static BOOST_FORCEINLINE bool complement_and_test(storage_type volatile& storage, memory_order order) noexcept
|
|
84
84
|
{
|
|
85
85
|
return !!base_type::bitwise_complement(storage, order);
|
|
86
86
|
}
|
|
@@ -95,11 +95,12 @@ template< typename Base, bool Signed >
|
|
|
95
95
|
struct extra_operations_gcc_ppc< Base, 1u, Signed > :
|
|
96
96
|
public extra_operations_generic< Base, 1u, Signed >
|
|
97
97
|
{
|
|
98
|
-
|
|
99
|
-
|
|
98
|
+
using base_type = extra_operations_generic< Base, 1u, Signed >;
|
|
99
|
+
using storage_type = typename base_type::storage_type;
|
|
100
100
|
|
|
101
|
-
static BOOST_FORCEINLINE storage_type fetch_negate(storage_type volatile& storage, memory_order order)
|
|
101
|
+
static BOOST_FORCEINLINE storage_type fetch_negate(storage_type volatile& storage, memory_order order) noexcept
|
|
102
102
|
{
|
|
103
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
103
104
|
core_arch_operations_gcc_ppc_base::fence_before(order);
|
|
104
105
|
storage_type original, result;
|
|
105
106
|
__asm__ __volatile__
|
|
@@ -114,11 +115,13 @@ struct extra_operations_gcc_ppc< Base, 1u, Signed > :
|
|
|
114
115
|
: BOOST_ATOMIC_DETAIL_ASM_CLOBBER_CC
|
|
115
116
|
);
|
|
116
117
|
core_arch_operations_gcc_ppc_base::fence_after(order);
|
|
118
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
117
119
|
return original;
|
|
118
120
|
}
|
|
119
121
|
|
|
120
|
-
static BOOST_FORCEINLINE storage_type negate(storage_type volatile& storage, memory_order order)
|
|
122
|
+
static BOOST_FORCEINLINE storage_type negate(storage_type volatile& storage, memory_order order) noexcept
|
|
121
123
|
{
|
|
124
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
122
125
|
core_arch_operations_gcc_ppc_base::fence_before(order);
|
|
123
126
|
storage_type original, result;
|
|
124
127
|
__asm__ __volatile__
|
|
@@ -133,13 +136,15 @@ struct extra_operations_gcc_ppc< Base, 1u, Signed > :
|
|
|
133
136
|
: BOOST_ATOMIC_DETAIL_ASM_CLOBBER_CC
|
|
134
137
|
);
|
|
135
138
|
core_arch_operations_gcc_ppc_base::fence_after(order);
|
|
139
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
136
140
|
return result;
|
|
137
141
|
}
|
|
138
142
|
|
|
139
|
-
static BOOST_FORCEINLINE storage_type add(storage_type volatile& storage, storage_type v, memory_order order)
|
|
143
|
+
static BOOST_FORCEINLINE storage_type add(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
140
144
|
{
|
|
141
|
-
|
|
145
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
142
146
|
core_arch_operations_gcc_ppc_base::fence_before(order);
|
|
147
|
+
storage_type original, result;
|
|
143
148
|
__asm__ __volatile__
|
|
144
149
|
(
|
|
145
150
|
BOOST_ATOMIC_DETAIL_PPC_ASM_LABEL("1")
|
|
@@ -152,13 +157,15 @@ struct extra_operations_gcc_ppc< Base, 1u, Signed > :
|
|
|
152
157
|
: BOOST_ATOMIC_DETAIL_ASM_CLOBBER_CC
|
|
153
158
|
);
|
|
154
159
|
core_arch_operations_gcc_ppc_base::fence_after(order);
|
|
160
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
155
161
|
return result;
|
|
156
162
|
}
|
|
157
163
|
|
|
158
|
-
static BOOST_FORCEINLINE storage_type sub(storage_type volatile& storage, storage_type v, memory_order order)
|
|
164
|
+
static BOOST_FORCEINLINE storage_type sub(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
159
165
|
{
|
|
160
|
-
|
|
166
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
161
167
|
core_arch_operations_gcc_ppc_base::fence_before(order);
|
|
168
|
+
storage_type original, result;
|
|
162
169
|
__asm__ __volatile__
|
|
163
170
|
(
|
|
164
171
|
BOOST_ATOMIC_DETAIL_PPC_ASM_LABEL("1")
|
|
@@ -171,13 +178,15 @@ struct extra_operations_gcc_ppc< Base, 1u, Signed > :
|
|
|
171
178
|
: BOOST_ATOMIC_DETAIL_ASM_CLOBBER_CC
|
|
172
179
|
);
|
|
173
180
|
core_arch_operations_gcc_ppc_base::fence_after(order);
|
|
181
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
174
182
|
return result;
|
|
175
183
|
}
|
|
176
184
|
|
|
177
|
-
static BOOST_FORCEINLINE storage_type bitwise_and(storage_type volatile& storage, storage_type v, memory_order order)
|
|
185
|
+
static BOOST_FORCEINLINE storage_type bitwise_and(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
178
186
|
{
|
|
179
|
-
|
|
187
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
180
188
|
core_arch_operations_gcc_ppc_base::fence_before(order);
|
|
189
|
+
storage_type original, result;
|
|
181
190
|
__asm__ __volatile__
|
|
182
191
|
(
|
|
183
192
|
BOOST_ATOMIC_DETAIL_PPC_ASM_LABEL("1")
|
|
@@ -190,13 +199,15 @@ struct extra_operations_gcc_ppc< Base, 1u, Signed > :
|
|
|
190
199
|
: BOOST_ATOMIC_DETAIL_ASM_CLOBBER_CC
|
|
191
200
|
);
|
|
192
201
|
core_arch_operations_gcc_ppc_base::fence_after(order);
|
|
202
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
193
203
|
return result;
|
|
194
204
|
}
|
|
195
205
|
|
|
196
|
-
static BOOST_FORCEINLINE storage_type bitwise_or(storage_type volatile& storage, storage_type v, memory_order order)
|
|
206
|
+
static BOOST_FORCEINLINE storage_type bitwise_or(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
197
207
|
{
|
|
198
|
-
|
|
208
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
199
209
|
core_arch_operations_gcc_ppc_base::fence_before(order);
|
|
210
|
+
storage_type original, result;
|
|
200
211
|
__asm__ __volatile__
|
|
201
212
|
(
|
|
202
213
|
BOOST_ATOMIC_DETAIL_PPC_ASM_LABEL("1")
|
|
@@ -209,13 +220,15 @@ struct extra_operations_gcc_ppc< Base, 1u, Signed > :
|
|
|
209
220
|
: BOOST_ATOMIC_DETAIL_ASM_CLOBBER_CC
|
|
210
221
|
);
|
|
211
222
|
core_arch_operations_gcc_ppc_base::fence_after(order);
|
|
223
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
212
224
|
return result;
|
|
213
225
|
}
|
|
214
226
|
|
|
215
|
-
static BOOST_FORCEINLINE storage_type bitwise_xor(storage_type volatile& storage, storage_type v, memory_order order)
|
|
227
|
+
static BOOST_FORCEINLINE storage_type bitwise_xor(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
216
228
|
{
|
|
217
|
-
|
|
229
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
218
230
|
core_arch_operations_gcc_ppc_base::fence_before(order);
|
|
231
|
+
storage_type original, result;
|
|
219
232
|
__asm__ __volatile__
|
|
220
233
|
(
|
|
221
234
|
BOOST_ATOMIC_DETAIL_PPC_ASM_LABEL("1")
|
|
@@ -228,11 +241,13 @@ struct extra_operations_gcc_ppc< Base, 1u, Signed > :
|
|
|
228
241
|
: BOOST_ATOMIC_DETAIL_ASM_CLOBBER_CC
|
|
229
242
|
);
|
|
230
243
|
core_arch_operations_gcc_ppc_base::fence_after(order);
|
|
244
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
231
245
|
return result;
|
|
232
246
|
}
|
|
233
247
|
|
|
234
|
-
static BOOST_FORCEINLINE storage_type fetch_complement(storage_type volatile& storage, memory_order order)
|
|
248
|
+
static BOOST_FORCEINLINE storage_type fetch_complement(storage_type volatile& storage, memory_order order) noexcept
|
|
235
249
|
{
|
|
250
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
236
251
|
core_arch_operations_gcc_ppc_base::fence_before(order);
|
|
237
252
|
storage_type original, result;
|
|
238
253
|
__asm__ __volatile__
|
|
@@ -247,11 +262,13 @@ struct extra_operations_gcc_ppc< Base, 1u, Signed > :
|
|
|
247
262
|
: BOOST_ATOMIC_DETAIL_ASM_CLOBBER_CC
|
|
248
263
|
);
|
|
249
264
|
core_arch_operations_gcc_ppc_base::fence_after(order);
|
|
265
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
250
266
|
return original;
|
|
251
267
|
}
|
|
252
268
|
|
|
253
|
-
static BOOST_FORCEINLINE storage_type bitwise_complement(storage_type volatile& storage, memory_order order)
|
|
269
|
+
static BOOST_FORCEINLINE storage_type bitwise_complement(storage_type volatile& storage, memory_order order) noexcept
|
|
254
270
|
{
|
|
271
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
255
272
|
core_arch_operations_gcc_ppc_base::fence_before(order);
|
|
256
273
|
storage_type original, result;
|
|
257
274
|
__asm__ __volatile__
|
|
@@ -266,6 +283,7 @@ struct extra_operations_gcc_ppc< Base, 1u, Signed > :
|
|
|
266
283
|
: BOOST_ATOMIC_DETAIL_ASM_CLOBBER_CC
|
|
267
284
|
);
|
|
268
285
|
core_arch_operations_gcc_ppc_base::fence_after(order);
|
|
286
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
269
287
|
return result;
|
|
270
288
|
}
|
|
271
289
|
};
|
|
@@ -284,11 +302,12 @@ template< typename Base, bool Signed >
|
|
|
284
302
|
struct extra_operations_gcc_ppc< Base, 2u, Signed > :
|
|
285
303
|
public extra_operations_generic< Base, 2u, Signed >
|
|
286
304
|
{
|
|
287
|
-
|
|
288
|
-
|
|
305
|
+
using base_type = extra_operations_generic< Base, 2u, Signed >;
|
|
306
|
+
using storage_type = typename base_type::storage_type;
|
|
289
307
|
|
|
290
|
-
static BOOST_FORCEINLINE storage_type fetch_negate(storage_type volatile& storage, memory_order order)
|
|
308
|
+
static BOOST_FORCEINLINE storage_type fetch_negate(storage_type volatile& storage, memory_order order) noexcept
|
|
291
309
|
{
|
|
310
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
292
311
|
core_arch_operations_gcc_ppc_base::fence_before(order);
|
|
293
312
|
storage_type original, result;
|
|
294
313
|
__asm__ __volatile__
|
|
@@ -303,11 +322,13 @@ struct extra_operations_gcc_ppc< Base, 2u, Signed > :
|
|
|
303
322
|
: BOOST_ATOMIC_DETAIL_ASM_CLOBBER_CC
|
|
304
323
|
);
|
|
305
324
|
core_arch_operations_gcc_ppc_base::fence_after(order);
|
|
325
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
306
326
|
return original;
|
|
307
327
|
}
|
|
308
328
|
|
|
309
|
-
static BOOST_FORCEINLINE storage_type negate(storage_type volatile& storage, memory_order order)
|
|
329
|
+
static BOOST_FORCEINLINE storage_type negate(storage_type volatile& storage, memory_order order) noexcept
|
|
310
330
|
{
|
|
331
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
311
332
|
core_arch_operations_gcc_ppc_base::fence_before(order);
|
|
312
333
|
storage_type original, result;
|
|
313
334
|
__asm__ __volatile__
|
|
@@ -322,13 +343,15 @@ struct extra_operations_gcc_ppc< Base, 2u, Signed > :
|
|
|
322
343
|
: BOOST_ATOMIC_DETAIL_ASM_CLOBBER_CC
|
|
323
344
|
);
|
|
324
345
|
core_arch_operations_gcc_ppc_base::fence_after(order);
|
|
346
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
325
347
|
return result;
|
|
326
348
|
}
|
|
327
349
|
|
|
328
|
-
static BOOST_FORCEINLINE storage_type add(storage_type volatile& storage, storage_type v, memory_order order)
|
|
350
|
+
static BOOST_FORCEINLINE storage_type add(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
329
351
|
{
|
|
330
|
-
|
|
352
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
331
353
|
core_arch_operations_gcc_ppc_base::fence_before(order);
|
|
354
|
+
storage_type original, result;
|
|
332
355
|
__asm__ __volatile__
|
|
333
356
|
(
|
|
334
357
|
BOOST_ATOMIC_DETAIL_PPC_ASM_LABEL("1")
|
|
@@ -341,13 +364,15 @@ struct extra_operations_gcc_ppc< Base, 2u, Signed > :
|
|
|
341
364
|
: BOOST_ATOMIC_DETAIL_ASM_CLOBBER_CC
|
|
342
365
|
);
|
|
343
366
|
core_arch_operations_gcc_ppc_base::fence_after(order);
|
|
367
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
344
368
|
return result;
|
|
345
369
|
}
|
|
346
370
|
|
|
347
|
-
static BOOST_FORCEINLINE storage_type sub(storage_type volatile& storage, storage_type v, memory_order order)
|
|
371
|
+
static BOOST_FORCEINLINE storage_type sub(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
348
372
|
{
|
|
349
|
-
|
|
373
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
350
374
|
core_arch_operations_gcc_ppc_base::fence_before(order);
|
|
375
|
+
storage_type original, result;
|
|
351
376
|
__asm__ __volatile__
|
|
352
377
|
(
|
|
353
378
|
BOOST_ATOMIC_DETAIL_PPC_ASM_LABEL("1")
|
|
@@ -360,13 +385,15 @@ struct extra_operations_gcc_ppc< Base, 2u, Signed > :
|
|
|
360
385
|
: BOOST_ATOMIC_DETAIL_ASM_CLOBBER_CC
|
|
361
386
|
);
|
|
362
387
|
core_arch_operations_gcc_ppc_base::fence_after(order);
|
|
388
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
363
389
|
return result;
|
|
364
390
|
}
|
|
365
391
|
|
|
366
|
-
static BOOST_FORCEINLINE storage_type bitwise_and(storage_type volatile& storage, storage_type v, memory_order order)
|
|
392
|
+
static BOOST_FORCEINLINE storage_type bitwise_and(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
367
393
|
{
|
|
368
|
-
|
|
394
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
369
395
|
core_arch_operations_gcc_ppc_base::fence_before(order);
|
|
396
|
+
storage_type original, result;
|
|
370
397
|
__asm__ __volatile__
|
|
371
398
|
(
|
|
372
399
|
BOOST_ATOMIC_DETAIL_PPC_ASM_LABEL("1")
|
|
@@ -379,13 +406,15 @@ struct extra_operations_gcc_ppc< Base, 2u, Signed > :
|
|
|
379
406
|
: BOOST_ATOMIC_DETAIL_ASM_CLOBBER_CC
|
|
380
407
|
);
|
|
381
408
|
core_arch_operations_gcc_ppc_base::fence_after(order);
|
|
409
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
382
410
|
return result;
|
|
383
411
|
}
|
|
384
412
|
|
|
385
|
-
static BOOST_FORCEINLINE storage_type bitwise_or(storage_type volatile& storage, storage_type v, memory_order order)
|
|
413
|
+
static BOOST_FORCEINLINE storage_type bitwise_or(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
386
414
|
{
|
|
387
|
-
|
|
415
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
388
416
|
core_arch_operations_gcc_ppc_base::fence_before(order);
|
|
417
|
+
storage_type original, result;
|
|
389
418
|
__asm__ __volatile__
|
|
390
419
|
(
|
|
391
420
|
BOOST_ATOMIC_DETAIL_PPC_ASM_LABEL("1")
|
|
@@ -398,13 +427,15 @@ struct extra_operations_gcc_ppc< Base, 2u, Signed > :
|
|
|
398
427
|
: BOOST_ATOMIC_DETAIL_ASM_CLOBBER_CC
|
|
399
428
|
);
|
|
400
429
|
core_arch_operations_gcc_ppc_base::fence_after(order);
|
|
430
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
401
431
|
return result;
|
|
402
432
|
}
|
|
403
433
|
|
|
404
|
-
static BOOST_FORCEINLINE storage_type bitwise_xor(storage_type volatile& storage, storage_type v, memory_order order)
|
|
434
|
+
static BOOST_FORCEINLINE storage_type bitwise_xor(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
405
435
|
{
|
|
406
|
-
|
|
436
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
407
437
|
core_arch_operations_gcc_ppc_base::fence_before(order);
|
|
438
|
+
storage_type original, result;
|
|
408
439
|
__asm__ __volatile__
|
|
409
440
|
(
|
|
410
441
|
BOOST_ATOMIC_DETAIL_PPC_ASM_LABEL("1")
|
|
@@ -417,11 +448,13 @@ struct extra_operations_gcc_ppc< Base, 2u, Signed > :
|
|
|
417
448
|
: BOOST_ATOMIC_DETAIL_ASM_CLOBBER_CC
|
|
418
449
|
);
|
|
419
450
|
core_arch_operations_gcc_ppc_base::fence_after(order);
|
|
451
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
420
452
|
return result;
|
|
421
453
|
}
|
|
422
454
|
|
|
423
|
-
static BOOST_FORCEINLINE storage_type fetch_complement(storage_type volatile& storage, memory_order order)
|
|
455
|
+
static BOOST_FORCEINLINE storage_type fetch_complement(storage_type volatile& storage, memory_order order) noexcept
|
|
424
456
|
{
|
|
457
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
425
458
|
core_arch_operations_gcc_ppc_base::fence_before(order);
|
|
426
459
|
storage_type original, result;
|
|
427
460
|
__asm__ __volatile__
|
|
@@ -436,11 +469,13 @@ struct extra_operations_gcc_ppc< Base, 2u, Signed > :
|
|
|
436
469
|
: BOOST_ATOMIC_DETAIL_ASM_CLOBBER_CC
|
|
437
470
|
);
|
|
438
471
|
core_arch_operations_gcc_ppc_base::fence_after(order);
|
|
472
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
439
473
|
return original;
|
|
440
474
|
}
|
|
441
475
|
|
|
442
|
-
static BOOST_FORCEINLINE storage_type bitwise_complement(storage_type volatile& storage, memory_order order)
|
|
476
|
+
static BOOST_FORCEINLINE storage_type bitwise_complement(storage_type volatile& storage, memory_order order) noexcept
|
|
443
477
|
{
|
|
478
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
444
479
|
core_arch_operations_gcc_ppc_base::fence_before(order);
|
|
445
480
|
storage_type original, result;
|
|
446
481
|
__asm__ __volatile__
|
|
@@ -455,6 +490,7 @@ struct extra_operations_gcc_ppc< Base, 2u, Signed > :
|
|
|
455
490
|
: BOOST_ATOMIC_DETAIL_ASM_CLOBBER_CC
|
|
456
491
|
);
|
|
457
492
|
core_arch_operations_gcc_ppc_base::fence_after(order);
|
|
493
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
458
494
|
return result;
|
|
459
495
|
}
|
|
460
496
|
};
|
|
@@ -465,11 +501,12 @@ template< typename Base, bool Signed >
|
|
|
465
501
|
struct extra_operations_gcc_ppc< Base, 4u, Signed > :
|
|
466
502
|
public extra_operations_generic< Base, 4u, Signed >
|
|
467
503
|
{
|
|
468
|
-
|
|
469
|
-
|
|
504
|
+
using base_type = extra_operations_generic< Base, 4u, Signed >;
|
|
505
|
+
using storage_type = typename base_type::storage_type;
|
|
470
506
|
|
|
471
|
-
static BOOST_FORCEINLINE storage_type fetch_negate(storage_type volatile& storage, memory_order order)
|
|
507
|
+
static BOOST_FORCEINLINE storage_type fetch_negate(storage_type volatile& storage, memory_order order) noexcept
|
|
472
508
|
{
|
|
509
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
473
510
|
core_arch_operations_gcc_ppc_base::fence_before(order);
|
|
474
511
|
storage_type original, result;
|
|
475
512
|
__asm__ __volatile__
|
|
@@ -484,11 +521,13 @@ struct extra_operations_gcc_ppc< Base, 4u, Signed > :
|
|
|
484
521
|
: BOOST_ATOMIC_DETAIL_ASM_CLOBBER_CC
|
|
485
522
|
);
|
|
486
523
|
core_arch_operations_gcc_ppc_base::fence_after(order);
|
|
524
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
487
525
|
return original;
|
|
488
526
|
}
|
|
489
527
|
|
|
490
|
-
static BOOST_FORCEINLINE storage_type negate(storage_type volatile& storage, memory_order order)
|
|
528
|
+
static BOOST_FORCEINLINE storage_type negate(storage_type volatile& storage, memory_order order) noexcept
|
|
491
529
|
{
|
|
530
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
492
531
|
core_arch_operations_gcc_ppc_base::fence_before(order);
|
|
493
532
|
storage_type original, result;
|
|
494
533
|
__asm__ __volatile__
|
|
@@ -503,13 +542,15 @@ struct extra_operations_gcc_ppc< Base, 4u, Signed > :
|
|
|
503
542
|
: BOOST_ATOMIC_DETAIL_ASM_CLOBBER_CC
|
|
504
543
|
);
|
|
505
544
|
core_arch_operations_gcc_ppc_base::fence_after(order);
|
|
545
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
506
546
|
return result;
|
|
507
547
|
}
|
|
508
548
|
|
|
509
|
-
static BOOST_FORCEINLINE storage_type add(storage_type volatile& storage, storage_type v, memory_order order)
|
|
549
|
+
static BOOST_FORCEINLINE storage_type add(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
510
550
|
{
|
|
511
|
-
|
|
551
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
512
552
|
core_arch_operations_gcc_ppc_base::fence_before(order);
|
|
553
|
+
storage_type original, result;
|
|
513
554
|
__asm__ __volatile__
|
|
514
555
|
(
|
|
515
556
|
BOOST_ATOMIC_DETAIL_PPC_ASM_LABEL("1")
|
|
@@ -522,13 +563,15 @@ struct extra_operations_gcc_ppc< Base, 4u, Signed > :
|
|
|
522
563
|
: BOOST_ATOMIC_DETAIL_ASM_CLOBBER_CC
|
|
523
564
|
);
|
|
524
565
|
core_arch_operations_gcc_ppc_base::fence_after(order);
|
|
566
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
525
567
|
return result;
|
|
526
568
|
}
|
|
527
569
|
|
|
528
|
-
static BOOST_FORCEINLINE storage_type sub(storage_type volatile& storage, storage_type v, memory_order order)
|
|
570
|
+
static BOOST_FORCEINLINE storage_type sub(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
529
571
|
{
|
|
530
|
-
|
|
572
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
531
573
|
core_arch_operations_gcc_ppc_base::fence_before(order);
|
|
574
|
+
storage_type original, result;
|
|
532
575
|
__asm__ __volatile__
|
|
533
576
|
(
|
|
534
577
|
BOOST_ATOMIC_DETAIL_PPC_ASM_LABEL("1")
|
|
@@ -541,13 +584,15 @@ struct extra_operations_gcc_ppc< Base, 4u, Signed > :
|
|
|
541
584
|
: BOOST_ATOMIC_DETAIL_ASM_CLOBBER_CC
|
|
542
585
|
);
|
|
543
586
|
core_arch_operations_gcc_ppc_base::fence_after(order);
|
|
587
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
544
588
|
return result;
|
|
545
589
|
}
|
|
546
590
|
|
|
547
|
-
static BOOST_FORCEINLINE storage_type bitwise_and(storage_type volatile& storage, storage_type v, memory_order order)
|
|
591
|
+
static BOOST_FORCEINLINE storage_type bitwise_and(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
548
592
|
{
|
|
549
|
-
|
|
593
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
550
594
|
core_arch_operations_gcc_ppc_base::fence_before(order);
|
|
595
|
+
storage_type original, result;
|
|
551
596
|
__asm__ __volatile__
|
|
552
597
|
(
|
|
553
598
|
BOOST_ATOMIC_DETAIL_PPC_ASM_LABEL("1")
|
|
@@ -560,13 +605,15 @@ struct extra_operations_gcc_ppc< Base, 4u, Signed > :
|
|
|
560
605
|
: BOOST_ATOMIC_DETAIL_ASM_CLOBBER_CC
|
|
561
606
|
);
|
|
562
607
|
core_arch_operations_gcc_ppc_base::fence_after(order);
|
|
608
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
563
609
|
return result;
|
|
564
610
|
}
|
|
565
611
|
|
|
566
|
-
static BOOST_FORCEINLINE storage_type bitwise_or(storage_type volatile& storage, storage_type v, memory_order order)
|
|
612
|
+
static BOOST_FORCEINLINE storage_type bitwise_or(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
567
613
|
{
|
|
568
|
-
|
|
614
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
569
615
|
core_arch_operations_gcc_ppc_base::fence_before(order);
|
|
616
|
+
storage_type original, result;
|
|
570
617
|
__asm__ __volatile__
|
|
571
618
|
(
|
|
572
619
|
BOOST_ATOMIC_DETAIL_PPC_ASM_LABEL("1")
|
|
@@ -579,13 +626,15 @@ struct extra_operations_gcc_ppc< Base, 4u, Signed > :
|
|
|
579
626
|
: BOOST_ATOMIC_DETAIL_ASM_CLOBBER_CC
|
|
580
627
|
);
|
|
581
628
|
core_arch_operations_gcc_ppc_base::fence_after(order);
|
|
629
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
582
630
|
return result;
|
|
583
631
|
}
|
|
584
632
|
|
|
585
|
-
static BOOST_FORCEINLINE storage_type bitwise_xor(storage_type volatile& storage, storage_type v, memory_order order)
|
|
633
|
+
static BOOST_FORCEINLINE storage_type bitwise_xor(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
586
634
|
{
|
|
587
|
-
|
|
635
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
588
636
|
core_arch_operations_gcc_ppc_base::fence_before(order);
|
|
637
|
+
storage_type original, result;
|
|
589
638
|
__asm__ __volatile__
|
|
590
639
|
(
|
|
591
640
|
BOOST_ATOMIC_DETAIL_PPC_ASM_LABEL("1")
|
|
@@ -598,11 +647,13 @@ struct extra_operations_gcc_ppc< Base, 4u, Signed > :
|
|
|
598
647
|
: BOOST_ATOMIC_DETAIL_ASM_CLOBBER_CC
|
|
599
648
|
);
|
|
600
649
|
core_arch_operations_gcc_ppc_base::fence_after(order);
|
|
650
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
601
651
|
return result;
|
|
602
652
|
}
|
|
603
653
|
|
|
604
|
-
static BOOST_FORCEINLINE storage_type fetch_complement(storage_type volatile& storage, memory_order order)
|
|
654
|
+
static BOOST_FORCEINLINE storage_type fetch_complement(storage_type volatile& storage, memory_order order) noexcept
|
|
605
655
|
{
|
|
656
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
606
657
|
core_arch_operations_gcc_ppc_base::fence_before(order);
|
|
607
658
|
storage_type original, result;
|
|
608
659
|
__asm__ __volatile__
|
|
@@ -617,11 +668,13 @@ struct extra_operations_gcc_ppc< Base, 4u, Signed > :
|
|
|
617
668
|
: BOOST_ATOMIC_DETAIL_ASM_CLOBBER_CC
|
|
618
669
|
);
|
|
619
670
|
core_arch_operations_gcc_ppc_base::fence_after(order);
|
|
671
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
620
672
|
return original;
|
|
621
673
|
}
|
|
622
674
|
|
|
623
|
-
static BOOST_FORCEINLINE storage_type bitwise_complement(storage_type volatile& storage, memory_order order)
|
|
675
|
+
static BOOST_FORCEINLINE storage_type bitwise_complement(storage_type volatile& storage, memory_order order) noexcept
|
|
624
676
|
{
|
|
677
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
625
678
|
core_arch_operations_gcc_ppc_base::fence_before(order);
|
|
626
679
|
storage_type original, result;
|
|
627
680
|
__asm__ __volatile__
|
|
@@ -636,6 +689,7 @@ struct extra_operations_gcc_ppc< Base, 4u, Signed > :
|
|
|
636
689
|
: BOOST_ATOMIC_DETAIL_ASM_CLOBBER_CC
|
|
637
690
|
);
|
|
638
691
|
core_arch_operations_gcc_ppc_base::fence_after(order);
|
|
692
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
639
693
|
return result;
|
|
640
694
|
}
|
|
641
695
|
};
|
|
@@ -652,11 +706,12 @@ template< typename Base, bool Signed >
|
|
|
652
706
|
struct extra_operations_gcc_ppc< Base, 8u, Signed > :
|
|
653
707
|
public extra_operations_generic< Base, 8u, Signed >
|
|
654
708
|
{
|
|
655
|
-
|
|
656
|
-
|
|
709
|
+
using base_type = extra_operations_generic< Base, 8u, Signed >;
|
|
710
|
+
using storage_type = typename base_type::storage_type;
|
|
657
711
|
|
|
658
|
-
static BOOST_FORCEINLINE storage_type fetch_negate(storage_type volatile& storage, memory_order order)
|
|
712
|
+
static BOOST_FORCEINLINE storage_type fetch_negate(storage_type volatile& storage, memory_order order) noexcept
|
|
659
713
|
{
|
|
714
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
660
715
|
core_arch_operations_gcc_ppc_base::fence_before(order);
|
|
661
716
|
storage_type original, result;
|
|
662
717
|
__asm__ __volatile__
|
|
@@ -671,11 +726,13 @@ struct extra_operations_gcc_ppc< Base, 8u, Signed > :
|
|
|
671
726
|
: BOOST_ATOMIC_DETAIL_ASM_CLOBBER_CC
|
|
672
727
|
);
|
|
673
728
|
core_arch_operations_gcc_ppc_base::fence_after(order);
|
|
729
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
674
730
|
return original;
|
|
675
731
|
}
|
|
676
732
|
|
|
677
|
-
static BOOST_FORCEINLINE storage_type negate(storage_type volatile& storage, memory_order order)
|
|
733
|
+
static BOOST_FORCEINLINE storage_type negate(storage_type volatile& storage, memory_order order) noexcept
|
|
678
734
|
{
|
|
735
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
679
736
|
core_arch_operations_gcc_ppc_base::fence_before(order);
|
|
680
737
|
storage_type original, result;
|
|
681
738
|
__asm__ __volatile__
|
|
@@ -690,13 +747,15 @@ struct extra_operations_gcc_ppc< Base, 8u, Signed > :
|
|
|
690
747
|
: BOOST_ATOMIC_DETAIL_ASM_CLOBBER_CC
|
|
691
748
|
);
|
|
692
749
|
core_arch_operations_gcc_ppc_base::fence_after(order);
|
|
750
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
693
751
|
return result;
|
|
694
752
|
}
|
|
695
753
|
|
|
696
|
-
static BOOST_FORCEINLINE storage_type add(storage_type volatile& storage, storage_type v, memory_order order)
|
|
754
|
+
static BOOST_FORCEINLINE storage_type add(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
697
755
|
{
|
|
698
|
-
|
|
756
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
699
757
|
core_arch_operations_gcc_ppc_base::fence_before(order);
|
|
758
|
+
storage_type original, result;
|
|
700
759
|
__asm__ __volatile__
|
|
701
760
|
(
|
|
702
761
|
BOOST_ATOMIC_DETAIL_PPC_ASM_LABEL("1")
|
|
@@ -709,13 +768,15 @@ struct extra_operations_gcc_ppc< Base, 8u, Signed > :
|
|
|
709
768
|
: BOOST_ATOMIC_DETAIL_ASM_CLOBBER_CC
|
|
710
769
|
);
|
|
711
770
|
core_arch_operations_gcc_ppc_base::fence_after(order);
|
|
771
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
712
772
|
return result;
|
|
713
773
|
}
|
|
714
774
|
|
|
715
|
-
static BOOST_FORCEINLINE storage_type sub(storage_type volatile& storage, storage_type v, memory_order order)
|
|
775
|
+
static BOOST_FORCEINLINE storage_type sub(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
716
776
|
{
|
|
717
|
-
|
|
777
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
718
778
|
core_arch_operations_gcc_ppc_base::fence_before(order);
|
|
779
|
+
storage_type original, result;
|
|
719
780
|
__asm__ __volatile__
|
|
720
781
|
(
|
|
721
782
|
BOOST_ATOMIC_DETAIL_PPC_ASM_LABEL("1")
|
|
@@ -728,13 +789,15 @@ struct extra_operations_gcc_ppc< Base, 8u, Signed > :
|
|
|
728
789
|
: BOOST_ATOMIC_DETAIL_ASM_CLOBBER_CC
|
|
729
790
|
);
|
|
730
791
|
core_arch_operations_gcc_ppc_base::fence_after(order);
|
|
792
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
731
793
|
return result;
|
|
732
794
|
}
|
|
733
795
|
|
|
734
|
-
static BOOST_FORCEINLINE storage_type bitwise_and(storage_type volatile& storage, storage_type v, memory_order order)
|
|
796
|
+
static BOOST_FORCEINLINE storage_type bitwise_and(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
735
797
|
{
|
|
736
|
-
|
|
798
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
737
799
|
core_arch_operations_gcc_ppc_base::fence_before(order);
|
|
800
|
+
storage_type original, result;
|
|
738
801
|
__asm__ __volatile__
|
|
739
802
|
(
|
|
740
803
|
BOOST_ATOMIC_DETAIL_PPC_ASM_LABEL("1")
|
|
@@ -747,13 +810,15 @@ struct extra_operations_gcc_ppc< Base, 8u, Signed > :
|
|
|
747
810
|
: BOOST_ATOMIC_DETAIL_ASM_CLOBBER_CC
|
|
748
811
|
);
|
|
749
812
|
core_arch_operations_gcc_ppc_base::fence_after(order);
|
|
813
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
750
814
|
return result;
|
|
751
815
|
}
|
|
752
816
|
|
|
753
|
-
static BOOST_FORCEINLINE storage_type bitwise_or(storage_type volatile& storage, storage_type v, memory_order order)
|
|
817
|
+
static BOOST_FORCEINLINE storage_type bitwise_or(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
754
818
|
{
|
|
755
|
-
|
|
819
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
756
820
|
core_arch_operations_gcc_ppc_base::fence_before(order);
|
|
821
|
+
storage_type original, result;
|
|
757
822
|
__asm__ __volatile__
|
|
758
823
|
(
|
|
759
824
|
BOOST_ATOMIC_DETAIL_PPC_ASM_LABEL("1")
|
|
@@ -766,13 +831,15 @@ struct extra_operations_gcc_ppc< Base, 8u, Signed > :
|
|
|
766
831
|
: BOOST_ATOMIC_DETAIL_ASM_CLOBBER_CC
|
|
767
832
|
);
|
|
768
833
|
core_arch_operations_gcc_ppc_base::fence_after(order);
|
|
834
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
769
835
|
return result;
|
|
770
836
|
}
|
|
771
837
|
|
|
772
|
-
static BOOST_FORCEINLINE storage_type bitwise_xor(storage_type volatile& storage, storage_type v, memory_order order)
|
|
838
|
+
static BOOST_FORCEINLINE storage_type bitwise_xor(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
773
839
|
{
|
|
774
|
-
|
|
840
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
775
841
|
core_arch_operations_gcc_ppc_base::fence_before(order);
|
|
842
|
+
storage_type original, result;
|
|
776
843
|
__asm__ __volatile__
|
|
777
844
|
(
|
|
778
845
|
BOOST_ATOMIC_DETAIL_PPC_ASM_LABEL("1")
|
|
@@ -785,11 +852,13 @@ struct extra_operations_gcc_ppc< Base, 8u, Signed > :
|
|
|
785
852
|
: BOOST_ATOMIC_DETAIL_ASM_CLOBBER_CC
|
|
786
853
|
);
|
|
787
854
|
core_arch_operations_gcc_ppc_base::fence_after(order);
|
|
855
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
788
856
|
return result;
|
|
789
857
|
}
|
|
790
858
|
|
|
791
|
-
static BOOST_FORCEINLINE storage_type fetch_complement(storage_type volatile& storage, memory_order order)
|
|
859
|
+
static BOOST_FORCEINLINE storage_type fetch_complement(storage_type volatile& storage, memory_order order) noexcept
|
|
792
860
|
{
|
|
861
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
793
862
|
core_arch_operations_gcc_ppc_base::fence_before(order);
|
|
794
863
|
storage_type original, result;
|
|
795
864
|
__asm__ __volatile__
|
|
@@ -804,11 +873,13 @@ struct extra_operations_gcc_ppc< Base, 8u, Signed > :
|
|
|
804
873
|
: BOOST_ATOMIC_DETAIL_ASM_CLOBBER_CC
|
|
805
874
|
);
|
|
806
875
|
core_arch_operations_gcc_ppc_base::fence_after(order);
|
|
876
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
807
877
|
return original;
|
|
808
878
|
}
|
|
809
879
|
|
|
810
|
-
static BOOST_FORCEINLINE storage_type bitwise_complement(storage_type volatile& storage, memory_order order)
|
|
880
|
+
static BOOST_FORCEINLINE storage_type bitwise_complement(storage_type volatile& storage, memory_order order) noexcept
|
|
811
881
|
{
|
|
882
|
+
BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
|
|
812
883
|
core_arch_operations_gcc_ppc_base::fence_before(order);
|
|
813
884
|
storage_type original, result;
|
|
814
885
|
__asm__ __volatile__
|
|
@@ -823,6 +894,7 @@ struct extra_operations_gcc_ppc< Base, 8u, Signed > :
|
|
|
823
894
|
: BOOST_ATOMIC_DETAIL_ASM_CLOBBER_CC
|
|
824
895
|
);
|
|
825
896
|
core_arch_operations_gcc_ppc_base::fence_after(order);
|
|
897
|
+
BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
|
|
826
898
|
return result;
|
|
827
899
|
}
|
|
828
900
|
};
|