passenger 6.0.27 → 6.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG +42 -2
- data/CONTRIBUTORS +2 -0
- data/Rakefile +6 -13
- data/bin/passenger-install-apache2-module +21 -22
- data/bin/passenger-install-nginx-module +50 -47
- data/bin/passenger-status +9 -10
- data/build/common_library.rb +4 -4
- data/build/support/cxx_dependency_map.rb +3 -621
- data/build/support/vendor/cxxcodebuilder/lib/cxxcodebuilder/builder.rb +1 -1
- data/build/test_basics.rb +4 -3
- data/dev/copy_boost_headers +54 -40
- data/dev/index_cxx_dependencies.rb +4 -0
- data/dev/ruby_server.rb +1 -1
- data/package.json +1 -1
- data/src/agent/Core/ApplicationPool/Implementation.cpp +1 -1
- data/src/agent/Core/ApplicationPool/Socket.h +3 -3
- data/src/agent/Core/ApplicationPool/TestSession.h +3 -4
- data/src/agent/Core/Config.h +1 -6
- data/src/agent/Core/Controller/Config.h +1 -1
- data/src/agent/Core/CoreMain.cpp +1 -0
- data/src/agent/Core/SecurityUpdateChecker.h +10 -1
- data/src/agent/Core/SpawningKit/Exceptions.h +0 -1
- data/src/agent/Core/SpawningKit/Handshake/Perform.h +13 -2
- data/src/agent/Shared/Fundamentals/AbortHandler.cpp +23 -5
- data/src/agent/Shared/Fundamentals/AbortHandler.h +10 -22
- data/src/agent/Shared/Fundamentals/Initialization.cpp +1 -0
- data/src/agent/Watchdog/Config.h +1 -1
- data/src/apache2_module/ConfigGeneral/AutoGeneratedDefinitions.cpp +5 -0
- data/src/apache2_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.cpp +5 -0
- data/src/apache2_module/ConfigGeneral/AutoGeneratedSetterFuncs.cpp +14 -0
- data/src/apache2_module/DirConfig/AutoGeneratedCreateFunction.cpp +3 -0
- data/src/apache2_module/DirConfig/AutoGeneratedHeaderSerialization.cpp +3 -0
- data/src/apache2_module/DirConfig/AutoGeneratedManifestGeneration.cpp +11 -0
- data/src/apache2_module/DirConfig/AutoGeneratedMergeFunction.cpp +7 -0
- data/src/apache2_module/DirConfig/AutoGeneratedStruct.h +17 -0
- data/src/apache2_module/Hooks.cpp +0 -6
- data/src/cxx_supportlib/ConfigKit/IN_PRACTICE.md +2 -12
- data/src/cxx_supportlib/ConfigKit/Store.h +1 -6
- data/src/cxx_supportlib/Constants.h +1 -1
- data/src/cxx_supportlib/DataStructures/StringKeyTable.h +1 -7
- data/src/cxx_supportlib/Exceptions.cpp +178 -0
- data/src/cxx_supportlib/Exceptions.h +62 -177
- data/src/cxx_supportlib/IOTools/IOUtils.cpp +255 -228
- data/src/cxx_supportlib/IOTools/IOUtils.h +84 -121
- data/src/cxx_supportlib/ServerKit/Config.h +1 -6
- data/src/cxx_supportlib/ServerKit/FileBufferedChannel.h +1 -1
- data/src/cxx_supportlib/StaticString.h +1 -6
- data/src/cxx_supportlib/Utils/Curl.h +1 -6
- data/src/cxx_supportlib/Utils/ScopeGuard.h +0 -32
- data/src/cxx_supportlib/oxt/implementation.cpp +2 -2
- data/src/cxx_supportlib/oxt/spin_lock.hpp +94 -23
- data/src/cxx_supportlib/vendor-modified/boost/assert/source_location.hpp +8 -1
- data/src/cxx_supportlib/vendor-modified/boost/assert.hpp +6 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/atomic.hpp +94 -110
- data/src/cxx_supportlib/vendor-modified/boost/atomic/atomic_flag.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/atomic/atomic_ref.hpp +14 -14
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/addressof.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/atomic_flag_impl.hpp +52 -24
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/atomic_impl.hpp +641 -285
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/atomic_ref_impl.hpp +593 -260
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/bitwise_cast.hpp +37 -24
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/bitwise_fp_cast.hpp +9 -9
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/cas_based_exchange.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/chrono.hpp +93 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/classify.hpp +16 -17
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/config.hpp +25 -34
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_gcc_aarch32.hpp +204 -97
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_gcc_aarch64.hpp +251 -122
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_gcc_alpha.hpp +56 -56
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_gcc_arm.hpp +129 -129
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_gcc_ppc.hpp +253 -125
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_gcc_sparc.hpp +25 -25
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_gcc_x86.hpp +193 -126
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_msvc_arm.hpp +57 -57
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_msvc_x86.hpp +96 -97
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_operations_emulated.hpp +24 -24
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_ops_cas_based.hpp +10 -10
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_ops_gcc_atomic.hpp +27 -24
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_ops_gcc_sync.hpp +39 -37
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_ops_linux_arm.hpp +17 -17
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extending_cas_based_arithmetic.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_fp_ops_emulated.hpp +12 -12
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_fp_ops_generic.hpp +21 -21
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_emulated.hpp +30 -30
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_gcc_aarch32.hpp +170 -98
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_gcc_aarch64.hpp +209 -119
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_gcc_arm.hpp +95 -95
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_gcc_ppc.hpp +148 -76
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_gcc_x86.hpp +293 -123
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_generic.hpp +87 -71
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_msvc_arm.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_msvc_x86.hpp +88 -88
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_operations.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_gcc_aarch32.hpp +4 -5
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_gcc_aarch64.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_gcc_alpha.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_gcc_arm.hpp +9 -9
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_gcc_ppc.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_gcc_sparc.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_gcc_x86.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_msvc_arm.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_msvc_x86.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_operations.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_operations_emulated.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_ops_gcc_atomic.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_ops_gcc_sync.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_ops_linux_arm.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fp_ops_emulated.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fp_ops_generic.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/futex.hpp +110 -49
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/gcc_atomic_memory_order_utils.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/has_posix_clock_traits.hpp +51 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/int_sizes.hpp +26 -32
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/integral_conversions.hpp +15 -15
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/interlocked.hpp +69 -30
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/intptr.hpp +8 -8
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/lock_pool.hpp +51 -31
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/memory_order_utils.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/once_flag.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_arm_common.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_ppc_common.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/platform.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/storage_traits.hpp +31 -31
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/alignment_of.hpp +2 -3
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/has_unique_object_representations.hpp +2 -5
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_floating_point.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_iec559.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_integral.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_signed.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_trivially_copyable.hpp +20 -13
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_trivially_default_constructible.hpp +13 -13
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/make_signed.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/make_unsigned.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_ops_darwin_ulock.hpp +90 -16
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_ops_dragonfly_umtx.hpp +80 -11
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_ops_emulated.hpp +160 -15
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_ops_freebsd_umtx.hpp +327 -38
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_ops_futex.hpp +276 -33
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_ops_generic.hpp +260 -20
- data/src/cxx_supportlib/vendor-modified/boost/atomic/fences.hpp +4 -3
- data/src/cxx_supportlib/vendor-modified/boost/atomic/ipc_atomic.hpp +14 -18
- data/src/cxx_supportlib/vendor-modified/boost/atomic/ipc_atomic_flag.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/atomic/ipc_atomic_ref.hpp +13 -13
- data/src/cxx_supportlib/vendor-modified/boost/atomic/posix_clock_traits_fwd.hpp +59 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/thread_pause.hpp +102 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/wait_result.hpp +56 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic.hpp +4 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libcpp.hpp +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/allocator.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/allocator_traits.hpp +108 -41
- data/src/cxx_supportlib/vendor-modified/boost/container/deque.hpp +1235 -1009
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/advanced_insert_int.hpp +3 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/algorithm.hpp +56 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/alloc_helpers.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/alloc_lib.h +9 -9
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/compare_functors.hpp +23 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/config_begin.hpp +0 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/copy_move_algo.hpp +88 -23
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/flat_tree.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_pool_impl.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/operator_new_helpers.hpp +68 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/pair.hpp +72 -13
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/std_fwd.hpp +13 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/tree.hpp +8 -5
- data/src/cxx_supportlib/vendor-modified/boost/container/devector.hpp +31 -10
- data/src/cxx_supportlib/vendor-modified/boost/container/flat_map.hpp +37 -10
- data/src/cxx_supportlib/vendor-modified/boost/container/flat_set.hpp +19 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/list.hpp +23 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/map.hpp +72 -5
- data/src/cxx_supportlib/vendor-modified/boost/container/new_allocator.hpp +3 -10
- data/src/cxx_supportlib/vendor-modified/boost/container/options.hpp +54 -23
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/devector.hpp +6 -4
- data/src/cxx_supportlib/vendor-modified/boost/container/set.hpp +19 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/slist.hpp +32 -5
- data/src/cxx_supportlib/vendor-modified/boost/container/small_vector.hpp +27 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/stable_vector.hpp +22 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/static_vector.hpp +37 -17
- data/src/cxx_supportlib/vendor-modified/boost/container/string.hpp +23 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/vector.hpp +41 -20
- data/src/cxx_supportlib/vendor-modified/boost/container_hash/hash.hpp +5 -8
- data/src/cxx_supportlib/vendor-modified/boost/container_hash/hash_fwd.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/container_hash/hash_is_avalanching.hpp +57 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/bit.hpp +29 -29
- data/src/cxx_supportlib/vendor-modified/boost/core/cmath.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/core/data.hpp +15 -1
- data/src/cxx_supportlib/vendor-modified/boost/core/default_allocator.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/demangle.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/core/detail/assert.hpp +18 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/detail/sp_thread_sleep.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/core/detail/static_assert.hpp +42 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/detail/string_view.hpp +16 -10
- data/src/cxx_supportlib/vendor-modified/boost/core/lightweight_test.hpp +35 -27
- data/src/cxx_supportlib/vendor-modified/boost/core/scoped_enum.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/core/size.hpp +14 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/span.hpp +20 -9
- data/src/cxx_supportlib/vendor-modified/boost/cregex.hpp +0 -5
- data/src/cxx_supportlib/vendor-modified/boost/describe/detail/config.hpp +8 -0
- data/src/cxx_supportlib/vendor-modified/boost/describe/modifiers.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/foreach.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/ebo_functor_holder.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/list.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/pointer_rebind.hpp +9 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/rbtree_algorithms.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/slist.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/iterator/advance.hpp +43 -64
- data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/config_def.hpp +0 -83
- data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/config_undef.hpp +1 -5
- data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/eval_if_default.hpp +44 -0
- data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/facade_iterator_category.hpp +103 -117
- data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/type_traits/conjunction.hpp +53 -0
- data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/type_traits/disjunction.hpp +53 -0
- data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/type_traits/negation.hpp +53 -0
- data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/type_traits/type_identity.hpp +54 -0
- data/src/cxx_supportlib/vendor-modified/boost/iterator/distance.hpp +32 -38
- data/src/cxx_supportlib/vendor-modified/boost/iterator/enable_if_convertible.hpp +84 -0
- data/src/cxx_supportlib/vendor-modified/boost/iterator/interoperable.hpp +22 -34
- data/src/cxx_supportlib/vendor-modified/boost/iterator/is_iterator.hpp +16 -16
- data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_adaptor.hpp +162 -309
- data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_categories.hpp +52 -161
- data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_concepts.hpp +3 -11
- data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_facade.hpp +804 -977
- data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_traits.hpp +24 -17
- data/src/cxx_supportlib/vendor-modified/boost/iterator/min_category.hpp +83 -0
- data/src/cxx_supportlib/vendor-modified/boost/iterator/minimum_category.hpp +11 -73
- data/src/cxx_supportlib/vendor-modified/boost/iterator/reverse_iterator.hpp +56 -57
- data/src/cxx_supportlib/vendor-modified/boost/iterator/transform_iterator.hpp +123 -156
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/bad_lexical_cast.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/buffer_view.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical.hpp +36 -33
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical_streams.hpp +43 -50
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_numeric.hpp +23 -27
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/inf_nan.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/is_character.hpp +10 -11
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_basic_unlockedbuf.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_char_constants.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_unsigned_converters.hpp +6 -7
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/type_traits.hpp +81 -0
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/widest_char.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/try_lexical_convert.hpp +8 -9
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/wide_posix_api.cpp +1 -12
- data/src/cxx_supportlib/vendor-modified/boost/memory_order.hpp +8 -26
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/iterator_to_raw_pointer.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/launder.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/std_ns_begin.hpp +6 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/unique_ptr_meta_utils.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/mp11/algorithm.hpp +11 -44
- data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_map_find.hpp +34 -0
- data/src/cxx_supportlib/vendor-modified/boost/mp11/set.hpp +33 -1
- data/src/cxx_supportlib/vendor-modified/boost/mp11/version.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/mpl/and.hpp +4 -8
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/na_assert.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/ptr_to_ref.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/mpl/bitand.hpp +2 -6
- data/src/cxx_supportlib/vendor-modified/boost/mpl/bitor.hpp +2 -6
- data/src/cxx_supportlib/vendor-modified/boost/mpl/or.hpp +2 -6
- data/src/cxx_supportlib/vendor-modified/boost/pool/pool.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/pool/simple_segregated_storage.hpp +0 -13
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/limits/to_seq_256.hpp +190 -190
- data/src/cxx_supportlib/vendor-modified/boost/random/beta_distribution.hpp +12 -2
- data/src/cxx_supportlib/vendor-modified/boost/random/detail/config.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/detail/size.hpp +41 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/detail/xoshiro_base.hpp +472 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/discrete_distribution.hpp +7 -10
- data/src/cxx_supportlib/vendor-modified/boost/random/gamma_distribution.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/random/generalized_inverse_gaussian_distribution.hpp +339 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/hyperexponential_distribution.hpp +12 -14
- data/src/cxx_supportlib/vendor-modified/boost/random/inverse_gaussian_distribution.hpp +226 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/mersenne_twister.hpp +1 -4
- data/src/cxx_supportlib/vendor-modified/boost/random/mixmax.hpp +63 -63
- data/src/cxx_supportlib/vendor-modified/boost/random/piecewise_constant_distribution.hpp +7 -10
- data/src/cxx_supportlib/vendor-modified/boost/random/piecewise_linear_distribution.hpp +8 -11
- data/src/cxx_supportlib/vendor-modified/boost/random/seed_seq.hpp +1 -3
- data/src/cxx_supportlib/vendor-modified/boost/random/splitmix64.hpp +1 -4
- data/src/cxx_supportlib/vendor-modified/boost/random/xoshiro.hpp +488 -0
- data/src/cxx_supportlib/vendor-modified/boost/random.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/range/concepts.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/range/detail/has_member_size.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/range/detail/msvc_has_iterator_workaround.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/range/has_range_iterator.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/range/iterator.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/range/iterator_range_core.hpp +4 -1
- data/src/cxx_supportlib/vendor-modified/boost/range/size_type.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/regex/concepts.hpp +35 -18
- data/src/cxx_supportlib/vendor-modified/boost/regex/config.hpp +18 -101
- data/src/cxx_supportlib/vendor-modified/boost/regex/pattern_except.hpp +0 -4
- data/src/cxx_supportlib/vendor-modified/boost/regex/pending/object_cache.hpp +0 -4
- data/src/cxx_supportlib/vendor-modified/boost/regex/pending/unicode_iterator.hpp +0 -6
- data/src/cxx_supportlib/vendor-modified/boost/regex/regex_traits.hpp +0 -4
- data/src/cxx_supportlib/vendor-modified/boost/regex/user.hpp +4 -10
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/basic_regex.hpp +63 -17
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/basic_regex_creator.hpp +71 -16
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/basic_regex_parser.hpp +22 -1
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/c_regex_traits.hpp +11 -4
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/char_regex_traits.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/cpp_regex_traits.hpp +11 -8
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/cregex.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/error_type.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/icu.hpp +40 -38
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/iterator_category.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/iterator_traits.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/match_flags.hpp +39 -37
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/match_results.hpp +46 -9
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/mem_block_cache.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/object_cache.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/pattern_except.hpp +6 -4
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/perl_matcher.hpp +57 -8
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/perl_matcher_common.hpp +21 -6
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/perl_matcher_non_recursive.hpp +18 -3
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regbase.hpp +4 -2
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_format.hpp +23 -18
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_fwd.hpp +9 -9
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_grep.hpp +9 -5
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_iterator.hpp +11 -7
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_match.hpp +10 -7
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_merge.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_raw_buffer.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_replace.hpp +6 -2
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_search.hpp +12 -9
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_split.hpp +6 -3
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_token_iterator.hpp +16 -11
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_traits.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_traits_defaults.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_workaround.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/states.hpp +7 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/sub_match.hpp +54 -49
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/syntax_type.hpp +64 -62
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/u32regex_iterator.hpp +16 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/u32regex_token_iterator.hpp +12 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/unicode_iterator.hpp +6 -4
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/w32_regex_traits.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/regex.hpp +0 -4
- data/src/cxx_supportlib/vendor-modified/boost/regex_fwd.hpp +0 -4
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count.hpp +1 -43
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/deprecated_macros.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/shared_count.hpp +2 -77
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base.hpp +1 -64
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_nt.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_impl.hpp +0 -77
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_cxx20_constexpr.hpp +37 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock.hpp +5 -28
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/intrusive_ptr.hpp +41 -40
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/scoped_array.hpp +0 -15
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/scoped_ptr.hpp +0 -18
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/shared_ptr.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/thread/future.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/tuple/detail/tuple_basic.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/integral_constant.hpp +8 -6
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_complete.hpp +31 -10
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/fca.hpp +34 -8
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/core.hpp +6 -4
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/table.hpp +9 -1
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/implementation.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/unordered/{unordered_printers.hpp → detail/unordered_printers.hpp} +34 -36
- data/src/cxx_supportlib/vendor-modified/boost/unordered/hash_traits.hpp +6 -49
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_map.hpp +6 -1
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_set.hpp +6 -1
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_map.hpp +6 -1
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_set.hpp +6 -1
- data/src/cxx_supportlib/vendor-modified/boost/version.hpp +2 -2
- data/src/nginx_module/ContentHandler.c +2 -0
- data/src/ruby_supportlib/phusion_passenger/config/download_agent_command.rb +3 -5
- data/src/ruby_supportlib/phusion_passenger/config/download_nginx_engine_command.rb +3 -5
- data/src/ruby_supportlib/phusion_passenger/config/install_agent_command.rb +3 -5
- data/src/ruby_supportlib/phusion_passenger/config/install_standalone_runtime_command.rb +3 -5
- data/src/ruby_supportlib/phusion_passenger/config/installation_utils.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/config/nginx_engine_compiler.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/loader_shared_helpers.rb +5 -3
- data/src/ruby_supportlib/phusion_passenger/platform_info/apache.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/platform_info/compiler.rb +12 -23
- data/src/ruby_supportlib/phusion_passenger/platform_info/cxx_portability.rb +31 -32
- data/src/ruby_supportlib/phusion_passenger/rack_handler.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/request_handler/thread_handler.rb +2 -3
- data/src/ruby_supportlib/phusion_passenger/standalone/config_utils.rb +2 -0
- data/src/ruby_supportlib/phusion_passenger/standalone/start_command/builtin_engine.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/utils/json.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/utils/terminal_choice_menu.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/gdb_controller.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger.rb +8 -8
- metadata +27 -104
- data/src/cxx_supportlib/oxt/detail/spin_lock_darwin.hpp +0 -75
- data/src/cxx_supportlib/oxt/detail/spin_lock_gcc_x86.hpp +0 -85
- data/src/cxx_supportlib/oxt/detail/spin_lock_portable.hpp +0 -38
- data/src/cxx_supportlib/oxt/detail/spin_lock_pthreads.hpp +0 -111
- data/src/cxx_supportlib/vendor-modified/boost/align/aligned_alloc.hpp +0 -47
- data/src/cxx_supportlib/vendor-modified/boost/align/detail/aligned_alloc_posix.hpp +0 -41
- data/src/cxx_supportlib/vendor-modified/boost/align/detail/aligned_alloc_sunos.hpp +0 -34
- data/src/cxx_supportlib/vendor-modified/boost/align/detail/is_alignment.hpp +0 -28
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/pause.hpp +0 -68
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/conditional.hpp +0 -42
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/integral_constant.hpp +0 -46
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_enum.hpp +0 -42
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_function.hpp +0 -42
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_nothrow_default_constructible.hpp +0 -46
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/remove_cv.hpp +0 -42
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_on_address.hpp +0 -64
- data/src/cxx_supportlib/vendor-modified/boost/cerrno.hpp +0 -15
- data/src/cxx_supportlib/vendor-modified/boost/detail/indirect_traits.hpp +0 -195
- data/src/cxx_supportlib/vendor-modified/boost/detail/select_type.hpp +0 -36
- data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/enable_if.hpp +0 -83
- data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/internals.hpp +0 -35
- data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/regex.cpp +0 -120
- data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/regex_debug.cpp +0 -59
- data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/static_mutex.cpp +0 -189
- data/src/cxx_supportlib/vendor-modified/boost/libs/system/src/error_code.cpp +0 -31
- data/src/cxx_supportlib/vendor-modified/boost/regex/config/borland.hpp +0 -72
- data/src/cxx_supportlib/vendor-modified/boost/regex/config/cwchar.hpp +0 -207
- data/src/cxx_supportlib/vendor-modified/boost/regex/pending/static_mutex.hpp +0 -182
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex.hpp +0 -797
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex_creator.hpp +0 -1598
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex_parser.hpp +0 -3174
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/c_regex_traits.hpp +0 -511
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/char_regex_traits.hpp +0 -81
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/cpp_regex_traits.hpp +0 -1237
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/cregex.hpp +0 -213
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/error_type.hpp +0 -59
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/icu.hpp +0 -1516
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/indexed_bit_flag.hpp +0 -54
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/iterator_category.hpp +0 -91
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/iterator_traits.hpp +0 -135
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/match_flags.hpp +0 -161
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/match_results.hpp +0 -716
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/mem_block_cache.hpp +0 -183
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/object_cache.hpp +0 -171
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/pattern_except.hpp +0 -128
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher.hpp +0 -645
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_common.hpp +0 -1030
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_non_recursive.hpp +0 -1947
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_recursive.hpp +0 -1131
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/primary_transform.hpp +0 -146
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/protected_call.hpp +0 -83
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regbase.hpp +0 -180
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex.hpp +0 -166
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_format.hpp +0 -1158
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_fwd.hpp +0 -73
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_grep.hpp +0 -155
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_iterator.hpp +0 -195
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_match.hpp +0 -382
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_merge.hpp +0 -93
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_raw_buffer.hpp +0 -241
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_replace.hpp +0 -99
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_search.hpp +0 -217
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_split.hpp +0 -174
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_token_iterator.hpp +0 -327
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_traits.hpp +0 -189
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_traits_defaults.hpp +0 -997
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_workaround.hpp +0 -237
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/states.hpp +0 -321
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/sub_match.hpp +0 -516
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/syntax_type.hpp +0 -105
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/u32regex_iterator.hpp +0 -185
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/u32regex_token_iterator.hpp +0 -360
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/unicode_iterator.hpp +0 -871
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/w32_regex_traits.hpp +0 -1229
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count_gcc.hpp +0 -79
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count_gcc_atomic.hpp +0 -63
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count_gcc_x86.hpp +0 -88
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count_pt.hpp +0 -104
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count_spin.hpp +0 -69
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count_sync.hpp +0 -72
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp +0 -163
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_aix.hpp +0 -152
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp +0 -185
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_atomic.hpp +0 -148
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp +0 -170
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp +0 -200
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp +0 -194
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp +0 -179
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp +0 -186
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_pt.hpp +0 -147
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_snc_ps3.hpp +0 -174
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_spin.hpp +0 -141
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_sync.hpp +0 -165
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_vacpp_ppc.hpp +0 -163
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_has_gcc_intrinsics.hpp +0 -30
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_has_sync_intrinsics.hpp +0 -69
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock_gcc_arm.hpp +0 -128
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock_nt.hpp +0 -96
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock_pt.hpp +0 -86
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock_sync.hpp +0 -94
|
@@ -3,21 +3,31 @@
|
|
|
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/wait_ops_generic.hpp
|
|
10
10
|
*
|
|
11
11
|
* This header contains generic (lock-based) implementation of the waiting/notifying atomic operations.
|
|
12
|
+
*
|
|
13
|
+
* This backend is used when lock-free atomic operations are available but native waiting/notifying operations are not.
|
|
12
14
|
*/
|
|
13
15
|
|
|
14
16
|
#ifndef BOOST_ATOMIC_DETAIL_WAIT_OPS_GENERIC_HPP_INCLUDED_
|
|
15
17
|
#define BOOST_ATOMIC_DETAIL_WAIT_OPS_GENERIC_HPP_INCLUDED_
|
|
16
18
|
|
|
17
19
|
#include <cstddef>
|
|
20
|
+
#include <chrono>
|
|
18
21
|
#include <boost/memory_order.hpp>
|
|
22
|
+
#include <boost/atomic/thread_pause.hpp>
|
|
19
23
|
#include <boost/atomic/detail/config.hpp>
|
|
20
|
-
#
|
|
24
|
+
#if !defined(BOOST_WINDOWS)
|
|
25
|
+
#include <time.h>
|
|
26
|
+
#include <type_traits>
|
|
27
|
+
#include <boost/atomic/posix_clock_traits_fwd.hpp>
|
|
28
|
+
#include <boost/atomic/detail/has_posix_clock_traits.hpp>
|
|
29
|
+
#endif
|
|
30
|
+
#include <boost/atomic/detail/chrono.hpp>
|
|
21
31
|
#include <boost/atomic/detail/lock_pool.hpp>
|
|
22
32
|
#include <boost/atomic/detail/wait_operations_fwd.hpp>
|
|
23
33
|
#include <boost/atomic/detail/header.hpp>
|
|
@@ -38,19 +48,19 @@ template< typename Base >
|
|
|
38
48
|
struct wait_operations_generic< Base, false > :
|
|
39
49
|
public Base
|
|
40
50
|
{
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
51
|
+
using base_type = Base;
|
|
52
|
+
using storage_type = typename base_type::storage_type;
|
|
53
|
+
using scoped_lock = lock_pool::scoped_lock< base_type::storage_alignment, true >;
|
|
54
|
+
using scoped_wait_state = lock_pool::scoped_wait_state< base_type::storage_alignment >;
|
|
45
55
|
|
|
46
|
-
static
|
|
56
|
+
static constexpr bool always_has_native_wait_notify = false;
|
|
47
57
|
|
|
48
|
-
static BOOST_FORCEINLINE bool has_native_wait_notify(storage_type const volatile&)
|
|
58
|
+
static BOOST_FORCEINLINE bool has_native_wait_notify(storage_type const volatile&) noexcept
|
|
49
59
|
{
|
|
50
60
|
return false;
|
|
51
61
|
}
|
|
52
62
|
|
|
53
|
-
static BOOST_FORCEINLINE storage_type wait(storage_type const volatile& storage, storage_type old_val, memory_order order)
|
|
63
|
+
static BOOST_FORCEINLINE storage_type wait(storage_type const volatile& storage, storage_type old_val, memory_order order) noexcept
|
|
54
64
|
{
|
|
55
65
|
storage_type new_val = base_type::load(storage, order);
|
|
56
66
|
if (new_val == old_val)
|
|
@@ -67,13 +77,161 @@ struct wait_operations_generic< Base, false > :
|
|
|
67
77
|
return new_val;
|
|
68
78
|
}
|
|
69
79
|
|
|
70
|
-
|
|
80
|
+
private:
|
|
81
|
+
template< typename Clock >
|
|
82
|
+
static BOOST_FORCEINLINE storage_type wait_until_fallback
|
|
83
|
+
(
|
|
84
|
+
storage_type const volatile& storage,
|
|
85
|
+
storage_type old_val,
|
|
86
|
+
typename Clock::time_point timeout,
|
|
87
|
+
typename Clock::time_point now,
|
|
88
|
+
memory_order order,
|
|
89
|
+
bool& timed_out
|
|
90
|
+
) noexcept(noexcept(Clock::now()))
|
|
91
|
+
{
|
|
92
|
+
storage_type new_val = base_type::load(storage, order);
|
|
93
|
+
if (new_val == old_val)
|
|
94
|
+
{
|
|
95
|
+
scoped_wait_state wait_state(&storage);
|
|
96
|
+
while (new_val == old_val)
|
|
97
|
+
{
|
|
98
|
+
const std::chrono::nanoseconds nsec = atomics::detail::chrono::ceil< std::chrono::nanoseconds >(timeout - now);
|
|
99
|
+
if (nsec.count() <= 0)
|
|
100
|
+
{
|
|
101
|
+
timed_out = true;
|
|
102
|
+
break;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
wait_state.wait_for(nsec);
|
|
106
|
+
|
|
107
|
+
now = Clock::now();
|
|
108
|
+
new_val = base_type::load(storage, order);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
return new_val;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
#if !defined(BOOST_WINDOWS)
|
|
116
|
+
|
|
117
|
+
template< typename Clock >
|
|
118
|
+
static BOOST_FORCEINLINE storage_type wait_until_abs_timeout
|
|
119
|
+
(
|
|
120
|
+
storage_type const volatile& storage,
|
|
121
|
+
storage_type old_val,
|
|
122
|
+
typename Clock::time_point timeout,
|
|
123
|
+
memory_order order,
|
|
124
|
+
bool& timed_out
|
|
125
|
+
) noexcept
|
|
126
|
+
{
|
|
127
|
+
storage_type new_val = base_type::load(storage, order);
|
|
128
|
+
if (new_val == old_val)
|
|
129
|
+
{
|
|
130
|
+
scoped_wait_state wait_state(&storage);
|
|
131
|
+
const timespec abs_timeout(posix_clock_traits< Clock >::to_timespec(timeout));
|
|
132
|
+
if (BOOST_LIKELY(abs_timeout.tv_sec >= 0))
|
|
133
|
+
{
|
|
134
|
+
while (new_val == old_val)
|
|
135
|
+
{
|
|
136
|
+
const bool wait_timed_out = wait_state.wait_until(posix_clock_traits< Clock >::clock_id, abs_timeout);
|
|
137
|
+
new_val = base_type::load(storage, order);
|
|
138
|
+
|
|
139
|
+
if (wait_timed_out)
|
|
140
|
+
goto timeout_expired;
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
else
|
|
144
|
+
{
|
|
145
|
+
timeout_expired:
|
|
146
|
+
timed_out = new_val == old_val;
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
return new_val;
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
template< typename Clock >
|
|
154
|
+
static BOOST_FORCEINLINE storage_type wait_until_dispatch
|
|
155
|
+
(
|
|
156
|
+
storage_type const volatile& storage,
|
|
157
|
+
storage_type old_val,
|
|
158
|
+
typename Clock::time_point timeout,
|
|
159
|
+
memory_order order,
|
|
160
|
+
bool& timed_out,
|
|
161
|
+
std::true_type
|
|
162
|
+
) noexcept
|
|
163
|
+
{
|
|
164
|
+
return wait_until_abs_timeout< Clock >(storage, old_val, timeout, order, timed_out);
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
template< typename Clock >
|
|
168
|
+
static BOOST_FORCEINLINE storage_type wait_until_dispatch
|
|
169
|
+
(
|
|
170
|
+
storage_type const volatile& storage,
|
|
171
|
+
storage_type old_val,
|
|
172
|
+
typename Clock::time_point timeout,
|
|
173
|
+
memory_order order,
|
|
174
|
+
bool& timed_out,
|
|
175
|
+
std::false_type
|
|
176
|
+
) noexcept(noexcept(Clock::now()))
|
|
177
|
+
{
|
|
178
|
+
return wait_until_fallback< Clock >(storage, old_val, timeout, Clock::now(), order, timed_out);
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
public:
|
|
182
|
+
template< typename Clock, typename Duration >
|
|
183
|
+
static BOOST_FORCEINLINE storage_type wait_until
|
|
184
|
+
(
|
|
185
|
+
storage_type const volatile& storage,
|
|
186
|
+
storage_type old_val,
|
|
187
|
+
std::chrono::time_point< Clock, Duration > timeout,
|
|
188
|
+
memory_order order,
|
|
189
|
+
bool& timed_out
|
|
190
|
+
) noexcept(noexcept(wait_until_dispatch< Clock >(
|
|
191
|
+
storage, old_val, timeout, order, timed_out, std::integral_constant< bool, has_posix_clock_traits< Clock >::value >())))
|
|
192
|
+
{
|
|
193
|
+
return wait_until_dispatch< Clock >(storage, old_val, timeout, order, timed_out, std::integral_constant< bool, has_posix_clock_traits< Clock >::value >());
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
#else // !defined(BOOST_WINDOWS)
|
|
197
|
+
|
|
198
|
+
public:
|
|
199
|
+
template< typename Clock, typename Duration >
|
|
200
|
+
static BOOST_FORCEINLINE storage_type wait_until
|
|
201
|
+
(
|
|
202
|
+
storage_type const volatile& storage,
|
|
203
|
+
storage_type old_val,
|
|
204
|
+
std::chrono::time_point< Clock, Duration > timeout,
|
|
205
|
+
memory_order order,
|
|
206
|
+
bool& timed_out
|
|
207
|
+
) noexcept(noexcept(wait_until_fallback< Clock >(storage, old_val, timeout, Clock::now(), order, timed_out)))
|
|
208
|
+
{
|
|
209
|
+
return wait_until_fallback< Clock >(storage, old_val, timeout, Clock::now(), order, timed_out);
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
#endif // !defined(BOOST_WINDOWS)
|
|
213
|
+
|
|
214
|
+
template< typename Rep, typename Period >
|
|
215
|
+
static BOOST_FORCEINLINE storage_type wait_for
|
|
216
|
+
(
|
|
217
|
+
storage_type const volatile& storage,
|
|
218
|
+
storage_type old_val,
|
|
219
|
+
std::chrono::duration< Rep, Period > timeout,
|
|
220
|
+
memory_order order,
|
|
221
|
+
bool& timed_out
|
|
222
|
+
) noexcept
|
|
223
|
+
{
|
|
224
|
+
const std::chrono::steady_clock::time_point now = std::chrono::steady_clock::now();
|
|
225
|
+
return wait_until_fallback< std::chrono::steady_clock >(storage, old_val, now + timeout, now, order, timed_out);
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
static BOOST_FORCEINLINE void notify_one(storage_type volatile& storage) noexcept
|
|
71
229
|
{
|
|
72
230
|
scoped_lock lock(&storage);
|
|
73
231
|
lock_pool::notify_one(lock.get_lock_state(), &storage);
|
|
74
232
|
}
|
|
75
233
|
|
|
76
|
-
static BOOST_FORCEINLINE void notify_all(storage_type volatile& storage)
|
|
234
|
+
static BOOST_FORCEINLINE void notify_all(storage_type volatile& storage) noexcept
|
|
77
235
|
{
|
|
78
236
|
scoped_lock lock(&storage);
|
|
79
237
|
lock_pool::notify_all(lock.get_lock_state(), &storage);
|
|
@@ -84,24 +242,71 @@ template< typename Base >
|
|
|
84
242
|
struct wait_operations_generic< Base, true > :
|
|
85
243
|
public Base
|
|
86
244
|
{
|
|
87
|
-
|
|
88
|
-
|
|
245
|
+
using base_type = Base;
|
|
246
|
+
using storage_type = typename base_type::storage_type;
|
|
247
|
+
|
|
248
|
+
static constexpr bool always_has_native_wait_notify = false;
|
|
89
249
|
|
|
90
|
-
|
|
250
|
+
private:
|
|
251
|
+
static constexpr unsigned int fast_loop_count = 16u;
|
|
91
252
|
|
|
92
|
-
|
|
253
|
+
public:
|
|
254
|
+
static BOOST_FORCEINLINE bool has_native_wait_notify(storage_type const volatile&) noexcept
|
|
93
255
|
{
|
|
94
256
|
return false;
|
|
95
257
|
}
|
|
96
258
|
|
|
97
|
-
static BOOST_FORCEINLINE storage_type wait(storage_type const volatile& storage, storage_type old_val, memory_order order)
|
|
259
|
+
static BOOST_FORCEINLINE storage_type wait(storage_type const volatile& storage, storage_type old_val, memory_order order) noexcept
|
|
260
|
+
{
|
|
261
|
+
storage_type new_val = base_type::load(storage, order);
|
|
262
|
+
if (new_val == old_val)
|
|
263
|
+
{
|
|
264
|
+
for (unsigned int i = 0u; i < fast_loop_count; ++i)
|
|
265
|
+
{
|
|
266
|
+
atomics::thread_pause();
|
|
267
|
+
new_val = base_type::load(storage, order);
|
|
268
|
+
if (new_val != old_val)
|
|
269
|
+
goto finish;
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
do
|
|
273
|
+
{
|
|
274
|
+
atomics::detail::wait_some();
|
|
275
|
+
new_val = base_type::load(storage, order);
|
|
276
|
+
}
|
|
277
|
+
while (new_val == old_val);
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
finish:
|
|
281
|
+
return new_val;
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
private:
|
|
285
|
+
template< typename Clock >
|
|
286
|
+
static BOOST_FORCEINLINE storage_type wait_until_impl
|
|
287
|
+
(
|
|
288
|
+
storage_type const volatile& storage,
|
|
289
|
+
storage_type old_val,
|
|
290
|
+
typename Clock::time_point timeout,
|
|
291
|
+
typename Clock::time_point now,
|
|
292
|
+
memory_order order,
|
|
293
|
+
bool& timed_out
|
|
294
|
+
) noexcept(noexcept(Clock::now()))
|
|
98
295
|
{
|
|
99
296
|
storage_type new_val = base_type::load(storage, order);
|
|
100
297
|
if (new_val == old_val)
|
|
101
298
|
{
|
|
102
|
-
for (unsigned int i = 0u; i <
|
|
299
|
+
for (unsigned int i = 0u; i < fast_loop_count; ++i)
|
|
103
300
|
{
|
|
104
|
-
|
|
301
|
+
if ((now - timeout).count() >= 0)
|
|
302
|
+
{
|
|
303
|
+
timed_out = true;
|
|
304
|
+
goto finish;
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
atomics::thread_pause();
|
|
308
|
+
now = Clock::now();
|
|
309
|
+
|
|
105
310
|
new_val = base_type::load(storage, order);
|
|
106
311
|
if (new_val != old_val)
|
|
107
312
|
goto finish;
|
|
@@ -109,7 +314,14 @@ struct wait_operations_generic< Base, true > :
|
|
|
109
314
|
|
|
110
315
|
do
|
|
111
316
|
{
|
|
317
|
+
if ((now - timeout).count() >= 0)
|
|
318
|
+
{
|
|
319
|
+
timed_out = true;
|
|
320
|
+
goto finish;
|
|
321
|
+
}
|
|
322
|
+
|
|
112
323
|
atomics::detail::wait_some();
|
|
324
|
+
now = Clock::now();
|
|
113
325
|
new_val = base_type::load(storage, order);
|
|
114
326
|
}
|
|
115
327
|
while (new_val == old_val);
|
|
@@ -119,11 +331,39 @@ struct wait_operations_generic< Base, true > :
|
|
|
119
331
|
return new_val;
|
|
120
332
|
}
|
|
121
333
|
|
|
122
|
-
|
|
334
|
+
public:
|
|
335
|
+
template< typename Clock, typename Duration >
|
|
336
|
+
static BOOST_FORCEINLINE storage_type wait_until
|
|
337
|
+
(
|
|
338
|
+
storage_type const volatile& storage,
|
|
339
|
+
storage_type old_val,
|
|
340
|
+
std::chrono::time_point< Clock, Duration > timeout,
|
|
341
|
+
memory_order order,
|
|
342
|
+
bool& timed_out
|
|
343
|
+
) noexcept(noexcept(wait_until_impl< Clock >(storage, old_val, timeout, Clock::now(), order, timed_out)))
|
|
344
|
+
{
|
|
345
|
+
return wait_until_impl< Clock >(storage, old_val, timeout, Clock::now(), order, timed_out);
|
|
346
|
+
}
|
|
347
|
+
|
|
348
|
+
template< typename Rep, typename Period >
|
|
349
|
+
static BOOST_FORCEINLINE storage_type wait_for
|
|
350
|
+
(
|
|
351
|
+
storage_type const volatile& storage,
|
|
352
|
+
storage_type old_val,
|
|
353
|
+
std::chrono::duration< Rep, Period > timeout,
|
|
354
|
+
memory_order order,
|
|
355
|
+
bool& timed_out
|
|
356
|
+
) noexcept
|
|
357
|
+
{
|
|
358
|
+
const std::chrono::steady_clock::time_point now = std::chrono::steady_clock::now();
|
|
359
|
+
return wait_until_impl< std::chrono::steady_clock >(storage, old_val, now + timeout, now, order, timed_out);
|
|
360
|
+
}
|
|
361
|
+
|
|
362
|
+
static BOOST_FORCEINLINE void notify_one(storage_type volatile&) noexcept
|
|
123
363
|
{
|
|
124
364
|
}
|
|
125
365
|
|
|
126
|
-
static BOOST_FORCEINLINE void notify_all(storage_type volatile&)
|
|
366
|
+
static BOOST_FORCEINLINE void notify_all(storage_type volatile&) noexcept
|
|
127
367
|
{
|
|
128
368
|
}
|
|
129
369
|
};
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*
|
|
6
6
|
* Copyright (c) 2011 Helge Bahmann
|
|
7
7
|
* Copyright (c) 2013 Tim Blechmann
|
|
8
|
-
* Copyright (c) 2014 Andrey Semashev
|
|
8
|
+
* Copyright (c) 2014, 2025 Andrey Semashev
|
|
9
9
|
*/
|
|
10
10
|
/*!
|
|
11
11
|
* \file atomic/fences.hpp
|
|
@@ -18,6 +18,7 @@
|
|
|
18
18
|
|
|
19
19
|
#include <boost/memory_order.hpp>
|
|
20
20
|
#include <boost/atomic/capabilities.hpp>
|
|
21
|
+
#include <boost/atomic/detail/config.hpp>
|
|
21
22
|
#include <boost/atomic/detail/fence_operations.hpp>
|
|
22
23
|
#include <boost/atomic/detail/header.hpp>
|
|
23
24
|
|
|
@@ -34,12 +35,12 @@ namespace boost {
|
|
|
34
35
|
|
|
35
36
|
namespace atomics {
|
|
36
37
|
|
|
37
|
-
BOOST_FORCEINLINE void atomic_thread_fence(memory_order order)
|
|
38
|
+
BOOST_FORCEINLINE void atomic_thread_fence(memory_order order) noexcept
|
|
38
39
|
{
|
|
39
40
|
atomics::detail::fence_operations::thread_fence(order);
|
|
40
41
|
}
|
|
41
42
|
|
|
42
|
-
BOOST_FORCEINLINE void atomic_signal_fence(memory_order order)
|
|
43
|
+
BOOST_FORCEINLINE void atomic_signal_fence(memory_order order) noexcept
|
|
43
44
|
{
|
|
44
45
|
atomics::detail::fence_operations::signal_fence(order);
|
|
45
46
|
}
|
|
@@ -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/ipc_atomic.hpp
|
|
@@ -15,13 +15,13 @@
|
|
|
15
15
|
#define BOOST_ATOMIC_IPC_ATOMIC_HPP_INCLUDED_
|
|
16
16
|
|
|
17
17
|
#include <cstddef>
|
|
18
|
+
#include <type_traits>
|
|
18
19
|
#include <boost/memory_order.hpp>
|
|
19
20
|
#include <boost/atomic/capabilities.hpp>
|
|
20
21
|
#include <boost/atomic/detail/config.hpp>
|
|
21
22
|
#include <boost/atomic/detail/classify.hpp>
|
|
22
23
|
#include <boost/atomic/detail/atomic_impl.hpp>
|
|
23
24
|
#include <boost/atomic/detail/type_traits/is_trivially_copyable.hpp>
|
|
24
|
-
#include <boost/atomic/detail/type_traits/is_nothrow_default_constructible.hpp>
|
|
25
25
|
#include <boost/atomic/detail/header.hpp>
|
|
26
26
|
|
|
27
27
|
#ifdef BOOST_HAS_PRAGMA_ONCE
|
|
@@ -37,46 +37,42 @@ class ipc_atomic :
|
|
|
37
37
|
public atomics::detail::base_atomic< T, typename atomics::detail::classify< T >::type, true >
|
|
38
38
|
{
|
|
39
39
|
private:
|
|
40
|
-
|
|
41
|
-
|
|
40
|
+
using base_type = atomics::detail::base_atomic< T, typename atomics::detail::classify< T >::type, true >;
|
|
41
|
+
using value_arg_type = typename base_type::value_arg_type;
|
|
42
42
|
|
|
43
43
|
public:
|
|
44
|
-
|
|
44
|
+
using value_type = typename base_type::value_type;
|
|
45
45
|
|
|
46
46
|
static_assert(sizeof(value_type) > 0u, "boost::ipc_atomic<T> requires T to be a complete type");
|
|
47
|
-
#if !defined(BOOST_ATOMIC_DETAIL_NO_CXX11_IS_TRIVIALLY_COPYABLE)
|
|
48
47
|
static_assert(atomics::detail::is_trivially_copyable< value_type >::value, "boost::ipc_atomic<T> requires T to be a trivially copyable type");
|
|
49
|
-
#endif
|
|
50
48
|
|
|
51
49
|
public:
|
|
52
|
-
|
|
53
|
-
{
|
|
54
|
-
}
|
|
50
|
+
ipc_atomic() = default;
|
|
55
51
|
|
|
56
|
-
BOOST_FORCEINLINE
|
|
52
|
+
BOOST_FORCEINLINE constexpr ipc_atomic(value_arg_type v) noexcept : base_type(v)
|
|
57
53
|
{
|
|
58
54
|
}
|
|
59
55
|
|
|
60
|
-
|
|
56
|
+
ipc_atomic(ipc_atomic const&) = delete;
|
|
57
|
+
ipc_atomic& operator= (ipc_atomic const&) = delete;
|
|
58
|
+
ipc_atomic& operator= (ipc_atomic const&) volatile = delete;
|
|
59
|
+
|
|
60
|
+
BOOST_FORCEINLINE value_type operator= (value_arg_type v) noexcept
|
|
61
61
|
{
|
|
62
62
|
this->store(v);
|
|
63
63
|
return v;
|
|
64
64
|
}
|
|
65
65
|
|
|
66
|
-
BOOST_FORCEINLINE value_type operator= (value_arg_type v) volatile
|
|
66
|
+
BOOST_FORCEINLINE value_type operator= (value_arg_type v) volatile noexcept
|
|
67
67
|
{
|
|
68
68
|
this->store(v);
|
|
69
69
|
return v;
|
|
70
70
|
}
|
|
71
71
|
|
|
72
|
-
BOOST_FORCEINLINE operator value_type() const volatile
|
|
72
|
+
BOOST_FORCEINLINE operator value_type() const volatile noexcept
|
|
73
73
|
{
|
|
74
74
|
return this->load();
|
|
75
75
|
}
|
|
76
|
-
|
|
77
|
-
BOOST_DELETED_FUNCTION(ipc_atomic(ipc_atomic const&))
|
|
78
|
-
BOOST_DELETED_FUNCTION(ipc_atomic& operator= (ipc_atomic const&))
|
|
79
|
-
BOOST_DELETED_FUNCTION(ipc_atomic& operator= (ipc_atomic const&) volatile)
|
|
80
76
|
};
|
|
81
77
|
|
|
82
78
|
} // 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) 2020 Andrey Semashev
|
|
6
|
+
* Copyright (c) 2020-2025 Andrey Semashev
|
|
7
7
|
*/
|
|
8
8
|
/*!
|
|
9
9
|
* \file atomic/ipc_atomic_flag.hpp
|
|
@@ -27,7 +27,7 @@ namespace boost {
|
|
|
27
27
|
namespace atomics {
|
|
28
28
|
|
|
29
29
|
//! Atomic flag for inter-process communication
|
|
30
|
-
|
|
30
|
+
using ipc_atomic_flag = atomics::detail::atomic_flag_impl< true >;
|
|
31
31
|
|
|
32
32
|
} // namespace atomics
|
|
33
33
|
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
#ifndef BOOST_ATOMIC_IPC_ATOMIC_REF_HPP_INCLUDED_
|
|
15
15
|
#define BOOST_ATOMIC_IPC_ATOMIC_REF_HPP_INCLUDED_
|
|
16
16
|
|
|
17
|
+
#include <type_traits>
|
|
17
18
|
#include <boost/assert.hpp>
|
|
18
19
|
#include <boost/memory_order.hpp>
|
|
19
20
|
#include <boost/atomic/capabilities.hpp>
|
|
@@ -37,40 +38,39 @@ class ipc_atomic_ref :
|
|
|
37
38
|
public atomics::detail::base_atomic_ref< T, typename atomics::detail::classify< T >::type, true >
|
|
38
39
|
{
|
|
39
40
|
private:
|
|
40
|
-
|
|
41
|
-
|
|
41
|
+
using base_type = atomics::detail::base_atomic_ref< T, typename atomics::detail::classify< T >::type, true >;
|
|
42
|
+
using value_arg_type = typename base_type::value_arg_type;
|
|
42
43
|
|
|
43
44
|
public:
|
|
44
|
-
|
|
45
|
+
using value_type = typename base_type::value_type;
|
|
45
46
|
|
|
46
47
|
static_assert(sizeof(value_type) > 0u, "boost::ipc_atomic_ref<T> requires T to be a complete type");
|
|
47
|
-
#if !defined(BOOST_ATOMIC_DETAIL_NO_CXX11_IS_TRIVIALLY_COPYABLE)
|
|
48
48
|
static_assert(atomics::detail::is_trivially_copyable< value_type >::value, "boost::ipc_atomic_ref<T> requires T to be a trivially copyable type");
|
|
49
|
-
#endif
|
|
50
49
|
|
|
51
50
|
private:
|
|
52
|
-
|
|
51
|
+
using storage_type = typename base_type::storage_type;
|
|
53
52
|
|
|
54
53
|
public:
|
|
55
|
-
|
|
56
|
-
|
|
54
|
+
ipc_atomic_ref(ipc_atomic_ref const&) = default;
|
|
55
|
+
|
|
56
|
+
BOOST_FORCEINLINE explicit ipc_atomic_ref(value_type& v) noexcept : base_type(v)
|
|
57
57
|
{
|
|
58
58
|
// Check that referenced object alignment satisfies required alignment
|
|
59
59
|
BOOST_ASSERT((((atomics::detail::uintptr_t)this->m_value) & (base_type::required_alignment - 1u)) == 0u);
|
|
60
60
|
}
|
|
61
61
|
|
|
62
|
-
|
|
62
|
+
ipc_atomic_ref& operator= (ipc_atomic_ref const&) = delete;
|
|
63
|
+
|
|
64
|
+
BOOST_FORCEINLINE value_type operator= (value_arg_type v) const noexcept
|
|
63
65
|
{
|
|
64
66
|
this->store(v);
|
|
65
67
|
return v;
|
|
66
68
|
}
|
|
67
69
|
|
|
68
|
-
BOOST_FORCEINLINE operator value_type() const
|
|
70
|
+
BOOST_FORCEINLINE operator value_type() const noexcept
|
|
69
71
|
{
|
|
70
72
|
return this->load();
|
|
71
73
|
}
|
|
72
|
-
|
|
73
|
-
BOOST_DELETED_FUNCTION(ipc_atomic_ref& operator= (ipc_atomic_ref const&))
|
|
74
74
|
};
|
|
75
75
|
|
|
76
76
|
#if !defined(BOOST_NO_CXX17_DEDUCTION_GUIDES)
|
|
@@ -80,7 +80,7 @@ ipc_atomic_ref(T&) -> ipc_atomic_ref< T >;
|
|
|
80
80
|
|
|
81
81
|
//! IPC atomic reference factory function
|
|
82
82
|
template< typename T >
|
|
83
|
-
BOOST_FORCEINLINE ipc_atomic_ref< T > make_ipc_atomic_ref(T& value)
|
|
83
|
+
BOOST_FORCEINLINE ipc_atomic_ref< T > make_ipc_atomic_ref(T& value) noexcept
|
|
84
84
|
{
|
|
85
85
|
return ipc_atomic_ref< T >(value);
|
|
86
86
|
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Distributed under the Boost Software License, Version 1.0.
|
|
3
|
+
* (See accompanying file LICENSE_1_0.txt or copy at
|
|
4
|
+
* http://www.boost.org/LICENSE_1_0.txt)
|
|
5
|
+
*
|
|
6
|
+
* Copyright (c) 2025 Andrey Semashev
|
|
7
|
+
*/
|
|
8
|
+
/*!
|
|
9
|
+
* \file atomic/posix_clock_traits_fwd.hpp
|
|
10
|
+
*
|
|
11
|
+
* This header contains declaration of the \c posix_clock_traits class template.
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
#ifndef BOOST_ATOMIC_POSIX_CLOCK_TRAITS_FWD_HPP_INCLUDED_
|
|
15
|
+
#define BOOST_ATOMIC_POSIX_CLOCK_TRAITS_FWD_HPP_INCLUDED_
|
|
16
|
+
|
|
17
|
+
#include <boost/atomic/detail/config.hpp>
|
|
18
|
+
#include <boost/atomic/detail/header.hpp>
|
|
19
|
+
|
|
20
|
+
#ifdef BOOST_HAS_PRAGMA_ONCE
|
|
21
|
+
#pragma once
|
|
22
|
+
#endif
|
|
23
|
+
|
|
24
|
+
namespace boost {
|
|
25
|
+
namespace atomics {
|
|
26
|
+
|
|
27
|
+
/*!
|
|
28
|
+
* \brief The structure contains traits for compatibility between chrono clocks and POSIX clocks.
|
|
29
|
+
*
|
|
30
|
+
* This class template is meant to be specialized for clock types that are compatible with `std::chrono`
|
|
31
|
+
* requirements and are based on one of the POSIX clocks identified by
|
|
32
|
+
* a [`clockid_t`](https://man7.org/linux/man-pages/man3/clockid_t.3type.html) constant.
|
|
33
|
+
*
|
|
34
|
+
* Every specialization of this class must support the following interface:
|
|
35
|
+
*
|
|
36
|
+
* ```
|
|
37
|
+
* // POSIX clock identifier
|
|
38
|
+
* static constexpr clockid_t clock_id = ...;
|
|
39
|
+
*
|
|
40
|
+
* // Function that converts a time point to a timespec structure
|
|
41
|
+
* static timespec to_timespec(Clock::time_point time_point) noexcept;
|
|
42
|
+
* ```
|
|
43
|
+
*
|
|
44
|
+
* Note that the `timespec` structure returned from `to_timespec` must use the identified POSIX
|
|
45
|
+
* clock epoch and time units. There are no invalid input `time_point` values, so `to_timespec`
|
|
46
|
+
* must never fail with an exception.
|
|
47
|
+
*
|
|
48
|
+
* The second template parameter of this class template may be used by partial specializations
|
|
49
|
+
* to leverage SFINAE to selectively enable it for a set of clock types.
|
|
50
|
+
*/
|
|
51
|
+
template< typename Clock, typename = void >
|
|
52
|
+
struct posix_clock_traits;
|
|
53
|
+
|
|
54
|
+
} // namespace atomics
|
|
55
|
+
} // namespace boost
|
|
56
|
+
|
|
57
|
+
#include <boost/atomic/detail/footer.hpp>
|
|
58
|
+
|
|
59
|
+
#endif // BOOST_ATOMIC_POSIX_CLOCK_TRAITS_FWD_HPP_INCLUDED_
|