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
|
@@ -46,7 +46,8 @@ extern "C" long __cdecl InterlockedDecrement(long*);
|
|
|
46
46
|
|
|
47
47
|
#endif // _WIN32_WCE >= 0x600
|
|
48
48
|
|
|
49
|
-
#define BOOST_ATOMIC_INTERLOCKED_COMPARE_EXCHANGE_POINTER(dest, exchange, compare)
|
|
49
|
+
#define BOOST_ATOMIC_INTERLOCKED_COMPARE_EXCHANGE_POINTER(dest, exchange, compare) \
|
|
50
|
+
((void*)BOOST_ATOMIC_INTERLOCKED_COMPARE_EXCHANGE((long*)(dest), (long)(exchange), (long)(compare)))
|
|
50
51
|
#define BOOST_ATOMIC_INTERLOCKED_EXCHANGE_POINTER(dest, exchange) ((void*)BOOST_ATOMIC_INTERLOCKED_EXCHANGE((long*)(dest), (long)(exchange)))
|
|
51
52
|
|
|
52
53
|
#elif defined(_MSC_VER) && _MSC_VER >= 1310
|
|
@@ -73,7 +74,8 @@ extern "C" long __cdecl _InterlockedDecrement(long volatile*);
|
|
|
73
74
|
#define BOOST_ATOMIC_INTERLOCKED_INCREMENT(dest) _InterlockedIncrement((long*)(dest))
|
|
74
75
|
#define BOOST_ATOMIC_INTERLOCKED_DECREMENT(dest) _InterlockedDecrement((long*)(dest))
|
|
75
76
|
|
|
76
|
-
#define BOOST_ATOMIC_INTERLOCKED_COMPARE_EXCHANGE_POINTER(dest, exchange, compare)
|
|
77
|
+
#define BOOST_ATOMIC_INTERLOCKED_COMPARE_EXCHANGE_POINTER(dest, exchange, compare) \
|
|
78
|
+
((void*)BOOST_ATOMIC_INTERLOCKED_COMPARE_EXCHANGE((long*)(dest), (long)(exchange), (long)(compare)))
|
|
77
79
|
#define BOOST_ATOMIC_INTERLOCKED_EXCHANGE_POINTER(dest, exchange) ((void*)BOOST_ATOMIC_INTERLOCKED_EXCHANGE((long*)(dest), (long)(exchange)))
|
|
78
80
|
|
|
79
81
|
#else // _MSC_VER < 1400
|
|
@@ -104,7 +106,7 @@ extern "C" long __cdecl _InterlockedDecrement(long volatile*);
|
|
|
104
106
|
#define BOOST_ATOMIC_INTERLOCKED_BTS(dest, arg) _interlockedbittestandset((long*)(dest), (long)(arg))
|
|
105
107
|
#define BOOST_ATOMIC_INTERLOCKED_BTR(dest, arg) _interlockedbittestandreset((long*)(dest), (long)(arg))
|
|
106
108
|
|
|
107
|
-
#if defined(_M_AMD64)
|
|
109
|
+
#if defined(_M_AMD64) && !defined(_M_ARM64EC)
|
|
108
110
|
#if defined(BOOST_MSVC)
|
|
109
111
|
#pragma intrinsic(_interlockedbittestandset64)
|
|
110
112
|
#pragma intrinsic(_interlockedbittestandreset64)
|
|
@@ -112,20 +114,21 @@ extern "C" long __cdecl _InterlockedDecrement(long volatile*);
|
|
|
112
114
|
|
|
113
115
|
#define BOOST_ATOMIC_INTERLOCKED_BTS64(dest, arg) _interlockedbittestandset64((__int64*)(dest), (__int64)(arg))
|
|
114
116
|
#define BOOST_ATOMIC_INTERLOCKED_BTR64(dest, arg) _interlockedbittestandreset64((__int64*)(dest), (__int64)(arg))
|
|
115
|
-
#endif // defined(_M_AMD64)
|
|
117
|
+
#endif // defined(_M_AMD64) && !defined(_M_ARM64EC)
|
|
116
118
|
|
|
117
|
-
#if (defined(_M_IX86) && _M_IX86 >= 500) || defined(_M_AMD64) || defined(_M_IA64)
|
|
119
|
+
#if (defined(_M_IX86) && _M_IX86 >= 500) || (defined(_M_AMD64) && !defined(_M_ARM64EC)) || defined(_M_IA64)
|
|
118
120
|
#if defined(BOOST_MSVC)
|
|
119
121
|
#pragma intrinsic(_InterlockedCompareExchange64)
|
|
120
122
|
#endif
|
|
121
123
|
#define BOOST_ATOMIC_INTERLOCKED_COMPARE_EXCHANGE64(dest, exchange, compare) _InterlockedCompareExchange64((__int64*)(dest), (__int64)(exchange), (__int64)(compare))
|
|
122
124
|
#endif
|
|
123
125
|
|
|
124
|
-
#if _MSC_VER >= 1500 && defined(_M_AMD64)
|
|
126
|
+
#if _MSC_VER >= 1500 && (defined(_M_AMD64) && !defined(_M_ARM64EC))
|
|
125
127
|
#if defined(BOOST_MSVC)
|
|
126
128
|
#pragma intrinsic(_InterlockedCompareExchange128)
|
|
127
129
|
#endif
|
|
128
|
-
#define BOOST_ATOMIC_INTERLOCKED_COMPARE_EXCHANGE128(dest, exchange, compare)
|
|
130
|
+
#define BOOST_ATOMIC_INTERLOCKED_COMPARE_EXCHANGE128(dest, exchange, compare) \
|
|
131
|
+
_InterlockedCompareExchange128((__int64*)(dest), ((const __int64*)(&exchange))[1], ((const __int64*)(&exchange))[0], (__int64*)(compare))
|
|
129
132
|
#endif
|
|
130
133
|
|
|
131
134
|
#if _MSC_VER >= 1600
|
|
@@ -168,7 +171,7 @@ extern "C" long __cdecl _InterlockedDecrement(long volatile*);
|
|
|
168
171
|
|
|
169
172
|
#endif // _MSC_VER >= 1600
|
|
170
173
|
|
|
171
|
-
#if defined(_M_AMD64) || defined(_M_IA64)
|
|
174
|
+
#if (defined(_M_AMD64) && !defined(_M_ARM64EC)) || defined(_M_IA64)
|
|
172
175
|
|
|
173
176
|
#if defined(BOOST_MSVC)
|
|
174
177
|
#pragma intrinsic(_InterlockedExchangeAdd64)
|
|
@@ -201,7 +204,7 @@ extern "C" long __cdecl _InterlockedDecrement(long volatile*);
|
|
|
201
204
|
|
|
202
205
|
#endif
|
|
203
206
|
|
|
204
|
-
#if _MSC_VER >= 1700 && (defined(_M_ARM) || defined(_M_ARM64))
|
|
207
|
+
#if _MSC_VER >= 1700 && (defined(_M_ARM) || defined(_M_ARM64) || defined(_M_ARM64EC))
|
|
205
208
|
|
|
206
209
|
#if defined(BOOST_MSVC)
|
|
207
210
|
#pragma intrinsic(_InterlockedExchangeAdd64)
|
|
@@ -231,29 +234,62 @@ extern "C" long __cdecl _InterlockedDecrement(long volatile*);
|
|
|
231
234
|
#pragma intrinsic(_InterlockedCompareExchange64_nf)
|
|
232
235
|
#pragma intrinsic(_InterlockedCompareExchange64_acq)
|
|
233
236
|
#pragma intrinsic(_InterlockedCompareExchange64_rel)
|
|
237
|
+
#if _MSC_VER >= 1900 && (defined(_M_ARM64) || defined(_M_ARM64EC))
|
|
238
|
+
#pragma intrinsic(_InterlockedCompareExchange128)
|
|
239
|
+
#pragma intrinsic(_InterlockedCompareExchange128_nf)
|
|
240
|
+
#pragma intrinsic(_InterlockedCompareExchange128_acq)
|
|
241
|
+
#pragma intrinsic(_InterlockedCompareExchange128_rel)
|
|
242
|
+
#endif
|
|
234
243
|
#pragma intrinsic(_InterlockedCompareExchangePointer)
|
|
235
244
|
#pragma intrinsic(_InterlockedCompareExchangePointer_nf)
|
|
236
245
|
#pragma intrinsic(_InterlockedCompareExchangePointer_acq)
|
|
237
246
|
#pragma intrinsic(_InterlockedCompareExchangePointer_rel)
|
|
238
247
|
#endif
|
|
239
248
|
|
|
240
|
-
#define BOOST_ATOMIC_INTERLOCKED_COMPARE_EXCHANGE8_RELAXED(dest, exchange, compare)
|
|
241
|
-
|
|
242
|
-
#define
|
|
243
|
-
|
|
244
|
-
#define
|
|
245
|
-
|
|
246
|
-
#define
|
|
247
|
-
|
|
248
|
-
#define
|
|
249
|
-
|
|
250
|
-
#define
|
|
251
|
-
|
|
252
|
-
#define
|
|
253
|
-
|
|
254
|
-
#define
|
|
255
|
-
|
|
256
|
-
#define
|
|
249
|
+
#define BOOST_ATOMIC_INTERLOCKED_COMPARE_EXCHANGE8_RELAXED(dest, exchange, compare) \
|
|
250
|
+
_InterlockedCompareExchange8_nf((char*)(dest), (char)(exchange), (char)(compare))
|
|
251
|
+
#define BOOST_ATOMIC_INTERLOCKED_COMPARE_EXCHANGE8_ACQUIRE(dest, exchange, compare) \
|
|
252
|
+
_InterlockedCompareExchange8_acq((char*)(dest), (char)(exchange), (char)(compare))
|
|
253
|
+
#define BOOST_ATOMIC_INTERLOCKED_COMPARE_EXCHANGE8_RELEASE(dest, exchange, compare) \
|
|
254
|
+
_InterlockedCompareExchange8_rel((char*)(dest), (char)(exchange), (char)(compare))
|
|
255
|
+
#define BOOST_ATOMIC_INTERLOCKED_COMPARE_EXCHANGE16_RELAXED(dest, exchange, compare) \
|
|
256
|
+
_InterlockedCompareExchange16_nf((short*)(dest), (short)(exchange), (short)(compare))
|
|
257
|
+
#define BOOST_ATOMIC_INTERLOCKED_COMPARE_EXCHANGE16_ACQUIRE(dest, exchange, compare) \
|
|
258
|
+
_InterlockedCompareExchange16_acq((short*)(dest), (short)(exchange), (short)(compare))
|
|
259
|
+
#define BOOST_ATOMIC_INTERLOCKED_COMPARE_EXCHANGE16_RELEASE(dest, exchange, compare) \
|
|
260
|
+
_InterlockedCompareExchange16_rel((short*)(dest), (short)(exchange), (short)(compare))
|
|
261
|
+
#define BOOST_ATOMIC_INTERLOCKED_COMPARE_EXCHANGE_RELAXED(dest, exchange, compare) \
|
|
262
|
+
_InterlockedCompareExchange_nf((long*)(dest), (long)(exchange), (long)(compare))
|
|
263
|
+
#define BOOST_ATOMIC_INTERLOCKED_COMPARE_EXCHANGE_ACQUIRE(dest, exchange, compare) \
|
|
264
|
+
_InterlockedCompareExchange_acq((long*)(dest), (long)(exchange), (long)(compare))
|
|
265
|
+
#define BOOST_ATOMIC_INTERLOCKED_COMPARE_EXCHANGE_RELEASE(dest, exchange, compare) \
|
|
266
|
+
_InterlockedCompareExchange_rel((long*)(dest), (long)(exchange), (long)(compare))
|
|
267
|
+
#define BOOST_ATOMIC_INTERLOCKED_COMPARE_EXCHANGE64(dest, exchange, compare) \
|
|
268
|
+
_InterlockedCompareExchange64((__int64*)(dest), (__int64)(exchange), (__int64)(compare))
|
|
269
|
+
#define BOOST_ATOMIC_INTERLOCKED_COMPARE_EXCHANGE64_RELAXED(dest, exchange, compare) \
|
|
270
|
+
_InterlockedCompareExchange64_nf((__int64*)(dest), (__int64)(exchange), (__int64)(compare))
|
|
271
|
+
#define BOOST_ATOMIC_INTERLOCKED_COMPARE_EXCHANGE64_ACQUIRE(dest, exchange, compare) \
|
|
272
|
+
_InterlockedCompareExchange64_acq((__int64*)(dest), (__int64)(exchange), (__int64)(compare))
|
|
273
|
+
#define BOOST_ATOMIC_INTERLOCKED_COMPARE_EXCHANGE64_RELEASE(dest, exchange, compare) \
|
|
274
|
+
_InterlockedCompareExchange64_rel((__int64*)(dest), (__int64)(exchange), (__int64)(compare))
|
|
275
|
+
#if _MSC_VER >= 1900 && (defined(_M_ARM64) || defined(_M_ARM64EC))
|
|
276
|
+
#define BOOST_ATOMIC_INTERLOCKED_COMPARE_EXCHANGE128(dest, exchange, compare) \
|
|
277
|
+
_InterlockedCompareExchange128((__int64*)(dest), ((const __int64*)(&exchange))[1], ((const __int64*)(&exchange))[0], (__int64*)(compare))
|
|
278
|
+
#define BOOST_ATOMIC_INTERLOCKED_COMPARE_EXCHANGE128_RELAXED(dest, exchange, compare) \
|
|
279
|
+
_InterlockedCompareExchange128_nf((__int64*)(dest), ((const __int64*)(&exchange))[1], ((const __int64*)(&exchange))[0], (__int64*)(compare))
|
|
280
|
+
#define BOOST_ATOMIC_INTERLOCKED_COMPARE_EXCHANGE128_ACQUIRE(dest, exchange, compare) \
|
|
281
|
+
_InterlockedCompareExchange128_acq((__int64*)(dest), ((const __int64*)(&exchange))[1], ((const __int64*)(&exchange))[0], (__int64*)(compare))
|
|
282
|
+
#define BOOST_ATOMIC_INTERLOCKED_COMPARE_EXCHANGE128_RELEASE(dest, exchange, compare) \
|
|
283
|
+
_InterlockedCompareExchange128_rel((__int64*)(dest), ((const __int64*)(&exchange))[1], ((const __int64*)(&exchange))[0], (__int64*)(compare))
|
|
284
|
+
#endif
|
|
285
|
+
#define BOOST_ATOMIC_INTERLOCKED_COMPARE_EXCHANGE_POINTER(dest, exchange, compare) \
|
|
286
|
+
_InterlockedCompareExchangePointer((void**)(dest), (void*)(exchange), (void*)(compare))
|
|
287
|
+
#define BOOST_ATOMIC_INTERLOCKED_COMPARE_EXCHANGE_POINTER_RELAXED(dest, exchange, compare) \
|
|
288
|
+
_InterlockedCompareExchangePointer_nf((void**)(dest), (void*)(exchange), (void*)(compare))
|
|
289
|
+
#define BOOST_ATOMIC_INTERLOCKED_COMPARE_EXCHANGE_POINTER_ACQUIRE(dest, exchange, compare) \
|
|
290
|
+
_InterlockedCompareExchangePointer_acq((void**)(dest), (void*)(exchange), (void*)(compare))
|
|
291
|
+
#define BOOST_ATOMIC_INTERLOCKED_COMPARE_EXCHANGE_POINTER_RELEASE(dest, exchange, compare) \
|
|
292
|
+
_InterlockedCompareExchangePointer_rel((void**)(dest), (void*)(exchange), (void*)(compare))
|
|
257
293
|
|
|
258
294
|
#if defined(BOOST_MSVC)
|
|
259
295
|
#pragma intrinsic(_InterlockedExchangeAdd8_nf)
|
|
@@ -283,7 +319,7 @@ extern "C" long __cdecl _InterlockedDecrement(long volatile*);
|
|
|
283
319
|
#define BOOST_ATOMIC_INTERLOCKED_EXCHANGE_ADD64_ACQUIRE(dest, addend) _InterlockedExchangeAdd64_acq((__int64*)(dest), (__int64)(addend))
|
|
284
320
|
#define BOOST_ATOMIC_INTERLOCKED_EXCHANGE_ADD64_RELEASE(dest, addend) _InterlockedExchangeAdd64_rel((__int64*)(dest), (__int64)(addend))
|
|
285
321
|
|
|
286
|
-
#if defined(_M_ARM64)
|
|
322
|
+
#if defined(_M_ARM64) || defined(_M_ARM64EC)
|
|
287
323
|
#define BOOST_ATOMIC_INTERLOCKED_EXCHANGE_ADD_POINTER(dest, byte_offset) ((void*)BOOST_ATOMIC_INTERLOCKED_EXCHANGE_ADD64((__int64*)(dest), byte_offset))
|
|
288
324
|
#define BOOST_ATOMIC_INTERLOCKED_EXCHANGE_ADD_POINTER_RELAXED(dest, byte_offset) ((void*)BOOST_ATOMIC_INTERLOCKED_EXCHANGE_ADD64_RELAXED((__int64*)(dest), byte_offset))
|
|
289
325
|
#define BOOST_ATOMIC_INTERLOCKED_EXCHANGE_ADD_POINTER_ACQUIRE(dest, byte_offset) ((void*)BOOST_ATOMIC_INTERLOCKED_EXCHANGE_ADD64_ACQUIRE((__int64*)(dest), byte_offset))
|
|
@@ -500,7 +536,8 @@ BOOST_ATOMIC_INTERLOCKED_IMPORT long __stdcall InterlockedExchangeAdd(long volat
|
|
|
500
536
|
BOOST_ATOMIC_INTERLOCKED_IMPORT long __stdcall InterlockedIncrement(long volatile*, long);
|
|
501
537
|
BOOST_ATOMIC_INTERLOCKED_IMPORT long __stdcall InterlockedDecrement(long volatile*, long);
|
|
502
538
|
|
|
503
|
-
#define BOOST_ATOMIC_INTERLOCKED_COMPARE_EXCHANGE(dest, exchange, compare)
|
|
539
|
+
#define BOOST_ATOMIC_INTERLOCKED_COMPARE_EXCHANGE(dest, exchange, compare) \
|
|
540
|
+
boost::atomics::detail::InterlockedCompareExchange((long*)(dest), (long)(exchange), (long)(compare))
|
|
504
541
|
#define BOOST_ATOMIC_INTERLOCKED_EXCHANGE(dest, newval) boost::atomics::detail::InterlockedExchange((long*)(dest), (long)(newval))
|
|
505
542
|
#define BOOST_ATOMIC_INTERLOCKED_EXCHANGE_ADD(dest, addend) boost::atomics::detail::InterlockedExchangeAdd((long*)(dest), (long)(addend))
|
|
506
543
|
#define BOOST_ATOMIC_INTERLOCKED_INCREMENT(dest) boost::atomics::detail::InterlockedIncrement((long*)(dest))
|
|
@@ -515,11 +552,13 @@ BOOST_ATOMIC_INTERLOCKED_IMPORT __int64 __stdcall InterlockedExchangeAdd64(__int
|
|
|
515
552
|
BOOST_ATOMIC_INTERLOCKED_IMPORT void* __stdcall InterlockedCompareExchangePointer(void* volatile*, void*, void*);
|
|
516
553
|
BOOST_ATOMIC_INTERLOCKED_IMPORT void* __stdcall InterlockedExchangePointer(void* volatile*, void*);
|
|
517
554
|
|
|
518
|
-
#define BOOST_ATOMIC_INTERLOCKED_COMPARE_EXCHANGE64(dest, exchange, compare)
|
|
555
|
+
#define BOOST_ATOMIC_INTERLOCKED_COMPARE_EXCHANGE64(dest, exchange, compare) \
|
|
556
|
+
boost::atomics::detail::InterlockedCompareExchange64((__int64*)(dest), (__int64)(exchange), (__int64)(compare))
|
|
519
557
|
#define BOOST_ATOMIC_INTERLOCKED_EXCHANGE64(dest, newval) boost::atomics::detail::InterlockedExchange64((__int64*)(dest), (__int64)(newval))
|
|
520
558
|
#define BOOST_ATOMIC_INTERLOCKED_EXCHANGE_ADD64(dest, addend) boost::atomics::detail::InterlockedExchangeAdd64((__int64*)(dest), (__int64)(addend))
|
|
521
559
|
|
|
522
|
-
#define BOOST_ATOMIC_INTERLOCKED_COMPARE_EXCHANGE_POINTER(dest, exchange, compare)
|
|
560
|
+
#define BOOST_ATOMIC_INTERLOCKED_COMPARE_EXCHANGE_POINTER(dest, exchange, compare) \
|
|
561
|
+
boost::atomics::detail::InterlockedCompareExchangePointer((void**)(dest), (void*)(exchange), (void*)(compare))
|
|
523
562
|
#define BOOST_ATOMIC_INTERLOCKED_EXCHANGE_POINTER(dest, newval) boost::atomics::detail::InterlockedExchangePointer((void**)(dest), (void*)(newval))
|
|
524
563
|
#define BOOST_ATOMIC_INTERLOCKED_EXCHANGE_ADD_POINTER(dest, byte_offset) ((void*)BOOST_ATOMIC_INTERLOCKED_EXCHANGE_ADD64(dest, byte_offset))
|
|
525
564
|
|
|
@@ -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/intptr.hpp
|
|
@@ -14,8 +14,8 @@
|
|
|
14
14
|
#ifndef BOOST_ATOMIC_DETAIL_INTPTR_HPP_INCLUDED_
|
|
15
15
|
#define BOOST_ATOMIC_DETAIL_INTPTR_HPP_INCLUDED_
|
|
16
16
|
|
|
17
|
-
#include <
|
|
18
|
-
#if defined(
|
|
17
|
+
#include <cstdint>
|
|
18
|
+
#if !defined(UINTPTR_MAX)
|
|
19
19
|
#include <cstddef>
|
|
20
20
|
#endif
|
|
21
21
|
#include <boost/atomic/detail/config.hpp>
|
|
@@ -29,12 +29,12 @@ namespace boost {
|
|
|
29
29
|
namespace atomics {
|
|
30
30
|
namespace detail {
|
|
31
31
|
|
|
32
|
-
#if
|
|
33
|
-
using
|
|
34
|
-
using
|
|
32
|
+
#if defined(UINTPTR_MAX)
|
|
33
|
+
using std::uintptr_t;
|
|
34
|
+
using std::intptr_t;
|
|
35
35
|
#else
|
|
36
|
-
|
|
37
|
-
|
|
36
|
+
using uintptr_t = std::size_t;
|
|
37
|
+
using intptr_t = std::ptrdiff_t;
|
|
38
38
|
#endif
|
|
39
39
|
|
|
40
40
|
} // namespace detail
|
|
@@ -16,16 +16,18 @@
|
|
|
16
16
|
#define BOOST_ATOMIC_DETAIL_LOCK_POOL_HPP_INCLUDED_
|
|
17
17
|
|
|
18
18
|
#include <cstddef>
|
|
19
|
+
#include <chrono>
|
|
19
20
|
#include <boost/atomic/detail/config.hpp>
|
|
20
21
|
#include <boost/atomic/detail/link.hpp>
|
|
21
22
|
#include <boost/atomic/detail/intptr.hpp>
|
|
22
23
|
#if defined(BOOST_WINDOWS)
|
|
23
24
|
#include <boost/winapi/thread.hpp>
|
|
24
|
-
#
|
|
25
|
+
#else // defined(BOOST_WINDOWS)
|
|
25
26
|
#include <time.h>
|
|
26
|
-
#
|
|
27
|
+
#if !defined(BOOST_HAS_NANOSLEEP)
|
|
27
28
|
#include <unistd.h>
|
|
28
|
-
#endif
|
|
29
|
+
#endif // !defined(BOOST_HAS_NANOSLEEP)
|
|
30
|
+
#endif // defined(BOOST_WINDOWS)
|
|
29
31
|
#include <boost/atomic/detail/header.hpp>
|
|
30
32
|
|
|
31
33
|
#ifdef BOOST_HAS_PRAGMA_ONCE
|
|
@@ -36,7 +38,7 @@ namespace boost {
|
|
|
36
38
|
namespace atomics {
|
|
37
39
|
namespace detail {
|
|
38
40
|
|
|
39
|
-
BOOST_FORCEINLINE void wait_some()
|
|
41
|
+
BOOST_FORCEINLINE void wait_some() noexcept
|
|
40
42
|
{
|
|
41
43
|
#if defined(BOOST_WINDOWS)
|
|
42
44
|
boost::winapi::SwitchToThread();
|
|
@@ -44,41 +46,45 @@ BOOST_FORCEINLINE void wait_some() BOOST_NOEXCEPT
|
|
|
44
46
|
// Do not use sched_yield or pthread_yield as at least on Linux it doesn't block the thread if there are no other
|
|
45
47
|
// pending threads on the current CPU. Proper sleeping is guaranteed to block the thread, which allows other threads
|
|
46
48
|
// to potentially migrate to this CPU and complete the tasks we're waiting for.
|
|
47
|
-
|
|
49
|
+
timespec ts{};
|
|
48
50
|
ts.tv_sec = 0;
|
|
49
51
|
ts.tv_nsec = 1000;
|
|
50
|
-
|
|
52
|
+
nanosleep(&ts, nullptr);
|
|
51
53
|
#else
|
|
52
|
-
|
|
54
|
+
usleep(1);
|
|
53
55
|
#endif
|
|
54
56
|
}
|
|
55
57
|
|
|
56
58
|
namespace lock_pool {
|
|
57
59
|
|
|
58
|
-
BOOST_ATOMIC_DECL void* short_lock(atomics::detail::uintptr_t h)
|
|
59
|
-
BOOST_ATOMIC_DECL void* long_lock(atomics::detail::uintptr_t h)
|
|
60
|
-
BOOST_ATOMIC_DECL void unlock(void*
|
|
60
|
+
BOOST_ATOMIC_DECL void* short_lock(atomics::detail::uintptr_t h) noexcept;
|
|
61
|
+
BOOST_ATOMIC_DECL void* long_lock(atomics::detail::uintptr_t h) noexcept;
|
|
62
|
+
BOOST_ATOMIC_DECL void unlock(void* vls) noexcept;
|
|
61
63
|
|
|
62
|
-
BOOST_ATOMIC_DECL void* allocate_wait_state(void*
|
|
63
|
-
BOOST_ATOMIC_DECL void free_wait_state(void*
|
|
64
|
-
BOOST_ATOMIC_DECL void wait(void*
|
|
65
|
-
|
|
66
|
-
BOOST_ATOMIC_DECL
|
|
64
|
+
BOOST_ATOMIC_DECL void* allocate_wait_state(void* vls, const volatile void* addr) noexcept;
|
|
65
|
+
BOOST_ATOMIC_DECL void free_wait_state(void* vls, void* vws) noexcept;
|
|
66
|
+
BOOST_ATOMIC_DECL void wait(void* vls, void* vws) noexcept;
|
|
67
|
+
#if !defined(BOOST_WINDOWS)
|
|
68
|
+
BOOST_ATOMIC_DECL bool wait_until(void* vls, void* vws, clockid_t clock_id, timespec const& abs_timeout) noexcept;
|
|
69
|
+
#endif // !defined(BOOST_WINDOWS)
|
|
70
|
+
BOOST_ATOMIC_DECL bool wait_for(void* vls, void* vws, std::chrono::nanoseconds rel_timeout) noexcept;
|
|
71
|
+
BOOST_ATOMIC_DECL void notify_one(void* vls, const volatile void* addr) noexcept;
|
|
72
|
+
BOOST_ATOMIC_DECL void notify_all(void* vls, const volatile void* addr) noexcept;
|
|
67
73
|
|
|
68
|
-
BOOST_ATOMIC_DECL void thread_fence()
|
|
69
|
-
BOOST_ATOMIC_DECL void signal_fence()
|
|
74
|
+
BOOST_ATOMIC_DECL void thread_fence() noexcept;
|
|
75
|
+
BOOST_ATOMIC_DECL void signal_fence() noexcept;
|
|
70
76
|
|
|
71
77
|
template< std::size_t Alignment >
|
|
72
|
-
BOOST_FORCEINLINE atomics::detail::uintptr_t hash_ptr(const volatile void* addr)
|
|
78
|
+
BOOST_FORCEINLINE atomics::detail::uintptr_t hash_ptr(const volatile void* addr) noexcept
|
|
73
79
|
{
|
|
74
|
-
atomics::detail::uintptr_t ptr =
|
|
80
|
+
atomics::detail::uintptr_t ptr = reinterpret_cast< atomics::detail::uintptr_t >(addr);
|
|
75
81
|
atomics::detail::uintptr_t h = ptr / Alignment;
|
|
76
82
|
|
|
77
83
|
// Since many malloc/new implementations return pointers with higher alignment
|
|
78
84
|
// than indicated by Alignment, it makes sense to mix higher bits
|
|
79
85
|
// into the lower ones. On 64-bit platforms, malloc typically aligns to 16 bytes,
|
|
80
86
|
// on 32-bit - to 8 bytes.
|
|
81
|
-
|
|
87
|
+
constexpr std::size_t malloc_alignment = sizeof(void*) >= 8u ? 16u : 8u;
|
|
82
88
|
BOOST_IF_CONSTEXPR (Alignment != malloc_alignment)
|
|
83
89
|
h ^= ptr / malloc_alignment;
|
|
84
90
|
|
|
@@ -92,7 +98,7 @@ private:
|
|
|
92
98
|
void* m_lock;
|
|
93
99
|
|
|
94
100
|
public:
|
|
95
|
-
explicit scoped_lock(const volatile void* addr)
|
|
101
|
+
explicit scoped_lock(const volatile void* addr) noexcept
|
|
96
102
|
{
|
|
97
103
|
atomics::detail::uintptr_t h = lock_pool::hash_ptr< Alignment >(addr);
|
|
98
104
|
BOOST_IF_CONSTEXPR (!LongLock)
|
|
@@ -100,18 +106,19 @@ public:
|
|
|
100
106
|
else
|
|
101
107
|
m_lock = lock_pool::long_lock(h);
|
|
102
108
|
}
|
|
103
|
-
|
|
109
|
+
|
|
110
|
+
scoped_lock(scoped_lock const&) = delete;
|
|
111
|
+
scoped_lock& operator=(scoped_lock const&) = delete;
|
|
112
|
+
|
|
113
|
+
~scoped_lock() noexcept
|
|
104
114
|
{
|
|
105
115
|
lock_pool::unlock(m_lock);
|
|
106
116
|
}
|
|
107
117
|
|
|
108
|
-
void* get_lock_state() const
|
|
118
|
+
void* get_lock_state() const noexcept
|
|
109
119
|
{
|
|
110
120
|
return m_lock;
|
|
111
121
|
}
|
|
112
|
-
|
|
113
|
-
BOOST_DELETED_FUNCTION(scoped_lock(scoped_lock const&))
|
|
114
|
-
BOOST_DELETED_FUNCTION(scoped_lock& operator=(scoped_lock const&))
|
|
115
122
|
};
|
|
116
123
|
|
|
117
124
|
template< std::size_t Alignment >
|
|
@@ -122,23 +129,36 @@ private:
|
|
|
122
129
|
void* m_wait_state;
|
|
123
130
|
|
|
124
131
|
public:
|
|
125
|
-
explicit scoped_wait_state(const volatile void* addr)
|
|
132
|
+
explicit scoped_wait_state(const volatile void* addr) noexcept :
|
|
126
133
|
scoped_lock< Alignment, true >(addr)
|
|
127
134
|
{
|
|
128
135
|
m_wait_state = lock_pool::allocate_wait_state(this->get_lock_state(), addr);
|
|
129
136
|
}
|
|
130
|
-
|
|
137
|
+
|
|
138
|
+
scoped_wait_state(scoped_wait_state const&) = delete;
|
|
139
|
+
scoped_wait_state& operator=(scoped_wait_state const&) = delete;
|
|
140
|
+
|
|
141
|
+
~scoped_wait_state() noexcept
|
|
131
142
|
{
|
|
132
143
|
lock_pool::free_wait_state(this->get_lock_state(), m_wait_state);
|
|
133
144
|
}
|
|
134
145
|
|
|
135
|
-
void wait()
|
|
146
|
+
void wait() noexcept
|
|
136
147
|
{
|
|
137
148
|
lock_pool::wait(this->get_lock_state(), m_wait_state);
|
|
138
149
|
}
|
|
139
150
|
|
|
140
|
-
|
|
141
|
-
|
|
151
|
+
#if !defined(BOOST_WINDOWS)
|
|
152
|
+
bool wait_until(clockid_t clock_id, timespec const& abs_timeout) noexcept
|
|
153
|
+
{
|
|
154
|
+
return lock_pool::wait_until(this->get_lock_state(), m_wait_state, clock_id, abs_timeout);
|
|
155
|
+
}
|
|
156
|
+
#endif // !defined(BOOST_WINDOWS)
|
|
157
|
+
|
|
158
|
+
bool wait_for(std::chrono::nanoseconds rel_timeout) noexcept
|
|
159
|
+
{
|
|
160
|
+
return lock_pool::wait_for(this->get_lock_state(), m_wait_state, rel_timeout);
|
|
161
|
+
}
|
|
142
162
|
};
|
|
143
163
|
|
|
144
164
|
} // namespace lock_pool
|
|
@@ -26,12 +26,12 @@ namespace boost {
|
|
|
26
26
|
namespace atomics {
|
|
27
27
|
namespace detail {
|
|
28
28
|
|
|
29
|
-
BOOST_FORCEINLINE
|
|
29
|
+
BOOST_FORCEINLINE constexpr memory_order deduce_failure_order(memory_order order) noexcept
|
|
30
30
|
{
|
|
31
31
|
return order == memory_order_acq_rel ? memory_order_acquire : (order == memory_order_release ? memory_order_relaxed : order);
|
|
32
32
|
}
|
|
33
33
|
|
|
34
|
-
BOOST_FORCEINLINE
|
|
34
|
+
BOOST_FORCEINLINE constexpr bool cas_failure_order_must_not_be_stronger_than_success_order(memory_order success_order, memory_order failure_order) noexcept
|
|
35
35
|
{
|
|
36
36
|
// 15 == (memory_order_seq_cst | memory_order_consume), see memory_order.hpp
|
|
37
37
|
// Given the enum values we can test the strength of memory order requirements with this single condition.
|
|
@@ -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/once_flag.hpp
|
|
@@ -27,7 +27,7 @@ namespace boost {
|
|
|
27
27
|
namespace atomics {
|
|
28
28
|
namespace detail {
|
|
29
29
|
|
|
30
|
-
|
|
30
|
+
using once_flag_operations = atomics::detail::core_operations< 1u, false, false >;
|
|
31
31
|
|
|
32
32
|
struct once_flag
|
|
33
33
|
{
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
#ifndef BOOST_ATOMIC_DETAIL_OPS_GCC_ARM_COMMON_HPP_INCLUDED_
|
|
17
17
|
#define BOOST_ATOMIC_DETAIL_OPS_GCC_ARM_COMMON_HPP_INCLUDED_
|
|
18
18
|
|
|
19
|
-
#include <
|
|
19
|
+
#include <cstdint>
|
|
20
20
|
#include <boost/memory_order.hpp>
|
|
21
21
|
#include <boost/atomic/detail/config.hpp>
|
|
22
22
|
#include <boost/atomic/detail/fence_arch_operations.hpp>
|
|
@@ -32,22 +32,22 @@ namespace detail {
|
|
|
32
32
|
|
|
33
33
|
struct core_arch_operations_gcc_arm_base
|
|
34
34
|
{
|
|
35
|
-
static
|
|
36
|
-
static
|
|
35
|
+
static constexpr bool full_cas_based = false;
|
|
36
|
+
static constexpr bool is_always_lock_free = true;
|
|
37
37
|
|
|
38
|
-
static BOOST_FORCEINLINE void fence_before(memory_order order)
|
|
38
|
+
static BOOST_FORCEINLINE void fence_before(memory_order order) noexcept
|
|
39
39
|
{
|
|
40
40
|
if ((static_cast< unsigned int >(order) & static_cast< unsigned int >(memory_order_release)) != 0u)
|
|
41
41
|
fence_arch_operations::hardware_full_fence();
|
|
42
42
|
}
|
|
43
43
|
|
|
44
|
-
static BOOST_FORCEINLINE void fence_after(memory_order order)
|
|
44
|
+
static BOOST_FORCEINLINE void fence_after(memory_order order) noexcept
|
|
45
45
|
{
|
|
46
46
|
if ((static_cast< unsigned int >(order) & (static_cast< unsigned int >(memory_order_consume) | static_cast< unsigned int >(memory_order_acquire))) != 0u)
|
|
47
47
|
fence_arch_operations::hardware_full_fence();
|
|
48
48
|
}
|
|
49
49
|
|
|
50
|
-
static BOOST_FORCEINLINE void fence_after_store(memory_order order)
|
|
50
|
+
static BOOST_FORCEINLINE void fence_after_store(memory_order order) noexcept
|
|
51
51
|
{
|
|
52
52
|
if (order == memory_order_seq_cst)
|
|
53
53
|
fence_arch_operations::hardware_full_fence();
|
|
@@ -41,10 +41,10 @@ namespace detail {
|
|
|
41
41
|
|
|
42
42
|
struct core_arch_operations_gcc_ppc_base
|
|
43
43
|
{
|
|
44
|
-
static
|
|
45
|
-
static
|
|
44
|
+
static constexpr bool full_cas_based = false;
|
|
45
|
+
static constexpr bool is_always_lock_free = true;
|
|
46
46
|
|
|
47
|
-
static BOOST_FORCEINLINE void fence_before(memory_order order)
|
|
47
|
+
static BOOST_FORCEINLINE void fence_before(memory_order order) noexcept
|
|
48
48
|
{
|
|
49
49
|
#if defined(__powerpc64__) || defined(__PPC64__)
|
|
50
50
|
if (order == memory_order_seq_cst)
|
|
@@ -57,7 +57,7 @@ struct core_arch_operations_gcc_ppc_base
|
|
|
57
57
|
#endif
|
|
58
58
|
}
|
|
59
59
|
|
|
60
|
-
static BOOST_FORCEINLINE void fence_after(memory_order order)
|
|
60
|
+
static BOOST_FORCEINLINE void fence_after(memory_order order) noexcept
|
|
61
61
|
{
|
|
62
62
|
if ((static_cast< unsigned int >(order) & (static_cast< unsigned int >(memory_order_consume) | static_cast< unsigned int >(memory_order_acquire))) != 0u)
|
|
63
63
|
__asm__ __volatile__ ("isync" ::: "memory");
|
|
@@ -82,13 +82,13 @@
|
|
|
82
82
|
|
|
83
83
|
#define BOOST_ATOMIC_DETAIL_CORE_ARCH_BACKEND gcc_alpha
|
|
84
84
|
|
|
85
|
-
#elif defined(_MSC_VER) && (defined(
|
|
85
|
+
#elif defined(_MSC_VER) && _MSC_VER >= 1700 && (defined(_M_ARM) || defined(_M_ARM64) || defined(_M_ARM64EC))
|
|
86
86
|
|
|
87
|
-
#define BOOST_ATOMIC_DETAIL_CORE_ARCH_BACKEND
|
|
87
|
+
#define BOOST_ATOMIC_DETAIL_CORE_ARCH_BACKEND msvc_arm
|
|
88
88
|
|
|
89
|
-
#elif defined(_MSC_VER) &&
|
|
89
|
+
#elif defined(_MSC_VER) && (defined(_M_IX86) || defined(_M_AMD64))
|
|
90
90
|
|
|
91
|
-
#define BOOST_ATOMIC_DETAIL_CORE_ARCH_BACKEND
|
|
91
|
+
#define BOOST_ATOMIC_DETAIL_CORE_ARCH_BACKEND msvc_x86
|
|
92
92
|
|
|
93
93
|
#endif
|
|
94
94
|
|
|
@@ -133,7 +133,7 @@
|
|
|
133
133
|
|
|
134
134
|
#define BOOST_ATOMIC_DETAIL_CORE_BACKEND linux_arm
|
|
135
135
|
|
|
136
|
-
#elif defined(BOOST_WINDOWS) || defined(
|
|
136
|
+
#elif defined(BOOST_WINDOWS) || defined(_WIN32_WCE)
|
|
137
137
|
|
|
138
138
|
#define BOOST_ATOMIC_DETAIL_CORE_BACKEND windows
|
|
139
139
|
|