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
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*
|
|
6
6
|
* Copyright (c) 2009 Helge Bahmann
|
|
7
7
|
* Copyright (c) 2012 Tim Blechmann
|
|
8
|
-
* Copyright (c) 2013
|
|
8
|
+
* Copyright (c) 2013-2025 Andrey Semashev
|
|
9
9
|
*/
|
|
10
10
|
/*!
|
|
11
11
|
* \file atomic/detail/storage_traits.hpp
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
#define BOOST_ATOMIC_DETAIL_STORAGE_TRAITS_HPP_INCLUDED_
|
|
18
18
|
|
|
19
19
|
#include <cstddef>
|
|
20
|
-
#include <
|
|
20
|
+
#include <cstdint>
|
|
21
21
|
#include <boost/atomic/detail/config.hpp>
|
|
22
22
|
#include <boost/atomic/detail/string_ops.hpp>
|
|
23
23
|
#include <boost/atomic/detail/aligned_variable.hpp>
|
|
@@ -33,7 +33,7 @@ namespace atomics {
|
|
|
33
33
|
namespace detail {
|
|
34
34
|
|
|
35
35
|
template< typename T >
|
|
36
|
-
BOOST_FORCEINLINE void non_atomic_load(T const volatile& from, T& to)
|
|
36
|
+
BOOST_FORCEINLINE void non_atomic_load(T const volatile& from, T& to) noexcept
|
|
37
37
|
{
|
|
38
38
|
to = from;
|
|
39
39
|
}
|
|
@@ -41,27 +41,27 @@ BOOST_FORCEINLINE void non_atomic_load(T const volatile& from, T& to) BOOST_NOEX
|
|
|
41
41
|
template< std::size_t Size, std::size_t Alignment = 1u >
|
|
42
42
|
struct BOOST_ATOMIC_DETAIL_MAY_ALIAS buffer_storage
|
|
43
43
|
{
|
|
44
|
-
|
|
44
|
+
using data_type = unsigned char [Size];
|
|
45
45
|
BOOST_ATOMIC_DETAIL_ALIGNED_VAR_TPL(Alignment, data_type, data);
|
|
46
46
|
|
|
47
|
-
BOOST_FORCEINLINE bool operator! () const
|
|
47
|
+
BOOST_FORCEINLINE bool operator! () const noexcept
|
|
48
48
|
{
|
|
49
49
|
return (data[0] == 0u && BOOST_ATOMIC_DETAIL_MEMCMP(data, data + 1, Size - 1u) == 0);
|
|
50
50
|
}
|
|
51
51
|
|
|
52
|
-
BOOST_FORCEINLINE bool operator== (buffer_storage const& that) const
|
|
52
|
+
BOOST_FORCEINLINE bool operator== (buffer_storage const& that) const noexcept
|
|
53
53
|
{
|
|
54
54
|
return BOOST_ATOMIC_DETAIL_MEMCMP(data, that.data, Size) == 0;
|
|
55
55
|
}
|
|
56
56
|
|
|
57
|
-
BOOST_FORCEINLINE bool operator!= (buffer_storage const& that) const
|
|
57
|
+
BOOST_FORCEINLINE bool operator!= (buffer_storage const& that) const noexcept
|
|
58
58
|
{
|
|
59
59
|
return BOOST_ATOMIC_DETAIL_MEMCMP(data, that.data, Size) != 0;
|
|
60
60
|
}
|
|
61
61
|
};
|
|
62
62
|
|
|
63
63
|
template< std::size_t Size, std::size_t Alignment >
|
|
64
|
-
BOOST_FORCEINLINE void non_atomic_load(buffer_storage< Size, Alignment > const volatile& from, buffer_storage< Size, Alignment >& to)
|
|
64
|
+
BOOST_FORCEINLINE void non_atomic_load(buffer_storage< Size, Alignment > const volatile& from, buffer_storage< Size, Alignment >& to) noexcept
|
|
65
65
|
{
|
|
66
66
|
BOOST_ATOMIC_DETAIL_MEMCPY(to.data, const_cast< unsigned char const* >(from.data), Size);
|
|
67
67
|
}
|
|
@@ -69,48 +69,48 @@ BOOST_FORCEINLINE void non_atomic_load(buffer_storage< Size, Alignment > const v
|
|
|
69
69
|
template< std::size_t Size >
|
|
70
70
|
struct storage_traits
|
|
71
71
|
{
|
|
72
|
-
|
|
72
|
+
using type = buffer_storage< Size, 1u >;
|
|
73
73
|
|
|
74
|
-
static
|
|
74
|
+
static constexpr std::size_t native_alignment = 1u;
|
|
75
75
|
|
|
76
76
|
// By default, prefer the maximum supported alignment
|
|
77
|
-
static
|
|
77
|
+
static constexpr std::size_t alignment = 16u;
|
|
78
78
|
};
|
|
79
79
|
|
|
80
80
|
template< >
|
|
81
81
|
struct storage_traits< 1u >
|
|
82
82
|
{
|
|
83
|
-
|
|
83
|
+
using type = std::uint8_t BOOST_ATOMIC_DETAIL_MAY_ALIAS;
|
|
84
84
|
|
|
85
|
-
static
|
|
86
|
-
static
|
|
85
|
+
static constexpr std::size_t native_alignment = 1u;
|
|
86
|
+
static constexpr std::size_t alignment = 1u;
|
|
87
87
|
};
|
|
88
88
|
|
|
89
89
|
template< >
|
|
90
90
|
struct storage_traits< 2u >
|
|
91
91
|
{
|
|
92
|
-
|
|
92
|
+
using type = std::uint16_t BOOST_ATOMIC_DETAIL_MAY_ALIAS;
|
|
93
93
|
|
|
94
|
-
static
|
|
95
|
-
static
|
|
94
|
+
static constexpr std::size_t native_alignment = atomics::detail::alignment_of< std::uint16_t >::value;
|
|
95
|
+
static constexpr std::size_t alignment = 2u;
|
|
96
96
|
};
|
|
97
97
|
|
|
98
98
|
template< >
|
|
99
99
|
struct storage_traits< 4u >
|
|
100
100
|
{
|
|
101
|
-
|
|
101
|
+
using type = std::uint32_t BOOST_ATOMIC_DETAIL_MAY_ALIAS;
|
|
102
102
|
|
|
103
|
-
static
|
|
104
|
-
static
|
|
103
|
+
static constexpr std::size_t native_alignment = atomics::detail::alignment_of< std::uint32_t >::value;
|
|
104
|
+
static constexpr std::size_t alignment = 4u;
|
|
105
105
|
};
|
|
106
106
|
|
|
107
107
|
template< >
|
|
108
108
|
struct storage_traits< 8u >
|
|
109
109
|
{
|
|
110
|
-
|
|
110
|
+
using type = std::uint64_t BOOST_ATOMIC_DETAIL_MAY_ALIAS;
|
|
111
111
|
|
|
112
|
-
static
|
|
113
|
-
static
|
|
112
|
+
static constexpr std::size_t native_alignment = atomics::detail::alignment_of< std::uint64_t >::value;
|
|
113
|
+
static constexpr std::size_t alignment = 8u;
|
|
114
114
|
};
|
|
115
115
|
|
|
116
116
|
#if defined(BOOST_HAS_INT128)
|
|
@@ -118,10 +118,10 @@ struct storage_traits< 8u >
|
|
|
118
118
|
template< >
|
|
119
119
|
struct storage_traits< 16u >
|
|
120
120
|
{
|
|
121
|
-
|
|
121
|
+
using type = boost::uint128_type BOOST_ATOMIC_DETAIL_MAY_ALIAS;
|
|
122
122
|
|
|
123
|
-
static
|
|
124
|
-
static
|
|
123
|
+
static constexpr std::size_t native_alignment = atomics::detail::alignment_of< boost::uint128_type >::value;
|
|
124
|
+
static constexpr std::size_t alignment = 16u;
|
|
125
125
|
};
|
|
126
126
|
|
|
127
127
|
#else
|
|
@@ -163,10 +163,10 @@ union max_align_t
|
|
|
163
163
|
template< >
|
|
164
164
|
struct storage_traits< 16u >
|
|
165
165
|
{
|
|
166
|
-
|
|
166
|
+
using type = buffer_storage< 16u, atomics::detail::alignment_of< atomics::detail::max_align_t >::value >;
|
|
167
167
|
|
|
168
|
-
static
|
|
169
|
-
static
|
|
168
|
+
static constexpr std::size_t native_alignment = atomics::detail::alignment_of< atomics::detail::max_align_t >::value;
|
|
169
|
+
static constexpr std::size_t alignment = 16u;
|
|
170
170
|
};
|
|
171
171
|
|
|
172
172
|
#endif
|
|
@@ -174,8 +174,8 @@ struct storage_traits< 16u >
|
|
|
174
174
|
template< typename T >
|
|
175
175
|
struct storage_size_of
|
|
176
176
|
{
|
|
177
|
-
static
|
|
178
|
-
static
|
|
177
|
+
static constexpr std::size_t size = sizeof(T);
|
|
178
|
+
static constexpr std::size_t value = (size == 3u ? 4u : (size >= 5u && size <= 7u ? 8u : (size >= 9u && size <= 15u ? 16u : size)));
|
|
179
179
|
};
|
|
180
180
|
|
|
181
181
|
} // namespace detail
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* (See accompanying file LICENSE_1_0.txt or copy at
|
|
4
4
|
* http://www.boost.org/LICENSE_1_0.txt)
|
|
5
5
|
*
|
|
6
|
-
* Copyright (c) 2020 Andrey Semashev
|
|
6
|
+
* Copyright (c) 2020-2025 Andrey Semashev
|
|
7
7
|
*/
|
|
8
8
|
/*!
|
|
9
9
|
* \file atomic/detail/type_traits/alignment_of.hpp
|
|
@@ -16,8 +16,7 @@
|
|
|
16
16
|
|
|
17
17
|
#include <boost/atomic/detail/config.hpp>
|
|
18
18
|
|
|
19
|
-
#if defined(
|
|
20
|
-
(defined(BOOST_GCC) && BOOST_GCC < 80100) ||\
|
|
19
|
+
#if (defined(BOOST_GCC) && BOOST_GCC < 80100) ||\
|
|
21
20
|
(defined(BOOST_CLANG) && !defined(__apple_build_version__) && __clang_major__ < 9) ||\
|
|
22
21
|
(defined(BOOST_CLANG) && defined(__apple_build_version__) && __clang_major__ < 10)
|
|
23
22
|
// For some compilers std::alignment_of gives the wrong result for 64-bit types on 32-bit targets
|
|
@@ -14,10 +14,8 @@
|
|
|
14
14
|
#ifndef BOOST_ATOMIC_DETAIL_TYPE_TRAITS_HAS_UNIQUE_OBJECT_REPRESENTATIONS_HPP_INCLUDED_
|
|
15
15
|
#define BOOST_ATOMIC_DETAIL_TYPE_TRAITS_HAS_UNIQUE_OBJECT_REPRESENTATIONS_HPP_INCLUDED_
|
|
16
16
|
|
|
17
|
-
#include <boost/atomic/detail/config.hpp>
|
|
18
|
-
#if !defined(BOOST_ATOMIC_DETAIL_NO_CXX11_BASIC_HDR_TYPE_TRAITS)
|
|
19
17
|
#include <type_traits>
|
|
20
|
-
#
|
|
18
|
+
#include <boost/atomic/detail/config.hpp>
|
|
21
19
|
|
|
22
20
|
#ifdef BOOST_HAS_PRAGMA_ONCE
|
|
23
21
|
#pragma once
|
|
@@ -50,7 +48,6 @@ using std::has_unique_object_representations;
|
|
|
50
48
|
#if defined(BOOST_ATOMIC_DETAIL_HAS_UNIQUE_OBJECT_REPRESENTATIONS)
|
|
51
49
|
|
|
52
50
|
#include <cstddef>
|
|
53
|
-
#include <boost/atomic/detail/type_traits/integral_constant.hpp>
|
|
54
51
|
|
|
55
52
|
namespace boost {
|
|
56
53
|
namespace atomics {
|
|
@@ -58,7 +55,7 @@ namespace detail {
|
|
|
58
55
|
|
|
59
56
|
template< typename T >
|
|
60
57
|
struct has_unique_object_representations :
|
|
61
|
-
public
|
|
58
|
+
public std::integral_constant< bool, BOOST_ATOMIC_DETAIL_HAS_UNIQUE_OBJECT_REPRESENTATIONS(T) >
|
|
62
59
|
{
|
|
63
60
|
};
|
|
64
61
|
|
data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_floating_point.hpp
CHANGED
|
@@ -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) 2018 Andrey Semashev
|
|
6
|
+
* Copyright (c) 2018-2025 Andrey Semashev
|
|
7
7
|
*/
|
|
8
8
|
/*!
|
|
9
9
|
* \file atomic/detail/type_traits/is_floating_point.hpp
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
|
|
17
17
|
#include <boost/atomic/detail/config.hpp>
|
|
18
18
|
// Some versions of libstdc++ don't consider __float128 a floating point type. Use Boost.TypeTraits because of that.
|
|
19
|
-
#if !defined(
|
|
19
|
+
#if !defined(BOOST_HAS_FLOAT128)
|
|
20
20
|
#include <type_traits>
|
|
21
21
|
#else
|
|
22
22
|
#include <boost/type_traits/is_floating_point.hpp>
|
|
@@ -30,7 +30,7 @@ namespace boost {
|
|
|
30
30
|
namespace atomics {
|
|
31
31
|
namespace detail {
|
|
32
32
|
|
|
33
|
-
#if !defined(
|
|
33
|
+
#if !defined(BOOST_HAS_FLOAT128)
|
|
34
34
|
using std::is_floating_point;
|
|
35
35
|
#else
|
|
36
36
|
using boost::is_floating_point;
|
|
@@ -28,7 +28,7 @@ namespace detail {
|
|
|
28
28
|
template< typename T >
|
|
29
29
|
struct is_iec559
|
|
30
30
|
{
|
|
31
|
-
static
|
|
31
|
+
static constexpr bool value = !!std::numeric_limits< T >::is_iec559;
|
|
32
32
|
};
|
|
33
33
|
|
|
34
34
|
#if defined(BOOST_HAS_FLOAT128)
|
|
@@ -36,7 +36,7 @@ struct is_iec559
|
|
|
36
36
|
template< >
|
|
37
37
|
struct is_iec559< boost::float128_type >
|
|
38
38
|
{
|
|
39
|
-
static
|
|
39
|
+
static constexpr bool value = true;
|
|
40
40
|
};
|
|
41
41
|
#endif // defined(BOOST_HAS_FLOAT128)
|
|
42
42
|
|
|
@@ -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/type_traits/is_integral.hpp
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
|
|
17
17
|
#include <boost/atomic/detail/config.hpp>
|
|
18
18
|
// Some versions of libstdc++ don't consider __int128 an integral type. Use Boost.TypeTraits because of that.
|
|
19
|
-
#if !defined(
|
|
19
|
+
#if !defined(BOOST_HAS_INT128)
|
|
20
20
|
#include <type_traits>
|
|
21
21
|
#else
|
|
22
22
|
#include <boost/type_traits/is_integral.hpp>
|
|
@@ -30,7 +30,7 @@ namespace boost {
|
|
|
30
30
|
namespace atomics {
|
|
31
31
|
namespace detail {
|
|
32
32
|
|
|
33
|
-
#if !defined(
|
|
33
|
+
#if !defined(BOOST_HAS_INT128)
|
|
34
34
|
using std::is_integral;
|
|
35
35
|
#else
|
|
36
36
|
using boost::is_integral;
|
|
@@ -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/type_traits/is_signed.hpp
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
|
|
17
17
|
#include <boost/atomic/detail/config.hpp>
|
|
18
18
|
// Some versions of libstdc++ don't consider __int128 an integral type. Use Boost.TypeTraits because of that.
|
|
19
|
-
#if !defined(
|
|
19
|
+
#if !defined(BOOST_HAS_INT128)
|
|
20
20
|
#include <type_traits>
|
|
21
21
|
#else
|
|
22
22
|
#include <boost/type_traits/is_signed.hpp>
|
|
@@ -30,7 +30,7 @@ namespace boost {
|
|
|
30
30
|
namespace atomics {
|
|
31
31
|
namespace detail {
|
|
32
32
|
|
|
33
|
-
#if !defined(
|
|
33
|
+
#if !defined(BOOST_HAS_INT128)
|
|
34
34
|
using std::is_signed;
|
|
35
35
|
#else
|
|
36
36
|
using boost::is_signed;
|
data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_trivially_copyable.hpp
CHANGED
|
@@ -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) 2018 Andrey Semashev
|
|
6
|
+
* Copyright (c) 2018-2025 Andrey Semashev
|
|
7
7
|
*/
|
|
8
8
|
/*!
|
|
9
9
|
* \file atomic/detail/type_traits/is_trivially_copyable.hpp
|
|
@@ -14,32 +14,39 @@
|
|
|
14
14
|
#ifndef BOOST_ATOMIC_DETAIL_TYPE_TRAITS_IS_TRIVIALLY_COPYABLE_HPP_INCLUDED_
|
|
15
15
|
#define BOOST_ATOMIC_DETAIL_TYPE_TRAITS_IS_TRIVIALLY_COPYABLE_HPP_INCLUDED_
|
|
16
16
|
|
|
17
|
-
#include <boost/atomic/detail/config.hpp>
|
|
18
|
-
#if !defined(BOOST_NO_CXX11_HDR_TYPE_TRAITS)
|
|
19
17
|
#include <type_traits>
|
|
20
|
-
#
|
|
21
|
-
// For std::is_trivially_copyable we require a genuine support from the compiler.
|
|
22
|
-
// Fallback to is_pod or a false negative result in Boost.TypeTraits is not acceptable
|
|
23
|
-
// as this trait will be used in a static assert and may deny valid uses of boost::atomic/atomic_ref.
|
|
24
|
-
#define BOOST_ATOMIC_DETAIL_NO_CXX11_IS_TRIVIALLY_COPYABLE
|
|
25
|
-
#endif
|
|
18
|
+
#include <boost/atomic/detail/config.hpp>
|
|
26
19
|
|
|
27
20
|
#ifdef BOOST_HAS_PRAGMA_ONCE
|
|
28
21
|
#pragma once
|
|
29
22
|
#endif
|
|
30
23
|
|
|
31
|
-
#if !defined(BOOST_ATOMIC_DETAIL_NO_CXX11_IS_TRIVIALLY_COPYABLE)
|
|
32
|
-
|
|
33
24
|
namespace boost {
|
|
34
25
|
namespace atomics {
|
|
35
26
|
namespace detail {
|
|
36
27
|
|
|
28
|
+
#if !defined(BOOST_LIBSTDCXX_VERSION) || (BOOST_LIBSTDCXX_VERSION >= 50100)
|
|
29
|
+
|
|
37
30
|
using std::is_trivially_copyable;
|
|
38
31
|
|
|
32
|
+
#else // !defined(BOOST_LIBSTDCXX_VERSION) || (BOOST_LIBSTDCXX_VERSION >= 50100)
|
|
33
|
+
|
|
34
|
+
template< typename T >
|
|
35
|
+
using is_trivially_copyable_impl = std::integral_constant<
|
|
36
|
+
bool,
|
|
37
|
+
std::is_trivially_destructible< T >::value && std::has_trivial_copy_constructor< T >::value && std::has_trivial_copy_assign< T >::value
|
|
38
|
+
>;
|
|
39
|
+
|
|
40
|
+
template< typename T >
|
|
41
|
+
struct is_trivially_copyable :
|
|
42
|
+
public is_trivially_copyable_impl< typename std::remove_cv< typename std::remove_all_extents< T >::type >::type >
|
|
43
|
+
{
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
#endif // !defined(BOOST_LIBSTDCXX_VERSION) || (BOOST_LIBSTDCXX_VERSION >= 50100)
|
|
47
|
+
|
|
39
48
|
} // namespace detail
|
|
40
49
|
} // namespace atomics
|
|
41
50
|
} // namespace boost
|
|
42
51
|
|
|
43
|
-
#endif // !defined(BOOST_ATOMIC_DETAIL_NO_CXX11_IS_TRIVIALLY_COPYABLE)
|
|
44
|
-
|
|
45
52
|
#endif // BOOST_ATOMIC_DETAIL_TYPE_TRAITS_IS_TRIVIALLY_COPYABLE_HPP_INCLUDED_
|
|
@@ -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) 2018 Andrey Semashev
|
|
6
|
+
* Copyright (c) 2018-2025 Andrey Semashev
|
|
7
7
|
*/
|
|
8
8
|
/*!
|
|
9
9
|
* \file atomic/detail/type_traits/is_trivially_default_constructible.hpp
|
|
@@ -14,12 +14,8 @@
|
|
|
14
14
|
#ifndef BOOST_ATOMIC_DETAIL_TYPE_TRAITS_IS_TRIVIALLY_DEFAULT_CONSTRUCTIBLE_HPP_INCLUDED_
|
|
15
15
|
#define BOOST_ATOMIC_DETAIL_TYPE_TRAITS_IS_TRIVIALLY_DEFAULT_CONSTRUCTIBLE_HPP_INCLUDED_
|
|
16
16
|
|
|
17
|
-
#include <boost/atomic/detail/config.hpp>
|
|
18
|
-
#if !defined(BOOST_NO_CXX11_HDR_TYPE_TRAITS)
|
|
19
17
|
#include <type_traits>
|
|
20
|
-
#
|
|
21
|
-
#include <boost/type_traits/has_trivial_constructor.hpp>
|
|
22
|
-
#endif
|
|
18
|
+
#include <boost/atomic/detail/config.hpp>
|
|
23
19
|
|
|
24
20
|
#ifdef BOOST_HAS_PRAGMA_ONCE
|
|
25
21
|
#pragma once
|
|
@@ -29,15 +25,19 @@ namespace boost {
|
|
|
29
25
|
namespace atomics {
|
|
30
26
|
namespace detail {
|
|
31
27
|
|
|
32
|
-
#if !defined(
|
|
28
|
+
#if !defined(BOOST_LIBSTDCXX_VERSION) || (BOOST_LIBSTDCXX_VERSION >= 50100)
|
|
29
|
+
|
|
33
30
|
using std::is_trivially_default_constructible;
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
#else
|
|
31
|
+
|
|
32
|
+
#else // !defined(BOOST_LIBSTDCXX_VERSION) || (BOOST_LIBSTDCXX_VERSION >= 50100)
|
|
33
|
+
|
|
38
34
|
template< typename T >
|
|
39
|
-
struct is_trivially_default_constructible :
|
|
40
|
-
|
|
35
|
+
struct is_trivially_default_constructible :
|
|
36
|
+
public std::has_trivial_default_constructor< typename std::remove_cv< typename std::remove_all_extents< T >::type >::type >::type
|
|
37
|
+
{
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
#endif // !defined(BOOST_LIBSTDCXX_VERSION) || (BOOST_LIBSTDCXX_VERSION >= 50100)
|
|
41
41
|
|
|
42
42
|
} // namespace detail
|
|
43
43
|
} // namespace atomics
|
|
@@ -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/type_traits/make_signed.hpp
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
|
|
17
17
|
#include <boost/atomic/detail/config.hpp>
|
|
18
18
|
// Some versions of libstdc++ don't consider __int128 an integral type. Use Boost.TypeTraits because of that.
|
|
19
|
-
#if !defined(
|
|
19
|
+
#if !defined(BOOST_HAS_INT128)
|
|
20
20
|
#include <type_traits>
|
|
21
21
|
#else
|
|
22
22
|
#include <boost/type_traits/make_signed.hpp>
|
|
@@ -30,7 +30,7 @@ namespace boost {
|
|
|
30
30
|
namespace atomics {
|
|
31
31
|
namespace detail {
|
|
32
32
|
|
|
33
|
-
#if !defined(
|
|
33
|
+
#if !defined(BOOST_HAS_INT128)
|
|
34
34
|
using std::make_signed;
|
|
35
35
|
#else
|
|
36
36
|
using boost::make_signed;
|
|
@@ -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/type_traits/make_unsigned.hpp
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
|
|
17
17
|
#include <boost/atomic/detail/config.hpp>
|
|
18
18
|
// Some versions of libstdc++ don't consider __int128 an integral type. Use Boost.TypeTraits because of that.
|
|
19
|
-
#if !defined(
|
|
19
|
+
#if !defined(BOOST_HAS_INT128)
|
|
20
20
|
#include <type_traits>
|
|
21
21
|
#else
|
|
22
22
|
#include <boost/type_traits/make_unsigned.hpp>
|
|
@@ -30,7 +30,7 @@ namespace boost {
|
|
|
30
30
|
namespace atomics {
|
|
31
31
|
namespace detail {
|
|
32
32
|
|
|
33
|
-
#if !defined(
|
|
33
|
+
#if !defined(BOOST_HAS_INT128)
|
|
34
34
|
using std::make_unsigned;
|
|
35
35
|
#else
|
|
36
36
|
using boost::make_unsigned;
|
|
@@ -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) 2021 Andrey Semashev
|
|
6
|
+
* Copyright (c) 2021-2025 Andrey Semashev
|
|
7
7
|
*/
|
|
8
8
|
/*!
|
|
9
9
|
* \file atomic/detail/wait_ops_darwin_ulock.hpp
|
|
@@ -19,8 +19,10 @@
|
|
|
19
19
|
|
|
20
20
|
#include <stdint.h>
|
|
21
21
|
#include <cerrno>
|
|
22
|
+
#include <chrono>
|
|
22
23
|
#include <boost/memory_order.hpp>
|
|
23
24
|
#include <boost/atomic/detail/config.hpp>
|
|
25
|
+
#include <boost/atomic/detail/chrono.hpp>
|
|
24
26
|
#include <boost/atomic/detail/wait_capabilities.hpp>
|
|
25
27
|
#include <boost/atomic/detail/wait_operations_fwd.hpp>
|
|
26
28
|
#include <boost/atomic/detail/header.hpp>
|
|
@@ -35,12 +37,12 @@ namespace detail {
|
|
|
35
37
|
|
|
36
38
|
extern "C" {
|
|
37
39
|
// Timeout is in microseconds with zero meaning no timeout
|
|
38
|
-
int __ulock_wait(uint32_t operation, void* addr, uint64_t value, uint32_t timeout);
|
|
40
|
+
int __ulock_wait(std::uint32_t operation, void* addr, std::uint64_t value, std::uint32_t timeout);
|
|
39
41
|
#if defined(BOOST_ATOMIC_DETAIL_HAS_DARWIN_ULOCK_WAIT2)
|
|
40
42
|
// Timeout is in nanoseconds with zero meaning no timeout
|
|
41
|
-
int __ulock_wait2(uint32_t operation, void* addr, uint64_t value, uint64_t timeout, uint64_t value2);
|
|
43
|
+
int __ulock_wait2(std::uint32_t operation, void* addr, std::uint64_t value, std::uint64_t timeout, std::uint64_t value2);
|
|
42
44
|
#endif // defined(BOOST_ATOMIC_DETAIL_HAS_DARWIN_ULOCK_WAIT2)
|
|
43
|
-
int __ulock_wake(uint32_t operation, void* addr, uint64_t wake_value);
|
|
45
|
+
int __ulock_wake(std::uint32_t operation, void* addr, std::uint64_t wake_value);
|
|
44
46
|
} // extern "C"
|
|
45
47
|
|
|
46
48
|
enum ulock_op
|
|
@@ -63,21 +65,21 @@ enum ulock_op
|
|
|
63
65
|
ulock_flag_no_errno = 0x01000000
|
|
64
66
|
};
|
|
65
67
|
|
|
66
|
-
template< typename Base, uint32_t Opcode >
|
|
68
|
+
template< typename Base, std::uint32_t Opcode >
|
|
67
69
|
struct wait_operations_darwin_ulock_common :
|
|
68
70
|
public Base
|
|
69
71
|
{
|
|
70
|
-
|
|
71
|
-
|
|
72
|
+
using base_type = Base;
|
|
73
|
+
using storage_type = typename base_type::storage_type;
|
|
72
74
|
|
|
73
|
-
static
|
|
75
|
+
static constexpr bool always_has_native_wait_notify = true;
|
|
74
76
|
|
|
75
|
-
static BOOST_FORCEINLINE bool has_native_wait_notify(storage_type const volatile&)
|
|
77
|
+
static BOOST_FORCEINLINE bool has_native_wait_notify(storage_type const volatile&) noexcept
|
|
76
78
|
{
|
|
77
79
|
return true;
|
|
78
80
|
}
|
|
79
81
|
|
|
80
|
-
static BOOST_FORCEINLINE storage_type wait(storage_type const volatile& storage, storage_type old_val, memory_order order)
|
|
82
|
+
static BOOST_FORCEINLINE storage_type wait(storage_type const volatile& storage, storage_type old_val, memory_order order) noexcept
|
|
81
83
|
{
|
|
82
84
|
storage_type new_val = base_type::load(storage, order);
|
|
83
85
|
while (new_val == old_val)
|
|
@@ -93,7 +95,79 @@ struct wait_operations_darwin_ulock_common :
|
|
|
93
95
|
return new_val;
|
|
94
96
|
}
|
|
95
97
|
|
|
96
|
-
|
|
98
|
+
private:
|
|
99
|
+
template< typename Clock >
|
|
100
|
+
static BOOST_FORCEINLINE storage_type wait_until_impl
|
|
101
|
+
(
|
|
102
|
+
storage_type const volatile& storage,
|
|
103
|
+
storage_type old_val,
|
|
104
|
+
typename Clock::time_point timeout,
|
|
105
|
+
typename Clock::time_point now,
|
|
106
|
+
memory_order order,
|
|
107
|
+
bool& timed_out
|
|
108
|
+
) noexcept(noexcept(Clock::now()))
|
|
109
|
+
{
|
|
110
|
+
storage_type new_val = base_type::load(storage, order);
|
|
111
|
+
while (new_val == old_val)
|
|
112
|
+
{
|
|
113
|
+
#if defined(BOOST_ATOMIC_DETAIL_HAS_DARWIN_ULOCK_WAIT2)
|
|
114
|
+
const std::int64_t rel_timeout = atomics::detail::chrono::ceil< std::chrono::nanoseconds >(timeout - now).count();
|
|
115
|
+
#else
|
|
116
|
+
const std::int64_t rel_timeout = atomics::detail::chrono::ceil< std::chrono::microseconds >(timeout - now).count();
|
|
117
|
+
#endif
|
|
118
|
+
if (rel_timeout <= 0)
|
|
119
|
+
{
|
|
120
|
+
timed_out = true;
|
|
121
|
+
break;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
#if defined(BOOST_ATOMIC_DETAIL_HAS_DARWIN_ULOCK_WAIT2)
|
|
125
|
+
__ulock_wait2(Opcode | ulock_flag_no_errno, const_cast< storage_type* >(&storage), old_val, static_cast< std::uint64_t >(rel_timeout), 0u);
|
|
126
|
+
#else
|
|
127
|
+
__ulock_wait
|
|
128
|
+
(
|
|
129
|
+
Opcode | ulock_flag_no_errno,
|
|
130
|
+
const_cast< storage_type* >(&storage),
|
|
131
|
+
old_val,
|
|
132
|
+
rel_timeout <= static_cast< std::int64_t >(~static_cast< std::uint32_t >(0u)) ? static_cast< std::uint32_t >(rel_timeout) : ~static_cast< std::uint32_t >(0u)
|
|
133
|
+
);
|
|
134
|
+
#endif
|
|
135
|
+
now = Clock::now();
|
|
136
|
+
new_val = base_type::load(storage, order);
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
return new_val;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
public:
|
|
143
|
+
template< typename Clock, typename Duration >
|
|
144
|
+
static BOOST_FORCEINLINE storage_type wait_until
|
|
145
|
+
(
|
|
146
|
+
storage_type const volatile& storage,
|
|
147
|
+
storage_type old_val,
|
|
148
|
+
std::chrono::time_point< Clock, Duration > timeout,
|
|
149
|
+
memory_order order,
|
|
150
|
+
bool& timed_out
|
|
151
|
+
) noexcept(noexcept(Clock::now()))
|
|
152
|
+
{
|
|
153
|
+
return wait_until_impl< Clock >(storage, old_val, timeout, Clock::now(), order, timed_out);
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
template< typename Rep, typename Period >
|
|
157
|
+
static BOOST_FORCEINLINE storage_type wait_for
|
|
158
|
+
(
|
|
159
|
+
storage_type const volatile& storage,
|
|
160
|
+
storage_type old_val,
|
|
161
|
+
std::chrono::duration< Rep, Period > timeout,
|
|
162
|
+
memory_order order,
|
|
163
|
+
bool& timed_out
|
|
164
|
+
) noexcept
|
|
165
|
+
{
|
|
166
|
+
const std::chrono::steady_clock::time_point now = std::chrono::steady_clock::now();
|
|
167
|
+
return wait_until_impl< std::chrono::steady_clock >(storage, old_val, now + timeout, now, order, timed_out);
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
static BOOST_FORCEINLINE void notify_one(storage_type volatile& storage) noexcept
|
|
97
171
|
{
|
|
98
172
|
while (true)
|
|
99
173
|
{
|
|
@@ -103,7 +177,7 @@ struct wait_operations_darwin_ulock_common :
|
|
|
103
177
|
}
|
|
104
178
|
}
|
|
105
179
|
|
|
106
|
-
static BOOST_FORCEINLINE void notify_all(storage_type volatile& storage)
|
|
180
|
+
static BOOST_FORCEINLINE void notify_all(storage_type volatile& storage) noexcept
|
|
107
181
|
{
|
|
108
182
|
while (true)
|
|
109
183
|
{
|
|
@@ -115,7 +189,7 @@ struct wait_operations_darwin_ulock_common :
|
|
|
115
189
|
};
|
|
116
190
|
|
|
117
191
|
template< typename Base >
|
|
118
|
-
struct wait_operations< Base, sizeof(uint32_t), true, false > :
|
|
192
|
+
struct wait_operations< Base, sizeof(std::uint32_t), true, false > :
|
|
119
193
|
public wait_operations_darwin_ulock_common< Base, ulock_op_compare_and_wait >
|
|
120
194
|
{
|
|
121
195
|
};
|
|
@@ -123,7 +197,7 @@ struct wait_operations< Base, sizeof(uint32_t), true, false > :
|
|
|
123
197
|
#if defined(BOOST_ATOMIC_DETAIL_HAS_DARWIN_ULOCK_SHARED)
|
|
124
198
|
|
|
125
199
|
template< typename Base >
|
|
126
|
-
struct wait_operations< Base, sizeof(uint32_t), true, true > :
|
|
200
|
+
struct wait_operations< Base, sizeof(std::uint32_t), true, true > :
|
|
127
201
|
public wait_operations_darwin_ulock_common< Base, ulock_op_compare_and_wait_shared >
|
|
128
202
|
{
|
|
129
203
|
};
|
|
@@ -133,7 +207,7 @@ struct wait_operations< Base, sizeof(uint32_t), true, true > :
|
|
|
133
207
|
#if defined(BOOST_ATOMIC_DETAIL_HAS_DARWIN_ULOCK64)
|
|
134
208
|
|
|
135
209
|
template< typename Base >
|
|
136
|
-
struct wait_operations< Base, sizeof(uint64_t), true, false > :
|
|
210
|
+
struct wait_operations< Base, sizeof(std::uint64_t), true, false > :
|
|
137
211
|
public wait_operations_darwin_ulock_common< Base, ulock_op_compare_and_wait64 >
|
|
138
212
|
{
|
|
139
213
|
};
|
|
@@ -141,7 +215,7 @@ struct wait_operations< Base, sizeof(uint64_t), true, false > :
|
|
|
141
215
|
#if defined(BOOST_ATOMIC_DETAIL_HAS_DARWIN_ULOCK_SHARED)
|
|
142
216
|
|
|
143
217
|
template< typename Base >
|
|
144
|
-
struct wait_operations< Base, sizeof(uint64_t), true, true > :
|
|
218
|
+
struct wait_operations< Base, sizeof(std::uint64_t), true, true > :
|
|
145
219
|
public wait_operations_darwin_ulock_common< Base, ulock_op_compare_and_wait64_shared >
|
|
146
220
|
{
|
|
147
221
|
};
|