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) 2015 Andrey Semashev
|
|
6
|
+
* Copyright (c) 2015-2025 Andrey Semashev
|
|
7
7
|
*/
|
|
8
8
|
/*!
|
|
9
9
|
* \file atomic/detail/extra_ops_generic.hpp
|
|
@@ -35,19 +35,22 @@ template< typename Base, std::size_t Size, bool Signed, bool = Base::full_cas_ba
|
|
|
35
35
|
struct extra_operations_generic :
|
|
36
36
|
public Base
|
|
37
37
|
{
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
38
|
+
using base_type = Base;
|
|
39
|
+
using storage_type = typename base_type::storage_type;
|
|
40
|
+
using emulated_storage_type = typename storage_traits< Size >::type;
|
|
41
41
|
|
|
42
|
-
static BOOST_FORCEINLINE storage_type fetch_negate(storage_type volatile& storage, memory_order order)
|
|
42
|
+
static BOOST_FORCEINLINE storage_type fetch_negate(storage_type volatile& storage, memory_order order) noexcept
|
|
43
43
|
{
|
|
44
44
|
storage_type old_val;
|
|
45
45
|
atomics::detail::non_atomic_load(storage, old_val);
|
|
46
|
-
while (!base_type::compare_exchange_weak(
|
|
46
|
+
while (!base_type::compare_exchange_weak(
|
|
47
|
+
storage, old_val, atomics::detail::integral_extend< Signed, storage_type >(static_cast< emulated_storage_type >(-old_val)), order, memory_order_relaxed))
|
|
48
|
+
{
|
|
49
|
+
}
|
|
47
50
|
return old_val;
|
|
48
51
|
}
|
|
49
52
|
|
|
50
|
-
static BOOST_FORCEINLINE storage_type negate(storage_type volatile& storage, memory_order order)
|
|
53
|
+
static BOOST_FORCEINLINE storage_type negate(storage_type volatile& storage, memory_order order) noexcept
|
|
51
54
|
{
|
|
52
55
|
storage_type old_val, new_val;
|
|
53
56
|
atomics::detail::non_atomic_load(storage, old_val);
|
|
@@ -59,129 +62,134 @@ struct extra_operations_generic :
|
|
|
59
62
|
return new_val;
|
|
60
63
|
}
|
|
61
64
|
|
|
62
|
-
static BOOST_FORCEINLINE storage_type add(storage_type volatile& storage, storage_type v, memory_order order)
|
|
65
|
+
static BOOST_FORCEINLINE storage_type add(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
63
66
|
{
|
|
64
67
|
return base_type::fetch_add(storage, v, order) + v;
|
|
65
68
|
}
|
|
66
69
|
|
|
67
|
-
static BOOST_FORCEINLINE storage_type sub(storage_type volatile& storage, storage_type v, memory_order order)
|
|
70
|
+
static BOOST_FORCEINLINE storage_type sub(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
68
71
|
{
|
|
69
72
|
return base_type::fetch_sub(storage, v, order) - v;
|
|
70
73
|
}
|
|
71
74
|
|
|
72
|
-
static BOOST_FORCEINLINE storage_type bitwise_and(storage_type volatile& storage, storage_type v, memory_order order)
|
|
75
|
+
static BOOST_FORCEINLINE storage_type bitwise_and(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
73
76
|
{
|
|
74
77
|
return base_type::fetch_and(storage, v, order) & v;
|
|
75
78
|
}
|
|
76
79
|
|
|
77
|
-
static BOOST_FORCEINLINE storage_type bitwise_or(storage_type volatile& storage, storage_type v, memory_order order)
|
|
80
|
+
static BOOST_FORCEINLINE storage_type bitwise_or(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
78
81
|
{
|
|
79
82
|
return base_type::fetch_or(storage, v, order) | v;
|
|
80
83
|
}
|
|
81
84
|
|
|
82
|
-
static BOOST_FORCEINLINE storage_type bitwise_xor(storage_type volatile& storage, storage_type v, memory_order order)
|
|
85
|
+
static BOOST_FORCEINLINE storage_type bitwise_xor(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
83
86
|
{
|
|
84
87
|
return base_type::fetch_xor(storage, v, order) ^ v;
|
|
85
88
|
}
|
|
86
89
|
|
|
87
|
-
static BOOST_FORCEINLINE storage_type fetch_complement(storage_type volatile& storage, memory_order order)
|
|
90
|
+
static BOOST_FORCEINLINE storage_type fetch_complement(storage_type volatile& storage, memory_order order) noexcept
|
|
88
91
|
{
|
|
89
|
-
return base_type::fetch_xor(
|
|
92
|
+
return base_type::fetch_xor(
|
|
93
|
+
storage, atomics::detail::integral_extend< Signed, storage_type >(static_cast< emulated_storage_type >(~static_cast< emulated_storage_type >(0u))), order);
|
|
90
94
|
}
|
|
91
95
|
|
|
92
|
-
static BOOST_FORCEINLINE storage_type bitwise_complement(storage_type volatile& storage, memory_order order)
|
|
96
|
+
static BOOST_FORCEINLINE storage_type bitwise_complement(storage_type volatile& storage, memory_order order) noexcept
|
|
93
97
|
{
|
|
94
|
-
const storage_type mask =
|
|
98
|
+
const storage_type mask =
|
|
99
|
+
atomics::detail::integral_extend< Signed, storage_type >(static_cast< emulated_storage_type >(~static_cast< emulated_storage_type >(0u)));
|
|
95
100
|
return base_type::fetch_xor(storage, mask, order) ^ mask;
|
|
96
101
|
}
|
|
97
102
|
|
|
98
|
-
static BOOST_FORCEINLINE void opaque_add(storage_type volatile& storage, storage_type v, memory_order order)
|
|
103
|
+
static BOOST_FORCEINLINE void opaque_add(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
99
104
|
{
|
|
100
105
|
base_type::fetch_add(storage, v, order);
|
|
101
106
|
}
|
|
102
107
|
|
|
103
|
-
static BOOST_FORCEINLINE void opaque_sub(storage_type volatile& storage, storage_type v, memory_order order)
|
|
108
|
+
static BOOST_FORCEINLINE void opaque_sub(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
104
109
|
{
|
|
105
110
|
base_type::fetch_sub(storage, v, order);
|
|
106
111
|
}
|
|
107
112
|
|
|
108
|
-
static BOOST_FORCEINLINE void opaque_negate(storage_type volatile& storage, memory_order order)
|
|
113
|
+
static BOOST_FORCEINLINE void opaque_negate(storage_type volatile& storage, memory_order order) noexcept
|
|
109
114
|
{
|
|
110
115
|
fetch_negate(storage, order);
|
|
111
116
|
}
|
|
112
117
|
|
|
113
|
-
static BOOST_FORCEINLINE void opaque_and(storage_type volatile& storage, storage_type v, memory_order order)
|
|
118
|
+
static BOOST_FORCEINLINE void opaque_and(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
114
119
|
{
|
|
115
120
|
base_type::fetch_and(storage, v, order);
|
|
116
121
|
}
|
|
117
122
|
|
|
118
|
-
static BOOST_FORCEINLINE void opaque_or(storage_type volatile& storage, storage_type v, memory_order order)
|
|
123
|
+
static BOOST_FORCEINLINE void opaque_or(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
119
124
|
{
|
|
120
125
|
base_type::fetch_or(storage, v, order);
|
|
121
126
|
}
|
|
122
127
|
|
|
123
|
-
static BOOST_FORCEINLINE void opaque_xor(storage_type volatile& storage, storage_type v, memory_order order)
|
|
128
|
+
static BOOST_FORCEINLINE void opaque_xor(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
124
129
|
{
|
|
125
130
|
base_type::fetch_xor(storage, v, order);
|
|
126
131
|
}
|
|
127
132
|
|
|
128
|
-
static BOOST_FORCEINLINE void opaque_complement(storage_type volatile& storage, memory_order order)
|
|
133
|
+
static BOOST_FORCEINLINE void opaque_complement(storage_type volatile& storage, memory_order order) noexcept
|
|
129
134
|
{
|
|
130
135
|
fetch_complement(storage, order);
|
|
131
136
|
}
|
|
132
137
|
|
|
133
|
-
static BOOST_FORCEINLINE bool add_and_test(storage_type volatile& storage, storage_type v, memory_order order)
|
|
138
|
+
static BOOST_FORCEINLINE bool add_and_test(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
134
139
|
{
|
|
135
140
|
return !!static_cast< emulated_storage_type >(add(storage, v, order));
|
|
136
141
|
}
|
|
137
142
|
|
|
138
|
-
static BOOST_FORCEINLINE bool sub_and_test(storage_type volatile& storage, storage_type v, memory_order order)
|
|
143
|
+
static BOOST_FORCEINLINE bool sub_and_test(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
139
144
|
{
|
|
140
145
|
return !!static_cast< emulated_storage_type >(sub(storage, v, order));
|
|
141
146
|
}
|
|
142
147
|
|
|
143
|
-
static BOOST_FORCEINLINE bool negate_and_test(storage_type volatile& storage, memory_order order)
|
|
148
|
+
static BOOST_FORCEINLINE bool negate_and_test(storage_type volatile& storage, memory_order order) noexcept
|
|
144
149
|
{
|
|
145
150
|
return !!negate(storage, order);
|
|
146
151
|
}
|
|
147
152
|
|
|
148
|
-
static BOOST_FORCEINLINE bool and_and_test(storage_type volatile& storage, storage_type v, memory_order order)
|
|
153
|
+
static BOOST_FORCEINLINE bool and_and_test(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
149
154
|
{
|
|
150
155
|
return !!bitwise_and(storage, v, order);
|
|
151
156
|
}
|
|
152
157
|
|
|
153
|
-
static BOOST_FORCEINLINE bool or_and_test(storage_type volatile& storage, storage_type v, memory_order order)
|
|
158
|
+
static BOOST_FORCEINLINE bool or_and_test(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
154
159
|
{
|
|
155
160
|
return !!bitwise_or(storage, v, order);
|
|
156
161
|
}
|
|
157
162
|
|
|
158
|
-
static BOOST_FORCEINLINE bool xor_and_test(storage_type volatile& storage, storage_type v, memory_order order)
|
|
163
|
+
static BOOST_FORCEINLINE bool xor_and_test(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
159
164
|
{
|
|
160
165
|
return !!bitwise_xor(storage, v, order);
|
|
161
166
|
}
|
|
162
167
|
|
|
163
|
-
static BOOST_FORCEINLINE bool complement_and_test(storage_type volatile& storage, memory_order order)
|
|
168
|
+
static BOOST_FORCEINLINE bool complement_and_test(storage_type volatile& storage, memory_order order) noexcept
|
|
164
169
|
{
|
|
165
170
|
return !!static_cast< emulated_storage_type >(bitwise_complement(storage, order));
|
|
166
171
|
}
|
|
167
172
|
|
|
168
|
-
static BOOST_FORCEINLINE bool bit_test_and_set(storage_type volatile& storage, unsigned int bit_number, memory_order order)
|
|
173
|
+
static BOOST_FORCEINLINE bool bit_test_and_set(storage_type volatile& storage, unsigned int bit_number, memory_order order) noexcept
|
|
169
174
|
{
|
|
170
|
-
const storage_type mask =
|
|
175
|
+
const storage_type mask =
|
|
176
|
+
atomics::detail::integral_extend< Signed, storage_type >(static_cast< emulated_storage_type >(static_cast< emulated_storage_type >(1u) << bit_number));
|
|
171
177
|
storage_type old_val = base_type::fetch_or(storage, mask, order);
|
|
172
178
|
return !!(old_val & mask);
|
|
173
179
|
}
|
|
174
180
|
|
|
175
|
-
static BOOST_FORCEINLINE bool bit_test_and_reset(storage_type volatile& storage, unsigned int bit_number, memory_order order)
|
|
181
|
+
static BOOST_FORCEINLINE bool bit_test_and_reset(storage_type volatile& storage, unsigned int bit_number, memory_order order) noexcept
|
|
176
182
|
{
|
|
177
|
-
const storage_type mask =
|
|
183
|
+
const storage_type mask =
|
|
184
|
+
atomics::detail::integral_extend< Signed, storage_type >(static_cast< emulated_storage_type >(static_cast< emulated_storage_type >(1u) << bit_number));
|
|
178
185
|
storage_type old_val = base_type::fetch_and(storage, ~mask, order);
|
|
179
186
|
return !!(old_val & mask);
|
|
180
187
|
}
|
|
181
188
|
|
|
182
|
-
static BOOST_FORCEINLINE bool bit_test_and_complement(storage_type volatile& storage, unsigned int bit_number, memory_order order)
|
|
189
|
+
static BOOST_FORCEINLINE bool bit_test_and_complement(storage_type volatile& storage, unsigned int bit_number, memory_order order) noexcept
|
|
183
190
|
{
|
|
184
|
-
const storage_type mask =
|
|
191
|
+
const storage_type mask =
|
|
192
|
+
atomics::detail::integral_extend< Signed, storage_type >(static_cast< emulated_storage_type >(static_cast< emulated_storage_type >(1u) << bit_number));
|
|
185
193
|
storage_type old_val = base_type::fetch_xor(storage, mask, order);
|
|
186
194
|
return !!(old_val & mask);
|
|
187
195
|
}
|
|
@@ -192,19 +200,22 @@ template< typename Base, std::size_t Size, bool Signed >
|
|
|
192
200
|
struct extra_operations_generic< Base, Size, Signed, true > :
|
|
193
201
|
public Base
|
|
194
202
|
{
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
203
|
+
using base_type = Base;
|
|
204
|
+
using storage_type = typename base_type::storage_type;
|
|
205
|
+
using emulated_storage_type = typename storage_traits< Size >::type;
|
|
198
206
|
|
|
199
|
-
static BOOST_FORCEINLINE storage_type fetch_negate(storage_type volatile& storage, memory_order order)
|
|
207
|
+
static BOOST_FORCEINLINE storage_type fetch_negate(storage_type volatile& storage, memory_order order) noexcept
|
|
200
208
|
{
|
|
201
209
|
storage_type old_val;
|
|
202
210
|
atomics::detail::non_atomic_load(storage, old_val);
|
|
203
|
-
while (!base_type::compare_exchange_weak(
|
|
211
|
+
while (!base_type::compare_exchange_weak(
|
|
212
|
+
storage, old_val, atomics::detail::integral_extend< Signed, storage_type >(static_cast< emulated_storage_type >(-old_val)), order, memory_order_relaxed))
|
|
213
|
+
{
|
|
214
|
+
}
|
|
204
215
|
return old_val;
|
|
205
216
|
}
|
|
206
217
|
|
|
207
|
-
static BOOST_FORCEINLINE storage_type negate(storage_type volatile& storage, memory_order order)
|
|
218
|
+
static BOOST_FORCEINLINE storage_type negate(storage_type volatile& storage, memory_order order) noexcept
|
|
208
219
|
{
|
|
209
220
|
storage_type old_val, new_val;
|
|
210
221
|
atomics::detail::non_atomic_load(storage, old_val);
|
|
@@ -216,7 +227,7 @@ struct extra_operations_generic< Base, Size, Signed, true > :
|
|
|
216
227
|
return new_val;
|
|
217
228
|
}
|
|
218
229
|
|
|
219
|
-
static BOOST_FORCEINLINE storage_type add(storage_type volatile& storage, storage_type v, memory_order order)
|
|
230
|
+
static BOOST_FORCEINLINE storage_type add(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
220
231
|
{
|
|
221
232
|
storage_type old_val, new_val;
|
|
222
233
|
atomics::detail::non_atomic_load(storage, old_val);
|
|
@@ -228,7 +239,7 @@ struct extra_operations_generic< Base, Size, Signed, true > :
|
|
|
228
239
|
return new_val;
|
|
229
240
|
}
|
|
230
241
|
|
|
231
|
-
static BOOST_FORCEINLINE storage_type sub(storage_type volatile& storage, storage_type v, memory_order order)
|
|
242
|
+
static BOOST_FORCEINLINE storage_type sub(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
232
243
|
{
|
|
233
244
|
storage_type old_val, new_val;
|
|
234
245
|
atomics::detail::non_atomic_load(storage, old_val);
|
|
@@ -240,7 +251,7 @@ struct extra_operations_generic< Base, Size, Signed, true > :
|
|
|
240
251
|
return new_val;
|
|
241
252
|
}
|
|
242
253
|
|
|
243
|
-
static BOOST_FORCEINLINE storage_type bitwise_and(storage_type volatile& storage, storage_type v, memory_order order)
|
|
254
|
+
static BOOST_FORCEINLINE storage_type bitwise_and(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
244
255
|
{
|
|
245
256
|
storage_type old_val, new_val;
|
|
246
257
|
atomics::detail::non_atomic_load(storage, old_val);
|
|
@@ -252,7 +263,7 @@ struct extra_operations_generic< Base, Size, Signed, true > :
|
|
|
252
263
|
return new_val;
|
|
253
264
|
}
|
|
254
265
|
|
|
255
|
-
static BOOST_FORCEINLINE storage_type bitwise_or(storage_type volatile& storage, storage_type v, memory_order order)
|
|
266
|
+
static BOOST_FORCEINLINE storage_type bitwise_or(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
256
267
|
{
|
|
257
268
|
storage_type old_val, new_val;
|
|
258
269
|
atomics::detail::non_atomic_load(storage, old_val);
|
|
@@ -264,7 +275,7 @@ struct extra_operations_generic< Base, Size, Signed, true > :
|
|
|
264
275
|
return new_val;
|
|
265
276
|
}
|
|
266
277
|
|
|
267
|
-
static BOOST_FORCEINLINE storage_type bitwise_xor(storage_type volatile& storage, storage_type v, memory_order order)
|
|
278
|
+
static BOOST_FORCEINLINE storage_type bitwise_xor(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
268
279
|
{
|
|
269
280
|
storage_type old_val, new_val;
|
|
270
281
|
atomics::detail::non_atomic_load(storage, old_val);
|
|
@@ -276,103 +287,108 @@ struct extra_operations_generic< Base, Size, Signed, true > :
|
|
|
276
287
|
return new_val;
|
|
277
288
|
}
|
|
278
289
|
|
|
279
|
-
static BOOST_FORCEINLINE storage_type fetch_complement(storage_type volatile& storage, memory_order order)
|
|
290
|
+
static BOOST_FORCEINLINE storage_type fetch_complement(storage_type volatile& storage, memory_order order) noexcept
|
|
280
291
|
{
|
|
281
|
-
return base_type::fetch_xor(
|
|
292
|
+
return base_type::fetch_xor(
|
|
293
|
+
storage, atomics::detail::integral_extend< Signed, storage_type >(static_cast< emulated_storage_type >(~static_cast< emulated_storage_type >(0u))), order);
|
|
282
294
|
}
|
|
283
295
|
|
|
284
|
-
static BOOST_FORCEINLINE storage_type bitwise_complement(storage_type volatile& storage, memory_order order)
|
|
296
|
+
static BOOST_FORCEINLINE storage_type bitwise_complement(storage_type volatile& storage, memory_order order) noexcept
|
|
285
297
|
{
|
|
286
|
-
return bitwise_xor(
|
|
298
|
+
return bitwise_xor(
|
|
299
|
+
storage, atomics::detail::integral_extend< Signed, storage_type >(static_cast< emulated_storage_type >(~static_cast< emulated_storage_type >(0u))), order);
|
|
287
300
|
}
|
|
288
301
|
|
|
289
|
-
static BOOST_FORCEINLINE void opaque_add(storage_type volatile& storage, storage_type v, memory_order order)
|
|
302
|
+
static BOOST_FORCEINLINE void opaque_add(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
290
303
|
{
|
|
291
304
|
base_type::fetch_add(storage, v, order);
|
|
292
305
|
}
|
|
293
306
|
|
|
294
|
-
static BOOST_FORCEINLINE void opaque_sub(storage_type volatile& storage, storage_type v, memory_order order)
|
|
307
|
+
static BOOST_FORCEINLINE void opaque_sub(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
295
308
|
{
|
|
296
309
|
base_type::fetch_sub(storage, v, order);
|
|
297
310
|
}
|
|
298
311
|
|
|
299
|
-
static BOOST_FORCEINLINE void opaque_negate(storage_type volatile& storage, memory_order order)
|
|
312
|
+
static BOOST_FORCEINLINE void opaque_negate(storage_type volatile& storage, memory_order order) noexcept
|
|
300
313
|
{
|
|
301
314
|
fetch_negate(storage, order);
|
|
302
315
|
}
|
|
303
316
|
|
|
304
|
-
static BOOST_FORCEINLINE void opaque_and(storage_type volatile& storage, storage_type v, memory_order order)
|
|
317
|
+
static BOOST_FORCEINLINE void opaque_and(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
305
318
|
{
|
|
306
319
|
base_type::fetch_and(storage, v, order);
|
|
307
320
|
}
|
|
308
321
|
|
|
309
|
-
static BOOST_FORCEINLINE void opaque_or(storage_type volatile& storage, storage_type v, memory_order order)
|
|
322
|
+
static BOOST_FORCEINLINE void opaque_or(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
310
323
|
{
|
|
311
324
|
base_type::fetch_or(storage, v, order);
|
|
312
325
|
}
|
|
313
326
|
|
|
314
|
-
static BOOST_FORCEINLINE void opaque_xor(storage_type volatile& storage, storage_type v, memory_order order)
|
|
327
|
+
static BOOST_FORCEINLINE void opaque_xor(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
315
328
|
{
|
|
316
329
|
base_type::fetch_xor(storage, v, order);
|
|
317
330
|
}
|
|
318
331
|
|
|
319
|
-
static BOOST_FORCEINLINE void opaque_complement(storage_type volatile& storage, memory_order order)
|
|
332
|
+
static BOOST_FORCEINLINE void opaque_complement(storage_type volatile& storage, memory_order order) noexcept
|
|
320
333
|
{
|
|
321
334
|
fetch_complement(storage, order);
|
|
322
335
|
}
|
|
323
336
|
|
|
324
|
-
static BOOST_FORCEINLINE bool add_and_test(storage_type volatile& storage, storage_type v, memory_order order)
|
|
337
|
+
static BOOST_FORCEINLINE bool add_and_test(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
325
338
|
{
|
|
326
339
|
return !!static_cast< emulated_storage_type >(add(storage, v, order));
|
|
327
340
|
}
|
|
328
341
|
|
|
329
|
-
static BOOST_FORCEINLINE bool sub_and_test(storage_type volatile& storage, storage_type v, memory_order order)
|
|
342
|
+
static BOOST_FORCEINLINE bool sub_and_test(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
330
343
|
{
|
|
331
344
|
return !!static_cast< emulated_storage_type >(sub(storage, v, order));
|
|
332
345
|
}
|
|
333
346
|
|
|
334
|
-
static BOOST_FORCEINLINE bool negate_and_test(storage_type volatile& storage, memory_order order)
|
|
347
|
+
static BOOST_FORCEINLINE bool negate_and_test(storage_type volatile& storage, memory_order order) noexcept
|
|
335
348
|
{
|
|
336
349
|
return !!negate(storage, order);
|
|
337
350
|
}
|
|
338
351
|
|
|
339
|
-
static BOOST_FORCEINLINE bool and_and_test(storage_type volatile& storage, storage_type v, memory_order order)
|
|
352
|
+
static BOOST_FORCEINLINE bool and_and_test(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
340
353
|
{
|
|
341
354
|
return !!bitwise_and(storage, v, order);
|
|
342
355
|
}
|
|
343
356
|
|
|
344
|
-
static BOOST_FORCEINLINE bool or_and_test(storage_type volatile& storage, storage_type v, memory_order order)
|
|
357
|
+
static BOOST_FORCEINLINE bool or_and_test(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
345
358
|
{
|
|
346
359
|
return !!bitwise_or(storage, v, order);
|
|
347
360
|
}
|
|
348
361
|
|
|
349
|
-
static BOOST_FORCEINLINE bool xor_and_test(storage_type volatile& storage, storage_type v, memory_order order)
|
|
362
|
+
static BOOST_FORCEINLINE bool xor_and_test(storage_type volatile& storage, storage_type v, memory_order order) noexcept
|
|
350
363
|
{
|
|
351
364
|
return !!bitwise_xor(storage, v, order);
|
|
352
365
|
}
|
|
353
366
|
|
|
354
|
-
static BOOST_FORCEINLINE bool complement_and_test(storage_type volatile& storage, memory_order order)
|
|
367
|
+
static BOOST_FORCEINLINE bool complement_and_test(storage_type volatile& storage, memory_order order) noexcept
|
|
355
368
|
{
|
|
356
369
|
return !!static_cast< emulated_storage_type >(bitwise_complement(storage, order));
|
|
357
370
|
}
|
|
358
371
|
|
|
359
|
-
static BOOST_FORCEINLINE bool bit_test_and_set(storage_type volatile& storage, unsigned int bit_number, memory_order order)
|
|
372
|
+
static BOOST_FORCEINLINE bool bit_test_and_set(storage_type volatile& storage, unsigned int bit_number, memory_order order) noexcept
|
|
360
373
|
{
|
|
361
|
-
const storage_type mask =
|
|
374
|
+
const storage_type mask =
|
|
375
|
+
atomics::detail::integral_extend< Signed, storage_type >(static_cast< emulated_storage_type >(static_cast< emulated_storage_type >(1u) << bit_number));
|
|
362
376
|
storage_type old_val = base_type::fetch_or(storage, mask, order);
|
|
363
377
|
return !!(old_val & mask);
|
|
364
378
|
}
|
|
365
379
|
|
|
366
|
-
static BOOST_FORCEINLINE bool bit_test_and_reset(storage_type volatile& storage, unsigned int bit_number, memory_order order)
|
|
380
|
+
static BOOST_FORCEINLINE bool bit_test_and_reset(storage_type volatile& storage, unsigned int bit_number, memory_order order) noexcept
|
|
367
381
|
{
|
|
368
|
-
const storage_type mask =
|
|
382
|
+
const storage_type mask =
|
|
383
|
+
atomics::detail::integral_extend< Signed, storage_type >(static_cast< emulated_storage_type >(static_cast< emulated_storage_type >(1u) << bit_number));
|
|
369
384
|
storage_type old_val = base_type::fetch_and(storage, ~mask, order);
|
|
370
385
|
return !!(old_val & mask);
|
|
371
386
|
}
|
|
372
387
|
|
|
373
|
-
static BOOST_FORCEINLINE bool bit_test_and_complement(storage_type volatile& storage, unsigned int bit_number, memory_order order)
|
|
388
|
+
static BOOST_FORCEINLINE bool bit_test_and_complement(storage_type volatile& storage, unsigned int bit_number, memory_order order) noexcept
|
|
374
389
|
{
|
|
375
|
-
const storage_type mask =
|
|
390
|
+
const storage_type mask =
|
|
391
|
+
atomics::detail::integral_extend< Signed, storage_type >(static_cast< emulated_storage_type >(static_cast< emulated_storage_type >(1u) << bit_number));
|
|
376
392
|
storage_type old_val = base_type::fetch_xor(storage, mask, order);
|
|
377
393
|
return !!(old_val & mask);
|
|
378
394
|
}
|
|
@@ -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 Andrey Semashev
|
|
6
|
+
* Copyright (c) 2017-2025 Andrey Semashev
|
|
7
7
|
*/
|
|
8
8
|
/*!
|
|
9
9
|
* \file atomic/detail/extra_ops_msvc_arm.hpp
|
|
@@ -37,10 +37,10 @@ template< typename Base, std::size_t Size, bool Signed >
|
|
|
37
37
|
struct extra_operations< Base, 4u, Signed, true > :
|
|
38
38
|
public extra_operations_generic< Base, 4u, Signed >
|
|
39
39
|
{
|
|
40
|
-
|
|
41
|
-
|
|
40
|
+
using base_type = extra_operations_generic< Base, 4u, Signed >;
|
|
41
|
+
using storage_type = typename base_type::storage_type;
|
|
42
42
|
|
|
43
|
-
static BOOST_FORCEINLINE bool bit_test_and_set(storage_type volatile& storage, unsigned int bit_number, memory_order order)
|
|
43
|
+
static BOOST_FORCEINLINE bool bit_test_and_set(storage_type volatile& storage, unsigned int bit_number, memory_order order) noexcept
|
|
44
44
|
{
|
|
45
45
|
#if defined(BOOST_ATOMIC_INTERLOCKED_BTS_RELAXED) && defined(BOOST_ATOMIC_INTERLOCKED_BTS_ACQUIRE) && defined(BOOST_ATOMIC_INTERLOCKED_BTS_RELEASE)
|
|
46
46
|
bool result;
|
|
@@ -68,7 +68,7 @@ struct extra_operations< Base, 4u, Signed, true > :
|
|
|
68
68
|
#endif
|
|
69
69
|
}
|
|
70
70
|
|
|
71
|
-
static BOOST_FORCEINLINE bool bit_test_and_reset(storage_type volatile& storage, unsigned int bit_number, memory_order order)
|
|
71
|
+
static BOOST_FORCEINLINE bool bit_test_and_reset(storage_type volatile& storage, unsigned int bit_number, memory_order order) noexcept
|
|
72
72
|
{
|
|
73
73
|
#if defined(BOOST_ATOMIC_INTERLOCKED_BTR_RELAXED) && defined(BOOST_ATOMIC_INTERLOCKED_BTR_ACQUIRE) && defined(BOOST_ATOMIC_INTERLOCKED_BTR_RELEASE)
|
|
74
74
|
bool result;
|