@nxtedition/rocksdb 15.2.2 → 15.2.4
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.
- package/.claude/settings.local.json +15 -1
- package/binding.cc +186 -128
- package/binding.gyp +32 -113
- package/build.sh +3 -0
- package/deps/rocksdb/rocksdb.gyp +3 -1
- package/index.js +3 -5
- package/package.json +1 -1
- package/prebuilds/darwin-arm64/@nxtedition+rocksdb.node +0 -0
- package/prebuilds/linux-x64/@nxtedition+rocksdb.node +0 -0
- package/util.h +62 -63
- package/deps/abseil-cpp/BUILD.bazel +0 -35
- package/deps/abseil-cpp/CMake/AbseilDll.cmake +0 -938
- package/deps/abseil-cpp/CMake/AbseilHelpers.cmake +0 -465
- package/deps/abseil-cpp/CMake/Googletest/CMakeLists.txt.in +0 -14
- package/deps/abseil-cpp/CMake/Googletest/DownloadGTest.cmake +0 -41
- package/deps/abseil-cpp/CMake/abslConfig.cmake.in +0 -8
- package/deps/abseil-cpp/CMake/install_test_project/CMakeLists.txt +0 -25
- package/deps/abseil-cpp/CMake/install_test_project/simple.cc +0 -32
- package/deps/abseil-cpp/CMake/install_test_project/test.sh +0 -113
- package/deps/abseil-cpp/CMakeLists.txt +0 -280
- package/deps/abseil-cpp/LICENSE +0 -203
- package/deps/abseil-cpp/MODULE.bazel +0 -43
- package/deps/abseil-cpp/PrivacyInfo.xcprivacy +0 -14
- package/deps/abseil-cpp/absl/BUILD.bazel +0 -62
- package/deps/abseil-cpp/absl/CMakeLists.txt +0 -45
- package/deps/abseil-cpp/absl/abseil.podspec.gen.py +0 -245
- package/deps/abseil-cpp/absl/algorithm/BUILD.bazel +0 -92
- package/deps/abseil-cpp/absl/algorithm/CMakeLists.txt +0 -72
- package/deps/abseil-cpp/absl/algorithm/algorithm.h +0 -64
- package/deps/abseil-cpp/absl/algorithm/algorithm_test.cc +0 -60
- package/deps/abseil-cpp/absl/algorithm/container.h +0 -1864
- package/deps/abseil-cpp/absl/algorithm/container_test.cc +0 -2232
- package/deps/abseil-cpp/absl/base/BUILD.bazel +0 -1036
- package/deps/abseil-cpp/absl/base/CMakeLists.txt +0 -881
- package/deps/abseil-cpp/absl/base/attributes.h +0 -1081
- package/deps/abseil-cpp/absl/base/attributes_test.cc +0 -43
- package/deps/abseil-cpp/absl/base/bit_cast_test.cc +0 -109
- package/deps/abseil-cpp/absl/base/c_header_test.c +0 -30
- package/deps/abseil-cpp/absl/base/call_once.h +0 -228
- package/deps/abseil-cpp/absl/base/call_once_test.cc +0 -107
- package/deps/abseil-cpp/absl/base/casts.cc +0 -61
- package/deps/abseil-cpp/absl/base/casts.h +0 -313
- package/deps/abseil-cpp/absl/base/casts_test.cc +0 -148
- package/deps/abseil-cpp/absl/base/config.h +0 -854
- package/deps/abseil-cpp/absl/base/config_test.cc +0 -60
- package/deps/abseil-cpp/absl/base/const_init.h +0 -76
- package/deps/abseil-cpp/absl/base/dynamic_annotations.h +0 -480
- package/deps/abseil-cpp/absl/base/exception_safety_testing_test.cc +0 -958
- package/deps/abseil-cpp/absl/base/fast_type_id.h +0 -73
- package/deps/abseil-cpp/absl/base/fast_type_id_test.cc +0 -130
- package/deps/abseil-cpp/absl/base/internal/atomic_hook.h +0 -200
- package/deps/abseil-cpp/absl/base/internal/atomic_hook_test.cc +0 -97
- package/deps/abseil-cpp/absl/base/internal/atomic_hook_test_helper.cc +0 -32
- package/deps/abseil-cpp/absl/base/internal/atomic_hook_test_helper.h +0 -34
- package/deps/abseil-cpp/absl/base/internal/cmake_thread_test.cc +0 -22
- package/deps/abseil-cpp/absl/base/internal/cycleclock.cc +0 -72
- package/deps/abseil-cpp/absl/base/internal/cycleclock.h +0 -144
- package/deps/abseil-cpp/absl/base/internal/cycleclock_config.h +0 -55
- package/deps/abseil-cpp/absl/base/internal/direct_mmap.h +0 -170
- package/deps/abseil-cpp/absl/base/internal/dynamic_annotations.h +0 -398
- package/deps/abseil-cpp/absl/base/internal/endian.h +0 -279
- package/deps/abseil-cpp/absl/base/internal/endian_test.cc +0 -263
- package/deps/abseil-cpp/absl/base/internal/errno_saver.h +0 -43
- package/deps/abseil-cpp/absl/base/internal/errno_saver_test.cc +0 -45
- package/deps/abseil-cpp/absl/base/internal/exception_safety_testing.cc +0 -79
- package/deps/abseil-cpp/absl/base/internal/exception_safety_testing.h +0 -1109
- package/deps/abseil-cpp/absl/base/internal/exception_testing.h +0 -42
- package/deps/abseil-cpp/absl/base/internal/hide_ptr.h +0 -51
- package/deps/abseil-cpp/absl/base/internal/iterator_traits.h +0 -75
- package/deps/abseil-cpp/absl/base/internal/iterator_traits_test.cc +0 -85
- package/deps/abseil-cpp/absl/base/internal/iterator_traits_test_helper.h +0 -97
- package/deps/abseil-cpp/absl/base/internal/low_level_alloc.cc +0 -661
- package/deps/abseil-cpp/absl/base/internal/low_level_alloc.h +0 -133
- package/deps/abseil-cpp/absl/base/internal/low_level_alloc_test.cc +0 -180
- package/deps/abseil-cpp/absl/base/internal/low_level_scheduling.h +0 -134
- package/deps/abseil-cpp/absl/base/internal/nullability_traits.h +0 -71
- package/deps/abseil-cpp/absl/base/internal/nullability_traits_test.cc +0 -98
- package/deps/abseil-cpp/absl/base/internal/per_thread_tls.h +0 -52
- package/deps/abseil-cpp/absl/base/internal/poison.cc +0 -85
- package/deps/abseil-cpp/absl/base/internal/poison.h +0 -59
- package/deps/abseil-cpp/absl/base/internal/poison_test.cc +0 -41
- package/deps/abseil-cpp/absl/base/internal/pretty_function.h +0 -33
- package/deps/abseil-cpp/absl/base/internal/raw_logging.cc +0 -279
- package/deps/abseil-cpp/absl/base/internal/raw_logging.h +0 -217
- package/deps/abseil-cpp/absl/base/internal/scheduling_mode.h +0 -58
- package/deps/abseil-cpp/absl/base/internal/scoped_set_env.cc +0 -81
- package/deps/abseil-cpp/absl/base/internal/scoped_set_env.h +0 -45
- package/deps/abseil-cpp/absl/base/internal/scoped_set_env_test.cc +0 -99
- package/deps/abseil-cpp/absl/base/internal/spinlock.cc +0 -225
- package/deps/abseil-cpp/absl/base/internal/spinlock.h +0 -310
- package/deps/abseil-cpp/absl/base/internal/spinlock_akaros.inc +0 -35
- package/deps/abseil-cpp/absl/base/internal/spinlock_benchmark.cc +0 -80
- package/deps/abseil-cpp/absl/base/internal/spinlock_linux.inc +0 -71
- package/deps/abseil-cpp/absl/base/internal/spinlock_posix.inc +0 -46
- package/deps/abseil-cpp/absl/base/internal/spinlock_wait.cc +0 -81
- package/deps/abseil-cpp/absl/base/internal/spinlock_wait.h +0 -95
- package/deps/abseil-cpp/absl/base/internal/spinlock_win32.inc +0 -40
- package/deps/abseil-cpp/absl/base/internal/strerror.cc +0 -88
- package/deps/abseil-cpp/absl/base/internal/strerror.h +0 -39
- package/deps/abseil-cpp/absl/base/internal/strerror_benchmark.cc +0 -29
- package/deps/abseil-cpp/absl/base/internal/strerror_test.cc +0 -89
- package/deps/abseil-cpp/absl/base/internal/sysinfo.cc +0 -494
- package/deps/abseil-cpp/absl/base/internal/sysinfo.h +0 -74
- package/deps/abseil-cpp/absl/base/internal/sysinfo_test.cc +0 -82
- package/deps/abseil-cpp/absl/base/internal/thread_identity.cc +0 -163
- package/deps/abseil-cpp/absl/base/internal/thread_identity.h +0 -273
- package/deps/abseil-cpp/absl/base/internal/thread_identity_benchmark.cc +0 -38
- package/deps/abseil-cpp/absl/base/internal/thread_identity_test.cc +0 -129
- package/deps/abseil-cpp/absl/base/internal/throw_delegate.cc +0 -203
- package/deps/abseil-cpp/absl/base/internal/throw_delegate.h +0 -75
- package/deps/abseil-cpp/absl/base/internal/tracing.cc +0 -39
- package/deps/abseil-cpp/absl/base/internal/tracing.h +0 -81
- package/deps/abseil-cpp/absl/base/internal/tracing_strong_test.cc +0 -117
- package/deps/abseil-cpp/absl/base/internal/tracing_weak_test.cc +0 -34
- package/deps/abseil-cpp/absl/base/internal/tsan_mutex_interface.h +0 -68
- package/deps/abseil-cpp/absl/base/internal/unaligned_access.h +0 -89
- package/deps/abseil-cpp/absl/base/internal/unique_small_name_test.cc +0 -77
- package/deps/abseil-cpp/absl/base/internal/unscaledcycleclock.cc +0 -134
- package/deps/abseil-cpp/absl/base/internal/unscaledcycleclock.h +0 -113
- package/deps/abseil-cpp/absl/base/internal/unscaledcycleclock_config.h +0 -62
- package/deps/abseil-cpp/absl/base/log_severity.cc +0 -56
- package/deps/abseil-cpp/absl/base/log_severity.h +0 -185
- package/deps/abseil-cpp/absl/base/log_severity_test.cc +0 -251
- package/deps/abseil-cpp/absl/base/macros.h +0 -243
- package/deps/abseil-cpp/absl/base/no_destructor.h +0 -191
- package/deps/abseil-cpp/absl/base/no_destructor_benchmark.cc +0 -165
- package/deps/abseil-cpp/absl/base/no_destructor_test.cc +0 -205
- package/deps/abseil-cpp/absl/base/nullability.h +0 -317
- package/deps/abseil-cpp/absl/base/nullability_default_nonnull_test.cc +0 -44
- package/deps/abseil-cpp/absl/base/nullability_test.cc +0 -90
- package/deps/abseil-cpp/absl/base/optimization.h +0 -310
- package/deps/abseil-cpp/absl/base/optimization_test.cc +0 -141
- package/deps/abseil-cpp/absl/base/options.h +0 -158
- package/deps/abseil-cpp/absl/base/policy_checks.h +0 -115
- package/deps/abseil-cpp/absl/base/port.h +0 -25
- package/deps/abseil-cpp/absl/base/prefetch.h +0 -209
- package/deps/abseil-cpp/absl/base/prefetch_test.cc +0 -64
- package/deps/abseil-cpp/absl/base/raw_logging_test.cc +0 -98
- package/deps/abseil-cpp/absl/base/spinlock_test_common.cc +0 -302
- package/deps/abseil-cpp/absl/base/thread_annotations.h +0 -333
- package/deps/abseil-cpp/absl/base/throw_delegate_test.cc +0 -175
- package/deps/abseil-cpp/absl/cleanup/BUILD.bazel +0 -74
- package/deps/abseil-cpp/absl/cleanup/CMakeLists.txt +0 -55
- package/deps/abseil-cpp/absl/cleanup/cleanup.h +0 -142
- package/deps/abseil-cpp/absl/cleanup/cleanup_test.cc +0 -309
- package/deps/abseil-cpp/absl/cleanup/internal/cleanup.h +0 -99
- package/deps/abseil-cpp/absl/container/BUILD.bazel +0 -1394
- package/deps/abseil-cpp/absl/container/CMakeLists.txt +0 -1239
- package/deps/abseil-cpp/absl/container/btree_benchmark.cc +0 -806
- package/deps/abseil-cpp/absl/container/btree_map.h +0 -941
- package/deps/abseil-cpp/absl/container/btree_set.h +0 -872
- package/deps/abseil-cpp/absl/container/btree_test.cc +0 -3653
- package/deps/abseil-cpp/absl/container/btree_test.h +0 -166
- package/deps/abseil-cpp/absl/container/chunked_queue.h +0 -755
- package/deps/abseil-cpp/absl/container/chunked_queue_benchmark.cc +0 -386
- package/deps/abseil-cpp/absl/container/chunked_queue_test.cc +0 -768
- package/deps/abseil-cpp/absl/container/fixed_array.h +0 -547
- package/deps/abseil-cpp/absl/container/fixed_array_benchmark.cc +0 -67
- package/deps/abseil-cpp/absl/container/fixed_array_exception_safety_test.cc +0 -201
- package/deps/abseil-cpp/absl/container/fixed_array_test.cc +0 -874
- package/deps/abseil-cpp/absl/container/flat_hash_map.h +0 -702
- package/deps/abseil-cpp/absl/container/flat_hash_map_test.cc +0 -451
- package/deps/abseil-cpp/absl/container/flat_hash_set.h +0 -590
- package/deps/abseil-cpp/absl/container/flat_hash_set_test.cc +0 -401
- package/deps/abseil-cpp/absl/container/hash_container_defaults.h +0 -45
- package/deps/abseil-cpp/absl/container/inlined_vector.h +0 -1025
- package/deps/abseil-cpp/absl/container/inlined_vector_benchmark.cc +0 -829
- package/deps/abseil-cpp/absl/container/inlined_vector_exception_safety_test.cc +0 -508
- package/deps/abseil-cpp/absl/container/inlined_vector_test.cc +0 -2278
- package/deps/abseil-cpp/absl/container/internal/btree.h +0 -3149
- package/deps/abseil-cpp/absl/container/internal/btree_container.h +0 -876
- package/deps/abseil-cpp/absl/container/internal/chunked_queue.h +0 -173
- package/deps/abseil-cpp/absl/container/internal/common.h +0 -301
- package/deps/abseil-cpp/absl/container/internal/common_policy_traits.h +0 -151
- package/deps/abseil-cpp/absl/container/internal/common_policy_traits_test.cc +0 -157
- package/deps/abseil-cpp/absl/container/internal/compressed_tuple.h +0 -275
- package/deps/abseil-cpp/absl/container/internal/compressed_tuple_test.cc +0 -469
- package/deps/abseil-cpp/absl/container/internal/container_memory.h +0 -561
- package/deps/abseil-cpp/absl/container/internal/container_memory_test.cc +0 -359
- package/deps/abseil-cpp/absl/container/internal/hash_function_defaults.h +0 -281
- package/deps/abseil-cpp/absl/container/internal/hash_function_defaults_test.cc +0 -633
- package/deps/abseil-cpp/absl/container/internal/hash_generator_testing.cc +0 -54
- package/deps/abseil-cpp/absl/container/internal/hash_generator_testing.h +0 -172
- package/deps/abseil-cpp/absl/container/internal/hash_policy_testing.h +0 -173
- package/deps/abseil-cpp/absl/container/internal/hash_policy_testing_test.cc +0 -45
- package/deps/abseil-cpp/absl/container/internal/hash_policy_traits.h +0 -195
- package/deps/abseil-cpp/absl/container/internal/hash_policy_traits_test.cc +0 -149
- package/deps/abseil-cpp/absl/container/internal/hashtable_control_bytes.h +0 -527
- package/deps/abseil-cpp/absl/container/internal/hashtable_control_bytes_test.cc +0 -259
- package/deps/abseil-cpp/absl/container/internal/hashtable_debug.h +0 -102
- package/deps/abseil-cpp/absl/container/internal/hashtable_debug_hooks.h +0 -85
- package/deps/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +0 -316
- package/deps/abseil-cpp/absl/container/internal/hashtablez_sampler.h +0 -311
- package/deps/abseil-cpp/absl/container/internal/hashtablez_sampler_force_weak_definition.cc +0 -31
- package/deps/abseil-cpp/absl/container/internal/hashtablez_sampler_test.cc +0 -534
- package/deps/abseil-cpp/absl/container/internal/heterogeneous_lookup_testing.h +0 -80
- package/deps/abseil-cpp/absl/container/internal/inlined_vector.h +0 -1094
- package/deps/abseil-cpp/absl/container/internal/layout.h +0 -828
- package/deps/abseil-cpp/absl/container/internal/layout_benchmark.cc +0 -295
- package/deps/abseil-cpp/absl/container/internal/layout_test.cc +0 -2034
- package/deps/abseil-cpp/absl/container/internal/node_slot_policy.h +0 -95
- package/deps/abseil-cpp/absl/container/internal/node_slot_policy_test.cc +0 -71
- package/deps/abseil-cpp/absl/container/internal/raw_hash_map.h +0 -382
- package/deps/abseil-cpp/absl/container/internal/raw_hash_set.cc +0 -2090
- package/deps/abseil-cpp/absl/container/internal/raw_hash_set.h +0 -3763
- package/deps/abseil-cpp/absl/container/internal/raw_hash_set_allocator_test.cc +0 -525
- package/deps/abseil-cpp/absl/container/internal/raw_hash_set_benchmark.cc +0 -696
- package/deps/abseil-cpp/absl/container/internal/raw_hash_set_probe_benchmark.cc +0 -583
- package/deps/abseil-cpp/absl/container/internal/raw_hash_set_resize_impl.h +0 -79
- package/deps/abseil-cpp/absl/container/internal/raw_hash_set_resize_impl_test.cc +0 -66
- package/deps/abseil-cpp/absl/container/internal/raw_hash_set_test.cc +0 -4184
- package/deps/abseil-cpp/absl/container/internal/test_allocator.h +0 -387
- package/deps/abseil-cpp/absl/container/internal/test_instance_tracker.cc +0 -29
- package/deps/abseil-cpp/absl/container/internal/test_instance_tracker.h +0 -274
- package/deps/abseil-cpp/absl/container/internal/test_instance_tracker_test.cc +0 -184
- package/deps/abseil-cpp/absl/container/internal/tracked.h +0 -83
- package/deps/abseil-cpp/absl/container/internal/unordered_map_constructor_test.h +0 -435
- package/deps/abseil-cpp/absl/container/internal/unordered_map_lookup_test.h +0 -112
- package/deps/abseil-cpp/absl/container/internal/unordered_map_members_test.h +0 -87
- package/deps/abseil-cpp/absl/container/internal/unordered_map_modifiers_test.h +0 -336
- package/deps/abseil-cpp/absl/container/internal/unordered_map_test.cc +0 -50
- package/deps/abseil-cpp/absl/container/internal/unordered_set_constructor_test.h +0 -437
- package/deps/abseil-cpp/absl/container/internal/unordered_set_lookup_test.h +0 -88
- package/deps/abseil-cpp/absl/container/internal/unordered_set_members_test.h +0 -86
- package/deps/abseil-cpp/absl/container/internal/unordered_set_modifiers_test.h +0 -215
- package/deps/abseil-cpp/absl/container/internal/unordered_set_test.cc +0 -41
- package/deps/abseil-cpp/absl/container/linked_hash_map.h +0 -666
- package/deps/abseil-cpp/absl/container/linked_hash_map_benchmark.cc +0 -140
- package/deps/abseil-cpp/absl/container/linked_hash_map_test.cc +0 -987
- package/deps/abseil-cpp/absl/container/linked_hash_set.h +0 -527
- package/deps/abseil-cpp/absl/container/linked_hash_set_benchmark.cc +0 -84
- package/deps/abseil-cpp/absl/container/linked_hash_set_test.cc +0 -947
- package/deps/abseil-cpp/absl/container/node_hash_map.h +0 -698
- package/deps/abseil-cpp/absl/container/node_hash_map_test.cc +0 -348
- package/deps/abseil-cpp/absl/container/node_hash_set.h +0 -589
- package/deps/abseil-cpp/absl/container/node_hash_set_test.cc +0 -188
- package/deps/abseil-cpp/absl/container/sample_element_size_test.cc +0 -118
- package/deps/abseil-cpp/absl/copts/AbseilConfigureCopts.cmake +0 -106
- package/deps/abseil-cpp/absl/copts/GENERATED_AbseilCopts.cmake +0 -303
- package/deps/abseil-cpp/absl/copts/GENERATED_copts.bzl +0 -304
- package/deps/abseil-cpp/absl/copts/configure_copts.bzl +0 -39
- package/deps/abseil-cpp/absl/copts/copts.py +0 -205
- package/deps/abseil-cpp/absl/copts/generate_copts.py +0 -109
- package/deps/abseil-cpp/absl/crc/BUILD.bazel +0 -228
- package/deps/abseil-cpp/absl/crc/CMakeLists.txt +0 -177
- package/deps/abseil-cpp/absl/crc/crc32c.cc +0 -95
- package/deps/abseil-cpp/absl/crc/crc32c.h +0 -192
- package/deps/abseil-cpp/absl/crc/crc32c_benchmark.cc +0 -196
- package/deps/abseil-cpp/absl/crc/crc32c_test.cc +0 -257
- package/deps/abseil-cpp/absl/crc/internal/cpu_detect.cc +0 -359
- package/deps/abseil-cpp/absl/crc/internal/cpu_detect.h +0 -69
- package/deps/abseil-cpp/absl/crc/internal/crc.cc +0 -435
- package/deps/abseil-cpp/absl/crc/internal/crc.h +0 -83
- package/deps/abseil-cpp/absl/crc/internal/crc32_x86_arm_combined_simd.h +0 -278
- package/deps/abseil-cpp/absl/crc/internal/crc32c.h +0 -39
- package/deps/abseil-cpp/absl/crc/internal/crc32c_inline.h +0 -72
- package/deps/abseil-cpp/absl/crc/internal/crc_cord_state.cc +0 -131
- package/deps/abseil-cpp/absl/crc/internal/crc_cord_state.h +0 -159
- package/deps/abseil-cpp/absl/crc/internal/crc_cord_state_test.cc +0 -124
- package/deps/abseil-cpp/absl/crc/internal/crc_internal.h +0 -161
- package/deps/abseil-cpp/absl/crc/internal/crc_memcpy.h +0 -122
- package/deps/abseil-cpp/absl/crc/internal/crc_memcpy_fallback.cc +0 -78
- package/deps/abseil-cpp/absl/crc/internal/crc_memcpy_test.cc +0 -177
- package/deps/abseil-cpp/absl/crc/internal/crc_memcpy_x86_arm_combined.cc +0 -459
- package/deps/abseil-cpp/absl/crc/internal/crc_non_temporal_memcpy.cc +0 -93
- package/deps/abseil-cpp/absl/crc/internal/crc_x86_arm_combined.cc +0 -762
- package/deps/abseil-cpp/absl/crc/internal/gen_crc32c_consts.py +0 -90
- package/deps/abseil-cpp/absl/crc/internal/non_temporal_arm_intrinsics.h +0 -81
- package/deps/abseil-cpp/absl/crc/internal/non_temporal_memcpy.h +0 -195
- package/deps/abseil-cpp/absl/crc/internal/non_temporal_memcpy_test.cc +0 -90
- package/deps/abseil-cpp/absl/debugging/BUILD.bazel +0 -483
- package/deps/abseil-cpp/absl/debugging/CMakeLists.txt +0 -448
- package/deps/abseil-cpp/absl/debugging/failure_signal_handler.cc +0 -434
- package/deps/abseil-cpp/absl/debugging/failure_signal_handler.h +0 -121
- package/deps/abseil-cpp/absl/debugging/failure_signal_handler_test.cc +0 -166
- package/deps/abseil-cpp/absl/debugging/internal/address_is_readable.cc +0 -98
- package/deps/abseil-cpp/absl/debugging/internal/address_is_readable.h +0 -32
- package/deps/abseil-cpp/absl/debugging/internal/addresses.h +0 -57
- package/deps/abseil-cpp/absl/debugging/internal/borrowed_fixup_buffer.cc +0 -118
- package/deps/abseil-cpp/absl/debugging/internal/borrowed_fixup_buffer.h +0 -71
- package/deps/abseil-cpp/absl/debugging/internal/borrowed_fixup_buffer_test.cc +0 -97
- package/deps/abseil-cpp/absl/debugging/internal/bounded_utf8_length_sequence.h +0 -126
- package/deps/abseil-cpp/absl/debugging/internal/bounded_utf8_length_sequence_test.cc +0 -126
- package/deps/abseil-cpp/absl/debugging/internal/decode_rust_punycode.cc +0 -258
- package/deps/abseil-cpp/absl/debugging/internal/decode_rust_punycode.h +0 -55
- package/deps/abseil-cpp/absl/debugging/internal/decode_rust_punycode_test.cc +0 -606
- package/deps/abseil-cpp/absl/debugging/internal/demangle.cc +0 -2958
- package/deps/abseil-cpp/absl/debugging/internal/demangle.h +0 -76
- package/deps/abseil-cpp/absl/debugging/internal/demangle_rust.cc +0 -925
- package/deps/abseil-cpp/absl/debugging/internal/demangle_rust.h +0 -42
- package/deps/abseil-cpp/absl/debugging/internal/demangle_rust_test.cc +0 -584
- package/deps/abseil-cpp/absl/debugging/internal/demangle_test.cc +0 -2050
- package/deps/abseil-cpp/absl/debugging/internal/elf_mem_image.cc +0 -413
- package/deps/abseil-cpp/absl/debugging/internal/elf_mem_image.h +0 -141
- package/deps/abseil-cpp/absl/debugging/internal/examine_stack.cc +0 -334
- package/deps/abseil-cpp/absl/debugging/internal/examine_stack.h +0 -70
- package/deps/abseil-cpp/absl/debugging/internal/stack_consumption.cc +0 -206
- package/deps/abseil-cpp/absl/debugging/internal/stack_consumption.h +0 -50
- package/deps/abseil-cpp/absl/debugging/internal/stack_consumption_test.cc +0 -50
- package/deps/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +0 -288
- package/deps/abseil-cpp/absl/debugging/internal/stacktrace_arm-inl.inc +0 -148
- package/deps/abseil-cpp/absl/debugging/internal/stacktrace_config.h +0 -96
- package/deps/abseil-cpp/absl/debugging/internal/stacktrace_emscripten-inl.inc +0 -112
- package/deps/abseil-cpp/absl/debugging/internal/stacktrace_generic-inl.inc +0 -114
- package/deps/abseil-cpp/absl/debugging/internal/stacktrace_powerpc-inl.inc +0 -270
- package/deps/abseil-cpp/absl/debugging/internal/stacktrace_riscv-inl.inc +0 -204
- package/deps/abseil-cpp/absl/debugging/internal/stacktrace_unimplemented-inl.inc +0 -25
- package/deps/abseil-cpp/absl/debugging/internal/stacktrace_win32-inl.inc +0 -81
- package/deps/abseil-cpp/absl/debugging/internal/stacktrace_x86-inl.inc +0 -410
- package/deps/abseil-cpp/absl/debugging/internal/symbolize.h +0 -153
- package/deps/abseil-cpp/absl/debugging/internal/utf8_for_code_point.cc +0 -70
- package/deps/abseil-cpp/absl/debugging/internal/utf8_for_code_point.h +0 -47
- package/deps/abseil-cpp/absl/debugging/internal/utf8_for_code_point_test.cc +0 -175
- package/deps/abseil-cpp/absl/debugging/internal/vdso_support.cc +0 -209
- package/deps/abseil-cpp/absl/debugging/internal/vdso_support.h +0 -158
- package/deps/abseil-cpp/absl/debugging/leak_check.cc +0 -73
- package/deps/abseil-cpp/absl/debugging/leak_check.h +0 -150
- package/deps/abseil-cpp/absl/debugging/leak_check_fail_test.cc +0 -41
- package/deps/abseil-cpp/absl/debugging/leak_check_test.cc +0 -41
- package/deps/abseil-cpp/absl/debugging/stacktrace.cc +0 -244
- package/deps/abseil-cpp/absl/debugging/stacktrace.h +0 -302
- package/deps/abseil-cpp/absl/debugging/stacktrace_benchmark.cc +0 -78
- package/deps/abseil-cpp/absl/debugging/stacktrace_test.cc +0 -505
- package/deps/abseil-cpp/absl/debugging/symbolize.cc +0 -44
- package/deps/abseil-cpp/absl/debugging/symbolize.h +0 -99
- package/deps/abseil-cpp/absl/debugging/symbolize_darwin.inc +0 -102
- package/deps/abseil-cpp/absl/debugging/symbolize_elf.inc +0 -1756
- package/deps/abseil-cpp/absl/debugging/symbolize_emscripten.inc +0 -63
- package/deps/abseil-cpp/absl/debugging/symbolize_test.cc +0 -619
- package/deps/abseil-cpp/absl/debugging/symbolize_unimplemented.inc +0 -40
- package/deps/abseil-cpp/absl/debugging/symbolize_win32.inc +0 -99
- package/deps/abseil-cpp/absl/extend/CMakeLists.txt +0 -140
- package/deps/abseil-cpp/absl/extend/internal/BUILD.bazel +0 -127
- package/deps/abseil-cpp/absl/extend/internal/aggregate.h +0 -1687
- package/deps/abseil-cpp/absl/extend/internal/aggregate_test.cc +0 -867
- package/deps/abseil-cpp/absl/extend/internal/dependencies.h +0 -83
- package/deps/abseil-cpp/absl/extend/internal/dependencies_test.cc +0 -117
- package/deps/abseil-cpp/absl/extend/internal/is_tuple_hashable.h +0 -45
- package/deps/abseil-cpp/absl/extend/internal/num_bases.h +0 -87
- package/deps/abseil-cpp/absl/extend/internal/num_bases_test.cc +0 -91
- package/deps/abseil-cpp/absl/extend/internal/num_initializers.h +0 -113
- package/deps/abseil-cpp/absl/extend/internal/num_initializers_test.cc +0 -250
- package/deps/abseil-cpp/absl/extend/internal/reflection.cc +0 -112
- package/deps/abseil-cpp/absl/extend/internal/reflection.h +0 -75
- package/deps/abseil-cpp/absl/extend/internal/tuple.h +0 -51
- package/deps/abseil-cpp/absl/flags/BUILD.bazel +0 -618
- package/deps/abseil-cpp/absl/flags/CMakeLists.txt +0 -482
- package/deps/abseil-cpp/absl/flags/commandlineflag.cc +0 -35
- package/deps/abseil-cpp/absl/flags/commandlineflag.h +0 -219
- package/deps/abseil-cpp/absl/flags/commandlineflag_test.cc +0 -236
- package/deps/abseil-cpp/absl/flags/config.h +0 -68
- package/deps/abseil-cpp/absl/flags/config_test.cc +0 -61
- package/deps/abseil-cpp/absl/flags/declare.h +0 -77
- package/deps/abseil-cpp/absl/flags/flag.h +0 -307
- package/deps/abseil-cpp/absl/flags/flag_benchmark.cc +0 -251
- package/deps/abseil-cpp/absl/flags/flag_benchmark.lds +0 -13
- package/deps/abseil-cpp/absl/flags/flag_test.cc +0 -1381
- package/deps/abseil-cpp/absl/flags/flag_test_defs.cc +0 -24
- package/deps/abseil-cpp/absl/flags/internal/commandlineflag.cc +0 -26
- package/deps/abseil-cpp/absl/flags/internal/commandlineflag.h +0 -68
- package/deps/abseil-cpp/absl/flags/internal/flag.cc +0 -712
- package/deps/abseil-cpp/absl/flags/internal/flag.h +0 -969
- package/deps/abseil-cpp/absl/flags/internal/parse.h +0 -70
- package/deps/abseil-cpp/absl/flags/internal/path_util.h +0 -62
- package/deps/abseil-cpp/absl/flags/internal/path_util_test.cc +0 -46
- package/deps/abseil-cpp/absl/flags/internal/private_handle_accessor.cc +0 -69
- package/deps/abseil-cpp/absl/flags/internal/private_handle_accessor.h +0 -64
- package/deps/abseil-cpp/absl/flags/internal/program_name.cc +0 -61
- package/deps/abseil-cpp/absl/flags/internal/program_name.h +0 -50
- package/deps/abseil-cpp/absl/flags/internal/program_name_test.cc +0 -61
- package/deps/abseil-cpp/absl/flags/internal/registry.h +0 -98
- package/deps/abseil-cpp/absl/flags/internal/sequence_lock.h +0 -187
- package/deps/abseil-cpp/absl/flags/internal/sequence_lock_test.cc +0 -169
- package/deps/abseil-cpp/absl/flags/internal/usage.cc +0 -558
- package/deps/abseil-cpp/absl/flags/internal/usage.h +0 -106
- package/deps/abseil-cpp/absl/flags/internal/usage_test.cc +0 -550
- package/deps/abseil-cpp/absl/flags/marshalling.cc +0 -276
- package/deps/abseil-cpp/absl/flags/marshalling.h +0 -361
- package/deps/abseil-cpp/absl/flags/marshalling_test.cc +0 -1220
- package/deps/abseil-cpp/absl/flags/parse.cc +0 -952
- package/deps/abseil-cpp/absl/flags/parse.h +0 -130
- package/deps/abseil-cpp/absl/flags/parse_test.cc +0 -1094
- package/deps/abseil-cpp/absl/flags/reflection.cc +0 -368
- package/deps/abseil-cpp/absl/flags/reflection.h +0 -90
- package/deps/abseil-cpp/absl/flags/reflection_test.cc +0 -268
- package/deps/abseil-cpp/absl/flags/usage.cc +0 -66
- package/deps/abseil-cpp/absl/flags/usage.h +0 -43
- package/deps/abseil-cpp/absl/flags/usage_config.cc +0 -170
- package/deps/abseil-cpp/absl/flags/usage_config.h +0 -135
- package/deps/abseil-cpp/absl/flags/usage_config_test.cc +0 -205
- package/deps/abseil-cpp/absl/functional/BUILD.bazel +0 -173
- package/deps/abseil-cpp/absl/functional/CMakeLists.txt +0 -140
- package/deps/abseil-cpp/absl/functional/any_invocable.h +0 -336
- package/deps/abseil-cpp/absl/functional/any_invocable_test.cc +0 -1687
- package/deps/abseil-cpp/absl/functional/bind_front.h +0 -200
- package/deps/abseil-cpp/absl/functional/bind_front_test.cc +0 -227
- package/deps/abseil-cpp/absl/functional/function_ref.h +0 -249
- package/deps/abseil-cpp/absl/functional/function_ref_test.cc +0 -416
- package/deps/abseil-cpp/absl/functional/function_type_benchmark.cc +0 -176
- package/deps/abseil-cpp/absl/functional/internal/any_invocable.h +0 -787
- package/deps/abseil-cpp/absl/functional/internal/front_binder.h +0 -93
- package/deps/abseil-cpp/absl/functional/internal/function_ref.h +0 -151
- package/deps/abseil-cpp/absl/functional/overload.h +0 -72
- package/deps/abseil-cpp/absl/functional/overload_test.cc +0 -207
- package/deps/abseil-cpp/absl/hash/BUILD.bazel +0 -220
- package/deps/abseil-cpp/absl/hash/CMakeLists.txt +0 -179
- package/deps/abseil-cpp/absl/hash/hash.h +0 -466
- package/deps/abseil-cpp/absl/hash/hash_benchmark.cc +0 -398
- package/deps/abseil-cpp/absl/hash/hash_instantiated_test.cc +0 -224
- package/deps/abseil-cpp/absl/hash/hash_test.cc +0 -1320
- package/deps/abseil-cpp/absl/hash/hash_testing.h +0 -380
- package/deps/abseil-cpp/absl/hash/internal/city.cc +0 -337
- package/deps/abseil-cpp/absl/hash/internal/city.h +0 -78
- package/deps/abseil-cpp/absl/hash/internal/city_test.cc +0 -597
- package/deps/abseil-cpp/absl/hash/internal/hash.cc +0 -430
- package/deps/abseil-cpp/absl/hash/internal/hash.h +0 -1563
- package/deps/abseil-cpp/absl/hash/internal/hash_test.h +0 -87
- package/deps/abseil-cpp/absl/hash/internal/low_level_hash_test.cc +0 -509
- package/deps/abseil-cpp/absl/hash/internal/print_hash_of.cc +0 -23
- package/deps/abseil-cpp/absl/hash/internal/spy_hash_state.h +0 -286
- package/deps/abseil-cpp/absl/hash/internal/weakly_mixed_integer.h +0 -38
- package/deps/abseil-cpp/absl/log/BUILD.bazel +0 -686
- package/deps/abseil-cpp/absl/log/CMakeLists.txt +0 -1239
- package/deps/abseil-cpp/absl/log/absl_check.h +0 -117
- package/deps/abseil-cpp/absl/log/absl_check_test.cc +0 -58
- package/deps/abseil-cpp/absl/log/absl_log.h +0 -115
- package/deps/abseil-cpp/absl/log/absl_log_basic_test.cc +0 -22
- package/deps/abseil-cpp/absl/log/absl_vlog_is_on.h +0 -95
- package/deps/abseil-cpp/absl/log/check.h +0 -210
- package/deps/abseil-cpp/absl/log/check_test.cc +0 -58
- package/deps/abseil-cpp/absl/log/check_test_impl.inc +0 -1035
- package/deps/abseil-cpp/absl/log/die_if_null.cc +0 -34
- package/deps/abseil-cpp/absl/log/die_if_null.h +0 -97
- package/deps/abseil-cpp/absl/log/die_if_null_test.cc +0 -107
- package/deps/abseil-cpp/absl/log/flags.cc +0 -143
- package/deps/abseil-cpp/absl/log/flags.h +0 -43
- package/deps/abseil-cpp/absl/log/flags_test.cc +0 -195
- package/deps/abseil-cpp/absl/log/globals.cc +0 -178
- package/deps/abseil-cpp/absl/log/globals.h +0 -230
- package/deps/abseil-cpp/absl/log/globals_test.cc +0 -156
- package/deps/abseil-cpp/absl/log/initialize.cc +0 -38
- package/deps/abseil-cpp/absl/log/initialize.h +0 -45
- package/deps/abseil-cpp/absl/log/internal/BUILD.bazel +0 -581
- package/deps/abseil-cpp/absl/log/internal/append_truncated.h +0 -75
- package/deps/abseil-cpp/absl/log/internal/check_impl.h +0 -151
- package/deps/abseil-cpp/absl/log/internal/check_op.cc +0 -147
- package/deps/abseil-cpp/absl/log/internal/check_op.h +0 -565
- package/deps/abseil-cpp/absl/log/internal/conditions.cc +0 -85
- package/deps/abseil-cpp/absl/log/internal/conditions.h +0 -247
- package/deps/abseil-cpp/absl/log/internal/config.h +0 -45
- package/deps/abseil-cpp/absl/log/internal/container.h +0 -312
- package/deps/abseil-cpp/absl/log/internal/container_test.cc +0 -254
- package/deps/abseil-cpp/absl/log/internal/flags.h +0 -59
- package/deps/abseil-cpp/absl/log/internal/fnmatch.cc +0 -73
- package/deps/abseil-cpp/absl/log/internal/fnmatch.h +0 -35
- package/deps/abseil-cpp/absl/log/internal/fnmatch_benchmark.cc +0 -29
- package/deps/abseil-cpp/absl/log/internal/fnmatch_test.cc +0 -60
- package/deps/abseil-cpp/absl/log/internal/globals.cc +0 -145
- package/deps/abseil-cpp/absl/log/internal/globals.h +0 -101
- package/deps/abseil-cpp/absl/log/internal/log_format.cc +0 -205
- package/deps/abseil-cpp/absl/log/internal/log_format.h +0 -78
- package/deps/abseil-cpp/absl/log/internal/log_impl.h +0 -280
- package/deps/abseil-cpp/absl/log/internal/log_message.cc +0 -787
- package/deps/abseil-cpp/absl/log/internal/log_message.h +0 -455
- package/deps/abseil-cpp/absl/log/internal/log_sink_set.cc +0 -296
- package/deps/abseil-cpp/absl/log/internal/log_sink_set.h +0 -54
- package/deps/abseil-cpp/absl/log/internal/nullguard.cc +0 -35
- package/deps/abseil-cpp/absl/log/internal/nullguard.h +0 -88
- package/deps/abseil-cpp/absl/log/internal/nullstream.h +0 -128
- package/deps/abseil-cpp/absl/log/internal/proto.cc +0 -218
- package/deps/abseil-cpp/absl/log/internal/proto.h +0 -298
- package/deps/abseil-cpp/absl/log/internal/stderr_log_sink_test.cc +0 -105
- package/deps/abseil-cpp/absl/log/internal/strip.h +0 -99
- package/deps/abseil-cpp/absl/log/internal/structured.h +0 -160
- package/deps/abseil-cpp/absl/log/internal/structured_proto.cc +0 -115
- package/deps/abseil-cpp/absl/log/internal/structured_proto.h +0 -107
- package/deps/abseil-cpp/absl/log/internal/structured_proto_test.cc +0 -120
- package/deps/abseil-cpp/absl/log/internal/test_actions.cc +0 -75
- package/deps/abseil-cpp/absl/log/internal/test_actions.h +0 -90
- package/deps/abseil-cpp/absl/log/internal/test_helpers.cc +0 -82
- package/deps/abseil-cpp/absl/log/internal/test_helpers.h +0 -71
- package/deps/abseil-cpp/absl/log/internal/test_matchers.cc +0 -216
- package/deps/abseil-cpp/absl/log/internal/test_matchers.h +0 -94
- package/deps/abseil-cpp/absl/log/internal/vlog_config.cc +0 -347
- package/deps/abseil-cpp/absl/log/internal/vlog_config.h +0 -164
- package/deps/abseil-cpp/absl/log/internal/vlog_config_benchmark.cc +0 -187
- package/deps/abseil-cpp/absl/log/internal/voidify.h +0 -50
- package/deps/abseil-cpp/absl/log/log.h +0 -378
- package/deps/abseil-cpp/absl/log/log_basic_test.cc +0 -22
- package/deps/abseil-cpp/absl/log/log_basic_test_impl.inc +0 -654
- package/deps/abseil-cpp/absl/log/log_benchmark.cc +0 -164
- package/deps/abseil-cpp/absl/log/log_entry.cc +0 -263
- package/deps/abseil-cpp/absl/log/log_entry.h +0 -223
- package/deps/abseil-cpp/absl/log/log_entry_test.cc +0 -468
- package/deps/abseil-cpp/absl/log/log_format_test.cc +0 -2261
- package/deps/abseil-cpp/absl/log/log_macro_hygiene_test.cc +0 -187
- package/deps/abseil-cpp/absl/log/log_modifier_methods_test.cc +0 -244
- package/deps/abseil-cpp/absl/log/log_sink.cc +0 -23
- package/deps/abseil-cpp/absl/log/log_sink.h +0 -71
- package/deps/abseil-cpp/absl/log/log_sink_registry.h +0 -64
- package/deps/abseil-cpp/absl/log/log_sink_test.cc +0 -418
- package/deps/abseil-cpp/absl/log/log_streamer.h +0 -181
- package/deps/abseil-cpp/absl/log/log_streamer_test.cc +0 -451
- package/deps/abseil-cpp/absl/log/scoped_mock_log.cc +0 -86
- package/deps/abseil-cpp/absl/log/scoped_mock_log.h +0 -203
- package/deps/abseil-cpp/absl/log/scoped_mock_log_test.cc +0 -295
- package/deps/abseil-cpp/absl/log/stripping_test.cc +0 -502
- package/deps/abseil-cpp/absl/log/structured.h +0 -75
- package/deps/abseil-cpp/absl/log/structured_test.cc +0 -64
- package/deps/abseil-cpp/absl/log/vlog_is_on.h +0 -74
- package/deps/abseil-cpp/absl/log/vlog_is_on_test.cc +0 -233
- package/deps/abseil-cpp/absl/memory/BUILD.bazel +0 -62
- package/deps/abseil-cpp/absl/memory/CMakeLists.txt +0 -41
- package/deps/abseil-cpp/absl/memory/memory.h +0 -278
- package/deps/abseil-cpp/absl/memory/memory_test.cc +0 -222
- package/deps/abseil-cpp/absl/meta/BUILD.bazel +0 -112
- package/deps/abseil-cpp/absl/meta/CMakeLists.txt +0 -100
- package/deps/abseil-cpp/absl/meta/internal/constexpr_testing.h +0 -73
- package/deps/abseil-cpp/absl/meta/internal/constexpr_testing_test.cc +0 -40
- package/deps/abseil-cpp/absl/meta/internal/requires.h +0 -67
- package/deps/abseil-cpp/absl/meta/internal/requires_test.cc +0 -66
- package/deps/abseil-cpp/absl/meta/type_traits.h +0 -582
- package/deps/abseil-cpp/absl/meta/type_traits_test.cc +0 -378
- package/deps/abseil-cpp/absl/numeric/BUILD.bazel +0 -145
- package/deps/abseil-cpp/absl/numeric/CMakeLists.txt +0 -104
- package/deps/abseil-cpp/absl/numeric/bits.h +0 -262
- package/deps/abseil-cpp/absl/numeric/bits_benchmark.cc +0 -73
- package/deps/abseil-cpp/absl/numeric/bits_test.cc +0 -724
- package/deps/abseil-cpp/absl/numeric/int128.cc +0 -344
- package/deps/abseil-cpp/absl/numeric/int128.h +0 -1224
- package/deps/abseil-cpp/absl/numeric/int128_benchmark.cc +0 -281
- package/deps/abseil-cpp/absl/numeric/int128_have_intrinsic.inc +0 -303
- package/deps/abseil-cpp/absl/numeric/int128_no_intrinsic.inc +0 -347
- package/deps/abseil-cpp/absl/numeric/int128_stream_test.cc +0 -1400
- package/deps/abseil-cpp/absl/numeric/int128_test.cc +0 -1407
- package/deps/abseil-cpp/absl/numeric/internal/bits.h +0 -394
- package/deps/abseil-cpp/absl/numeric/internal/representation.h +0 -55
- package/deps/abseil-cpp/absl/profiling/BUILD.bazel +0 -188
- package/deps/abseil-cpp/absl/profiling/CMakeLists.txt +0 -132
- package/deps/abseil-cpp/absl/profiling/hashtable.cc +0 -135
- package/deps/abseil-cpp/absl/profiling/hashtable.h +0 -40
- package/deps/abseil-cpp/absl/profiling/internal/exponential_biased.cc +0 -93
- package/deps/abseil-cpp/absl/profiling/internal/exponential_biased.h +0 -130
- package/deps/abseil-cpp/absl/profiling/internal/exponential_biased_test.cc +0 -203
- package/deps/abseil-cpp/absl/profiling/internal/periodic_sampler.cc +0 -53
- package/deps/abseil-cpp/absl/profiling/internal/periodic_sampler.h +0 -211
- package/deps/abseil-cpp/absl/profiling/internal/periodic_sampler_benchmark.cc +0 -79
- package/deps/abseil-cpp/absl/profiling/internal/periodic_sampler_test.cc +0 -177
- package/deps/abseil-cpp/absl/profiling/internal/profile_builder.cc +0 -463
- package/deps/abseil-cpp/absl/profiling/internal/profile_builder.h +0 -161
- package/deps/abseil-cpp/absl/profiling/internal/sample_recorder.h +0 -253
- package/deps/abseil-cpp/absl/profiling/internal/sample_recorder_test.cc +0 -188
- package/deps/abseil-cpp/absl/random/BUILD.bazel +0 -550
- package/deps/abseil-cpp/absl/random/CMakeLists.txt +0 -1250
- package/deps/abseil-cpp/absl/random/benchmarks.cc +0 -376
- package/deps/abseil-cpp/absl/random/bernoulli_distribution.h +0 -202
- package/deps/abseil-cpp/absl/random/bernoulli_distribution_test.cc +0 -217
- package/deps/abseil-cpp/absl/random/beta_distribution.h +0 -429
- package/deps/abseil-cpp/absl/random/beta_distribution_test.cc +0 -615
- package/deps/abseil-cpp/absl/random/bit_gen_ref.h +0 -187
- package/deps/abseil-cpp/absl/random/bit_gen_ref_test.cc +0 -107
- package/deps/abseil-cpp/absl/random/discrete_distribution.cc +0 -108
- package/deps/abseil-cpp/absl/random/discrete_distribution.h +0 -249
- package/deps/abseil-cpp/absl/random/discrete_distribution_test.cc +0 -251
- package/deps/abseil-cpp/absl/random/distributions.h +0 -450
- package/deps/abseil-cpp/absl/random/distributions_test.cc +0 -516
- package/deps/abseil-cpp/absl/random/examples_test.cc +0 -98
- package/deps/abseil-cpp/absl/random/exponential_distribution.h +0 -166
- package/deps/abseil-cpp/absl/random/exponential_distribution_test.cc +0 -426
- package/deps/abseil-cpp/absl/random/gaussian_distribution.cc +0 -104
- package/deps/abseil-cpp/absl/random/gaussian_distribution.h +0 -276
- package/deps/abseil-cpp/absl/random/gaussian_distribution_test.cc +0 -561
- package/deps/abseil-cpp/absl/random/generators_test.cc +0 -185
- package/deps/abseil-cpp/absl/random/internal/BUILD.bazel +0 -863
- package/deps/abseil-cpp/absl/random/internal/chi_square.cc +0 -230
- package/deps/abseil-cpp/absl/random/internal/chi_square.h +0 -89
- package/deps/abseil-cpp/absl/random/internal/chi_square_test.cc +0 -364
- package/deps/abseil-cpp/absl/random/internal/distribution_caller.h +0 -96
- package/deps/abseil-cpp/absl/random/internal/distribution_test_util.cc +0 -418
- package/deps/abseil-cpp/absl/random/internal/distribution_test_util.h +0 -113
- package/deps/abseil-cpp/absl/random/internal/distribution_test_util_test.cc +0 -193
- package/deps/abseil-cpp/absl/random/internal/entropy_pool.cc +0 -185
- package/deps/abseil-cpp/absl/random/internal/entropy_pool.h +0 -35
- package/deps/abseil-cpp/absl/random/internal/entropy_pool_test.cc +0 -119
- package/deps/abseil-cpp/absl/random/internal/explicit_seed_seq.h +0 -92
- package/deps/abseil-cpp/absl/random/internal/explicit_seed_seq_test.cc +0 -241
- package/deps/abseil-cpp/absl/random/internal/fast_uniform_bits.h +0 -271
- package/deps/abseil-cpp/absl/random/internal/fast_uniform_bits_test.cc +0 -336
- package/deps/abseil-cpp/absl/random/internal/fastmath.h +0 -57
- package/deps/abseil-cpp/absl/random/internal/fastmath_test.cc +0 -95
- package/deps/abseil-cpp/absl/random/internal/gaussian_distribution_gentables.cc +0 -142
- package/deps/abseil-cpp/absl/random/internal/generate_real.h +0 -144
- package/deps/abseil-cpp/absl/random/internal/generate_real_test.cc +0 -496
- package/deps/abseil-cpp/absl/random/internal/iostream_state_saver.h +0 -248
- package/deps/abseil-cpp/absl/random/internal/iostream_state_saver_test.cc +0 -373
- package/deps/abseil-cpp/absl/random/internal/mock_helpers.h +0 -160
- package/deps/abseil-cpp/absl/random/internal/mock_overload_set.h +0 -122
- package/deps/abseil-cpp/absl/random/internal/mock_validators.h +0 -98
- package/deps/abseil-cpp/absl/random/internal/nanobenchmark.cc +0 -804
- package/deps/abseil-cpp/absl/random/internal/nanobenchmark.h +0 -172
- package/deps/abseil-cpp/absl/random/internal/nanobenchmark_test.cc +0 -79
- package/deps/abseil-cpp/absl/random/internal/nonsecure_base.h +0 -160
- package/deps/abseil-cpp/absl/random/internal/nonsecure_base_test.cc +0 -267
- package/deps/abseil-cpp/absl/random/internal/pcg_engine.h +0 -287
- package/deps/abseil-cpp/absl/random/internal/pcg_engine_test.cc +0 -638
- package/deps/abseil-cpp/absl/random/internal/platform.h +0 -158
- package/deps/abseil-cpp/absl/random/internal/randen.cc +0 -91
- package/deps/abseil-cpp/absl/random/internal/randen.h +0 -96
- package/deps/abseil-cpp/absl/random/internal/randen_benchmarks.cc +0 -177
- package/deps/abseil-cpp/absl/random/internal/randen_detect.cc +0 -280
- package/deps/abseil-cpp/absl/random/internal/randen_detect.h +0 -33
- package/deps/abseil-cpp/absl/random/internal/randen_engine.h +0 -265
- package/deps/abseil-cpp/absl/random/internal/randen_engine_test.cc +0 -654
- package/deps/abseil-cpp/absl/random/internal/randen_hwaes.cc +0 -526
- package/deps/abseil-cpp/absl/random/internal/randen_hwaes.h +0 -50
- package/deps/abseil-cpp/absl/random/internal/randen_hwaes_test.cc +0 -99
- package/deps/abseil-cpp/absl/random/internal/randen_round_keys.cc +0 -462
- package/deps/abseil-cpp/absl/random/internal/randen_slow.cc +0 -471
- package/deps/abseil-cpp/absl/random/internal/randen_slow.h +0 -40
- package/deps/abseil-cpp/absl/random/internal/randen_slow_test.cc +0 -61
- package/deps/abseil-cpp/absl/random/internal/randen_test.cc +0 -75
- package/deps/abseil-cpp/absl/random/internal/randen_traits.h +0 -88
- package/deps/abseil-cpp/absl/random/internal/salted_seed_seq.h +0 -165
- package/deps/abseil-cpp/absl/random/internal/salted_seed_seq_test.cc +0 -172
- package/deps/abseil-cpp/absl/random/internal/seed_material.cc +0 -249
- package/deps/abseil-cpp/absl/random/internal/seed_material.h +0 -104
- package/deps/abseil-cpp/absl/random/internal/seed_material_test.cc +0 -205
- package/deps/abseil-cpp/absl/random/internal/sequence_urbg.h +0 -60
- package/deps/abseil-cpp/absl/random/internal/traits.h +0 -149
- package/deps/abseil-cpp/absl/random/internal/traits_test.cc +0 -123
- package/deps/abseil-cpp/absl/random/internal/uniform_helper.h +0 -244
- package/deps/abseil-cpp/absl/random/internal/uniform_helper_test.cc +0 -279
- package/deps/abseil-cpp/absl/random/internal/wide_multiply.h +0 -95
- package/deps/abseil-cpp/absl/random/internal/wide_multiply_test.cc +0 -119
- package/deps/abseil-cpp/absl/random/log_uniform_int_distribution.h +0 -253
- package/deps/abseil-cpp/absl/random/log_uniform_int_distribution_test.cc +0 -277
- package/deps/abseil-cpp/absl/random/mock_distributions.h +0 -269
- package/deps/abseil-cpp/absl/random/mock_distributions_test.cc +0 -281
- package/deps/abseil-cpp/absl/random/mocking_bit_gen.h +0 -237
- package/deps/abseil-cpp/absl/random/mocking_bit_gen_test.cc +0 -403
- package/deps/abseil-cpp/absl/random/poisson_distribution.h +0 -262
- package/deps/abseil-cpp/absl/random/poisson_distribution_test.cc +0 -569
- package/deps/abseil-cpp/absl/random/random.h +0 -224
- package/deps/abseil-cpp/absl/random/seed_gen_exception.cc +0 -45
- package/deps/abseil-cpp/absl/random/seed_gen_exception.h +0 -55
- package/deps/abseil-cpp/absl/random/seed_sequences.cc +0 -33
- package/deps/abseil-cpp/absl/random/seed_sequences.h +0 -112
- package/deps/abseil-cpp/absl/random/seed_sequences_test.cc +0 -126
- package/deps/abseil-cpp/absl/random/uniform_int_distribution.h +0 -276
- package/deps/abseil-cpp/absl/random/uniform_int_distribution_test.cc +0 -259
- package/deps/abseil-cpp/absl/random/uniform_real_distribution.h +0 -204
- package/deps/abseil-cpp/absl/random/uniform_real_distribution_test.cc +0 -394
- package/deps/abseil-cpp/absl/random/zipf_distribution.h +0 -273
- package/deps/abseil-cpp/absl/random/zipf_distribution_test.cc +0 -423
- package/deps/abseil-cpp/absl/status/BUILD.bazel +0 -211
- package/deps/abseil-cpp/absl/status/CMakeLists.txt +0 -159
- package/deps/abseil-cpp/absl/status/internal/status_internal.cc +0 -251
- package/deps/abseil-cpp/absl/status/internal/status_internal.h +0 -133
- package/deps/abseil-cpp/absl/status/internal/status_matchers.cc +0 -69
- package/deps/abseil-cpp/absl/status/internal/status_matchers.h +0 -246
- package/deps/abseil-cpp/absl/status/internal/statusor_internal.h +0 -657
- package/deps/abseil-cpp/absl/status/status.cc +0 -421
- package/deps/abseil-cpp/absl/status/status.h +0 -948
- package/deps/abseil-cpp/absl/status/status_benchmark.cc +0 -37
- package/deps/abseil-cpp/absl/status/status_matchers.h +0 -166
- package/deps/abseil-cpp/absl/status/status_matchers_test.cc +0 -211
- package/deps/abseil-cpp/absl/status/status_payload_printer.cc +0 -36
- package/deps/abseil-cpp/absl/status/status_payload_printer.h +0 -52
- package/deps/abseil-cpp/absl/status/status_test.cc +0 -580
- package/deps/abseil-cpp/absl/status/statusor.cc +0 -106
- package/deps/abseil-cpp/absl/status/statusor.h +0 -743
- package/deps/abseil-cpp/absl/status/statusor_benchmark.cc +0 -480
- package/deps/abseil-cpp/absl/status/statusor_test.cc +0 -2124
- package/deps/abseil-cpp/absl/strings/BUILD.bazel +0 -1593
- package/deps/abseil-cpp/absl/strings/CMakeLists.txt +0 -1295
- package/deps/abseil-cpp/absl/strings/ascii.cc +0 -296
- package/deps/abseil-cpp/absl/strings/ascii.h +0 -289
- package/deps/abseil-cpp/absl/strings/ascii_benchmark.cc +0 -157
- package/deps/abseil-cpp/absl/strings/ascii_test.cc +0 -374
- package/deps/abseil-cpp/absl/strings/atod_manual_test.cc +0 -193
- package/deps/abseil-cpp/absl/strings/char_formatting_test.cc +0 -169
- package/deps/abseil-cpp/absl/strings/charconv.cc +0 -1442
- package/deps/abseil-cpp/absl/strings/charconv.h +0 -123
- package/deps/abseil-cpp/absl/strings/charconv_benchmark.cc +0 -203
- package/deps/abseil-cpp/absl/strings/charconv_test.cc +0 -787
- package/deps/abseil-cpp/absl/strings/charset.h +0 -163
- package/deps/abseil-cpp/absl/strings/charset_benchmark.cc +0 -57
- package/deps/abseil-cpp/absl/strings/charset_test.cc +0 -181
- package/deps/abseil-cpp/absl/strings/cord.cc +0 -1582
- package/deps/abseil-cpp/absl/strings/cord.h +0 -1763
- package/deps/abseil-cpp/absl/strings/cord_analysis.cc +0 -196
- package/deps/abseil-cpp/absl/strings/cord_analysis.h +0 -63
- package/deps/abseil-cpp/absl/strings/cord_buffer.h +0 -572
- package/deps/abseil-cpp/absl/strings/cord_buffer_test.cc +0 -322
- package/deps/abseil-cpp/absl/strings/cord_test.cc +0 -3421
- package/deps/abseil-cpp/absl/strings/cord_test_helpers.h +0 -122
- package/deps/abseil-cpp/absl/strings/cordz_test.cc +0 -468
- package/deps/abseil-cpp/absl/strings/cordz_test_helpers.h +0 -152
- package/deps/abseil-cpp/absl/strings/escaping.cc +0 -1035
- package/deps/abseil-cpp/absl/strings/escaping.h +0 -185
- package/deps/abseil-cpp/absl/strings/escaping_benchmark.cc +0 -124
- package/deps/abseil-cpp/absl/strings/escaping_test.cc +0 -760
- package/deps/abseil-cpp/absl/strings/has_absl_stringify.h +0 -64
- package/deps/abseil-cpp/absl/strings/has_absl_stringify_test.cc +0 -40
- package/deps/abseil-cpp/absl/strings/has_ostream_operator.h +0 -42
- package/deps/abseil-cpp/absl/strings/has_ostream_operator_test.cc +0 -41
- package/deps/abseil-cpp/absl/strings/internal/append_and_overwrite.h +0 -93
- package/deps/abseil-cpp/absl/strings/internal/append_and_overwrite_test.cc +0 -95
- package/deps/abseil-cpp/absl/strings/internal/charconv_bigint.cc +0 -357
- package/deps/abseil-cpp/absl/strings/internal/charconv_bigint.h +0 -433
- package/deps/abseil-cpp/absl/strings/internal/charconv_bigint_test.cc +0 -260
- package/deps/abseil-cpp/absl/strings/internal/charconv_parse.cc +0 -504
- package/deps/abseil-cpp/absl/strings/internal/charconv_parse.h +0 -99
- package/deps/abseil-cpp/absl/strings/internal/charconv_parse_test.cc +0 -357
- package/deps/abseil-cpp/absl/strings/internal/cord_data_edge.h +0 -63
- package/deps/abseil-cpp/absl/strings/internal/cord_data_edge_test.cc +0 -130
- package/deps/abseil-cpp/absl/strings/internal/cord_internal.cc +0 -70
- package/deps/abseil-cpp/absl/strings/internal/cord_internal.h +0 -942
- package/deps/abseil-cpp/absl/strings/internal/cord_rep_btree.cc +0 -1237
- package/deps/abseil-cpp/absl/strings/internal/cord_rep_btree.h +0 -944
- package/deps/abseil-cpp/absl/strings/internal/cord_rep_btree_navigator.cc +0 -187
- package/deps/abseil-cpp/absl/strings/internal/cord_rep_btree_navigator.h +0 -267
- package/deps/abseil-cpp/absl/strings/internal/cord_rep_btree_navigator_test.cc +0 -346
- package/deps/abseil-cpp/absl/strings/internal/cord_rep_btree_reader.cc +0 -69
- package/deps/abseil-cpp/absl/strings/internal/cord_rep_btree_reader.h +0 -212
- package/deps/abseil-cpp/absl/strings/internal/cord_rep_btree_reader_test.cc +0 -293
- package/deps/abseil-cpp/absl/strings/internal/cord_rep_btree_test.cc +0 -1568
- package/deps/abseil-cpp/absl/strings/internal/cord_rep_consume.cc +0 -64
- package/deps/abseil-cpp/absl/strings/internal/cord_rep_consume.h +0 -47
- package/deps/abseil-cpp/absl/strings/internal/cord_rep_crc.cc +0 -56
- package/deps/abseil-cpp/absl/strings/internal/cord_rep_crc.h +0 -103
- package/deps/abseil-cpp/absl/strings/internal/cord_rep_crc_test.cc +0 -130
- package/deps/abseil-cpp/absl/strings/internal/cord_rep_flat.h +0 -195
- package/deps/abseil-cpp/absl/strings/internal/cord_rep_test_util.h +0 -205
- package/deps/abseil-cpp/absl/strings/internal/cordz_functions.cc +0 -102
- package/deps/abseil-cpp/absl/strings/internal/cordz_functions.h +0 -87
- package/deps/abseil-cpp/absl/strings/internal/cordz_functions_test.cc +0 -147
- package/deps/abseil-cpp/absl/strings/internal/cordz_handle.cc +0 -165
- package/deps/abseil-cpp/absl/strings/internal/cordz_handle.h +0 -98
- package/deps/abseil-cpp/absl/strings/internal/cordz_handle_test.cc +0 -265
- package/deps/abseil-cpp/absl/strings/internal/cordz_info.cc +0 -424
- package/deps/abseil-cpp/absl/strings/internal/cordz_info.h +0 -295
- package/deps/abseil-cpp/absl/strings/internal/cordz_info_statistics_test.cc +0 -510
- package/deps/abseil-cpp/absl/strings/internal/cordz_info_test.cc +0 -342
- package/deps/abseil-cpp/absl/strings/internal/cordz_sample_token.cc +0 -64
- package/deps/abseil-cpp/absl/strings/internal/cordz_sample_token.h +0 -97
- package/deps/abseil-cpp/absl/strings/internal/cordz_sample_token_test.cc +0 -208
- package/deps/abseil-cpp/absl/strings/internal/cordz_statistics.h +0 -88
- package/deps/abseil-cpp/absl/strings/internal/cordz_update_scope.h +0 -71
- package/deps/abseil-cpp/absl/strings/internal/cordz_update_scope_test.cc +0 -49
- package/deps/abseil-cpp/absl/strings/internal/cordz_update_tracker.h +0 -123
- package/deps/abseil-cpp/absl/strings/internal/cordz_update_tracker_test.cc +0 -147
- package/deps/abseil-cpp/absl/strings/internal/damerau_levenshtein_distance.cc +0 -99
- package/deps/abseil-cpp/absl/strings/internal/damerau_levenshtein_distance.h +0 -35
- package/deps/abseil-cpp/absl/strings/internal/damerau_levenshtein_distance_benchmark.cc +0 -56
- package/deps/abseil-cpp/absl/strings/internal/damerau_levenshtein_distance_test.cc +0 -99
- package/deps/abseil-cpp/absl/strings/internal/escaping.cc +0 -209
- package/deps/abseil-cpp/absl/strings/internal/escaping.h +0 -59
- package/deps/abseil-cpp/absl/strings/internal/escaping_test_common.h +0 -133
- package/deps/abseil-cpp/absl/strings/internal/generic_printer.cc +0 -107
- package/deps/abseil-cpp/absl/strings/internal/generic_printer.h +0 -115
- package/deps/abseil-cpp/absl/strings/internal/generic_printer_internal.h +0 -423
- package/deps/abseil-cpp/absl/strings/internal/generic_printer_test.cc +0 -685
- package/deps/abseil-cpp/absl/strings/internal/memutil.cc +0 -48
- package/deps/abseil-cpp/absl/strings/internal/memutil.h +0 -40
- package/deps/abseil-cpp/absl/strings/internal/memutil_benchmark.cc +0 -127
- package/deps/abseil-cpp/absl/strings/internal/memutil_test.cc +0 -41
- package/deps/abseil-cpp/absl/strings/internal/numbers_test_common.h +0 -184
- package/deps/abseil-cpp/absl/strings/internal/ostringstream.cc +0 -43
- package/deps/abseil-cpp/absl/strings/internal/ostringstream.h +0 -114
- package/deps/abseil-cpp/absl/strings/internal/ostringstream_benchmark.cc +0 -105
- package/deps/abseil-cpp/absl/strings/internal/ostringstream_test.cc +0 -131
- package/deps/abseil-cpp/absl/strings/internal/pow10_helper.cc +0 -122
- package/deps/abseil-cpp/absl/strings/internal/pow10_helper.h +0 -40
- package/deps/abseil-cpp/absl/strings/internal/pow10_helper_test.cc +0 -122
- package/deps/abseil-cpp/absl/strings/internal/resize_uninitialized.h +0 -119
- package/deps/abseil-cpp/absl/strings/internal/resize_uninitialized_test.cc +0 -108
- package/deps/abseil-cpp/absl/strings/internal/stl_type_traits.h +0 -248
- package/deps/abseil-cpp/absl/strings/internal/str_format/arg.cc +0 -615
- package/deps/abseil-cpp/absl/strings/internal/str_format/arg.h +0 -661
- package/deps/abseil-cpp/absl/strings/internal/str_format/arg_test.cc +0 -162
- package/deps/abseil-cpp/absl/strings/internal/str_format/bind.cc +0 -275
- package/deps/abseil-cpp/absl/strings/internal/str_format/bind.h +0 -237
- package/deps/abseil-cpp/absl/strings/internal/str_format/bind_test.cc +0 -157
- package/deps/abseil-cpp/absl/strings/internal/str_format/checker.h +0 -98
- package/deps/abseil-cpp/absl/strings/internal/str_format/checker_test.cc +0 -176
- package/deps/abseil-cpp/absl/strings/internal/str_format/constexpr_parser.h +0 -357
- package/deps/abseil-cpp/absl/strings/internal/str_format/convert_test.cc +0 -1471
- package/deps/abseil-cpp/absl/strings/internal/str_format/extension.cc +0 -53
- package/deps/abseil-cpp/absl/strings/internal/str_format/extension.h +0 -456
- package/deps/abseil-cpp/absl/strings/internal/str_format/extension_test.cc +0 -110
- package/deps/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc +0 -1945
- package/deps/abseil-cpp/absl/strings/internal/str_format/float_conversion.h +0 -37
- package/deps/abseil-cpp/absl/strings/internal/str_format/output.cc +0 -74
- package/deps/abseil-cpp/absl/strings/internal/str_format/output.h +0 -97
- package/deps/abseil-cpp/absl/strings/internal/str_format/output_test.cc +0 -79
- package/deps/abseil-cpp/absl/strings/internal/str_format/parser.cc +0 -140
- package/deps/abseil-cpp/absl/strings/internal/str_format/parser.h +0 -271
- package/deps/abseil-cpp/absl/strings/internal/str_format/parser_test.cc +0 -446
- package/deps/abseil-cpp/absl/strings/internal/str_join_internal.h +0 -341
- package/deps/abseil-cpp/absl/strings/internal/str_split_internal.h +0 -525
- package/deps/abseil-cpp/absl/strings/internal/string_constant.h +0 -67
- package/deps/abseil-cpp/absl/strings/internal/string_constant_test.cc +0 -60
- package/deps/abseil-cpp/absl/strings/internal/stringify_sink.cc +0 -28
- package/deps/abseil-cpp/absl/strings/internal/stringify_sink.h +0 -57
- package/deps/abseil-cpp/absl/strings/internal/utf8.cc +0 -148
- package/deps/abseil-cpp/absl/strings/internal/utf8.h +0 -64
- package/deps/abseil-cpp/absl/strings/internal/utf8_test.cc +0 -259
- package/deps/abseil-cpp/absl/strings/match.cc +0 -133
- package/deps/abseil-cpp/absl/strings/match.h +0 -129
- package/deps/abseil-cpp/absl/strings/match_test.cc +0 -291
- package/deps/abseil-cpp/absl/strings/numbers.cc +0 -1230
- package/deps/abseil-cpp/absl/strings/numbers.h +0 -359
- package/deps/abseil-cpp/absl/strings/numbers_benchmark.cc +0 -288
- package/deps/abseil-cpp/absl/strings/numbers_test.cc +0 -2324
- package/deps/abseil-cpp/absl/strings/resize_and_overwrite.h +0 -194
- package/deps/abseil-cpp/absl/strings/resize_and_overwrite_test.cc +0 -154
- package/deps/abseil-cpp/absl/strings/str_cat.cc +0 -247
- package/deps/abseil-cpp/absl/strings/str_cat.h +0 -633
- package/deps/abseil-cpp/absl/strings/str_cat_benchmark.cc +0 -288
- package/deps/abseil-cpp/absl/strings/str_cat_test.cc +0 -692
- package/deps/abseil-cpp/absl/strings/str_format.h +0 -887
- package/deps/abseil-cpp/absl/strings/str_format_test.cc +0 -1230
- package/deps/abseil-cpp/absl/strings/str_join.h +0 -301
- package/deps/abseil-cpp/absl/strings/str_join_benchmark.cc +0 -106
- package/deps/abseil-cpp/absl/strings/str_join_test.cc +0 -645
- package/deps/abseil-cpp/absl/strings/str_replace.cc +0 -91
- package/deps/abseil-cpp/absl/strings/str_replace.h +0 -222
- package/deps/abseil-cpp/absl/strings/str_replace_benchmark.cc +0 -121
- package/deps/abseil-cpp/absl/strings/str_replace_test.cc +0 -345
- package/deps/abseil-cpp/absl/strings/str_split.cc +0 -144
- package/deps/abseil-cpp/absl/strings/str_split.h +0 -582
- package/deps/abseil-cpp/absl/strings/str_split_benchmark.cc +0 -180
- package/deps/abseil-cpp/absl/strings/str_split_test.cc +0 -1069
- package/deps/abseil-cpp/absl/strings/string_view.h +0 -60
- package/deps/abseil-cpp/absl/strings/string_view_test.cc +0 -86
- package/deps/abseil-cpp/absl/strings/strip.h +0 -99
- package/deps/abseil-cpp/absl/strings/strip_test.cc +0 -198
- package/deps/abseil-cpp/absl/strings/substitute.cc +0 -187
- package/deps/abseil-cpp/absl/strings/substitute.h +0 -769
- package/deps/abseil-cpp/absl/strings/substitute_benchmark.cc +0 -158
- package/deps/abseil-cpp/absl/strings/substitute_test.cc +0 -288
- package/deps/abseil-cpp/absl/synchronization/BUILD.bazel +0 -410
- package/deps/abseil-cpp/absl/synchronization/CMakeLists.txt +0 -293
- package/deps/abseil-cpp/absl/synchronization/barrier.cc +0 -52
- package/deps/abseil-cpp/absl/synchronization/barrier.h +0 -79
- package/deps/abseil-cpp/absl/synchronization/barrier_test.cc +0 -75
- package/deps/abseil-cpp/absl/synchronization/blocking_counter.cc +0 -73
- package/deps/abseil-cpp/absl/synchronization/blocking_counter.h +0 -107
- package/deps/abseil-cpp/absl/synchronization/blocking_counter_benchmark.cc +0 -84
- package/deps/abseil-cpp/absl/synchronization/blocking_counter_test.cc +0 -146
- package/deps/abseil-cpp/absl/synchronization/internal/create_thread_identity.cc +0 -152
- package/deps/abseil-cpp/absl/synchronization/internal/create_thread_identity.h +0 -56
- package/deps/abseil-cpp/absl/synchronization/internal/futex.h +0 -177
- package/deps/abseil-cpp/absl/synchronization/internal/futex_waiter.cc +0 -107
- package/deps/abseil-cpp/absl/synchronization/internal/futex_waiter.h +0 -63
- package/deps/abseil-cpp/absl/synchronization/internal/graphcycles.cc +0 -714
- package/deps/abseil-cpp/absl/synchronization/internal/graphcycles.h +0 -146
- package/deps/abseil-cpp/absl/synchronization/internal/graphcycles_benchmark.cc +0 -43
- package/deps/abseil-cpp/absl/synchronization/internal/graphcycles_test.cc +0 -483
- package/deps/abseil-cpp/absl/synchronization/internal/kernel_timeout.cc +0 -220
- package/deps/abseil-cpp/absl/synchronization/internal/kernel_timeout.h +0 -178
- package/deps/abseil-cpp/absl/synchronization/internal/kernel_timeout_test.cc +0 -406
- package/deps/abseil-cpp/absl/synchronization/internal/per_thread_sem.cc +0 -106
- package/deps/abseil-cpp/absl/synchronization/internal/per_thread_sem.h +0 -119
- package/deps/abseil-cpp/absl/synchronization/internal/per_thread_sem_test.cc +0 -194
- package/deps/abseil-cpp/absl/synchronization/internal/pthread_waiter.cc +0 -163
- package/deps/abseil-cpp/absl/synchronization/internal/pthread_waiter.h +0 -60
- package/deps/abseil-cpp/absl/synchronization/internal/sem_waiter.cc +0 -118
- package/deps/abseil-cpp/absl/synchronization/internal/sem_waiter.h +0 -65
- package/deps/abseil-cpp/absl/synchronization/internal/stdcpp_waiter.cc +0 -87
- package/deps/abseil-cpp/absl/synchronization/internal/stdcpp_waiter.h +0 -56
- package/deps/abseil-cpp/absl/synchronization/internal/thread_pool.h +0 -96
- package/deps/abseil-cpp/absl/synchronization/internal/waiter.h +0 -69
- package/deps/abseil-cpp/absl/synchronization/internal/waiter_base.cc +0 -38
- package/deps/abseil-cpp/absl/synchronization/internal/waiter_base.h +0 -90
- package/deps/abseil-cpp/absl/synchronization/internal/waiter_test.cc +0 -192
- package/deps/abseil-cpp/absl/synchronization/internal/win32_waiter.cc +0 -147
- package/deps/abseil-cpp/absl/synchronization/internal/win32_waiter.h +0 -72
- package/deps/abseil-cpp/absl/synchronization/lifetime_test.cc +0 -180
- package/deps/abseil-cpp/absl/synchronization/mutex.cc +0 -2820
- package/deps/abseil-cpp/absl/synchronization/mutex.h +0 -1352
- package/deps/abseil-cpp/absl/synchronization/mutex_benchmark.cc +0 -321
- package/deps/abseil-cpp/absl/synchronization/mutex_method_pointer_test.cc +0 -138
- package/deps/abseil-cpp/absl/synchronization/mutex_test.cc +0 -2065
- package/deps/abseil-cpp/absl/synchronization/notification.cc +0 -85
- package/deps/abseil-cpp/absl/synchronization/notification.h +0 -133
- package/deps/abseil-cpp/absl/synchronization/notification_test.cc +0 -230
- package/deps/abseil-cpp/absl/time/BUILD.bazel +0 -244
- package/deps/abseil-cpp/absl/time/CMakeLists.txt +0 -218
- package/deps/abseil-cpp/absl/time/civil_time.cc +0 -200
- package/deps/abseil-cpp/absl/time/civil_time.h +0 -589
- package/deps/abseil-cpp/absl/time/civil_time_benchmark.cc +0 -129
- package/deps/abseil-cpp/absl/time/civil_time_test.cc +0 -1351
- package/deps/abseil-cpp/absl/time/clock.cc +0 -603
- package/deps/abseil-cpp/absl/time/clock.h +0 -78
- package/deps/abseil-cpp/absl/time/clock_benchmark.cc +0 -74
- package/deps/abseil-cpp/absl/time/clock_interface.cc +0 -71
- package/deps/abseil-cpp/absl/time/clock_interface.h +0 -91
- package/deps/abseil-cpp/absl/time/clock_interface_test.cc +0 -128
- package/deps/abseil-cpp/absl/time/clock_test.cc +0 -122
- package/deps/abseil-cpp/absl/time/duration.cc +0 -918
- package/deps/abseil-cpp/absl/time/duration_benchmark.cc +0 -608
- package/deps/abseil-cpp/absl/time/duration_test.cc +0 -1901
- package/deps/abseil-cpp/absl/time/flag_test.cc +0 -147
- package/deps/abseil-cpp/absl/time/format.cc +0 -162
- package/deps/abseil-cpp/absl/time/format_benchmark.cc +0 -64
- package/deps/abseil-cpp/absl/time/format_test.cc +0 -441
- package/deps/abseil-cpp/absl/time/internal/cctz/BUILD.bazel +0 -195
- package/deps/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time.h +0 -332
- package/deps/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time_detail.h +0 -644
- package/deps/abseil-cpp/absl/time/internal/cctz/include/cctz/time_zone.h +0 -460
- package/deps/abseil-cpp/absl/time/internal/cctz/include/cctz/zone_info_source.h +0 -102
- package/deps/abseil-cpp/absl/time/internal/cctz/src/cctz_benchmark.cc +0 -436
- package/deps/abseil-cpp/absl/time/internal/cctz/src/civil_time_detail.cc +0 -94
- package/deps/abseil-cpp/absl/time/internal/cctz/src/civil_time_test.cc +0 -1066
- package/deps/abseil-cpp/absl/time/internal/cctz/src/test_time_zone_names.cc +0 -515
- package/deps/abseil-cpp/absl/time/internal/cctz/src/test_time_zone_names.h +0 -33
- package/deps/abseil-cpp/absl/time/internal/cctz/src/time_zone_fixed.cc +0 -140
- package/deps/abseil-cpp/absl/time/internal/cctz/src/time_zone_fixed.h +0 -52
- package/deps/abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc +0 -1068
- package/deps/abseil-cpp/absl/time/internal/cctz/src/time_zone_format_test.cc +0 -1773
- package/deps/abseil-cpp/absl/time/internal/cctz/src/time_zone_if.cc +0 -47
- package/deps/abseil-cpp/absl/time/internal/cctz/src/time_zone_if.h +0 -80
- package/deps/abseil-cpp/absl/time/internal/cctz/src/time_zone_impl.cc +0 -115
- package/deps/abseil-cpp/absl/time/internal/cctz/src/time_zone_impl.h +0 -97
- package/deps/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.cc +0 -1070
- package/deps/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.h +0 -128
- package/deps/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.cc +0 -333
- package/deps/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.h +0 -60
- package/deps/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup.cc +0 -217
- package/deps/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup_test.cc +0 -918
- package/deps/abseil-cpp/absl/time/internal/cctz/src/time_zone_name_win.cc +0 -186
- package/deps/abseil-cpp/absl/time/internal/cctz/src/time_zone_name_win.h +0 -37
- package/deps/abseil-cpp/absl/time/internal/cctz/src/time_zone_posix.cc +0 -159
- package/deps/abseil-cpp/absl/time/internal/cctz/src/time_zone_posix.h +0 -132
- package/deps/abseil-cpp/absl/time/internal/cctz/src/tzfile.h +0 -120
- package/deps/abseil-cpp/absl/time/internal/cctz/src/zone_info_source.cc +0 -116
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/README.zoneinfo +0 -38
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/version +0 -1
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Abidjan +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Accra +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Addis_Ababa +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Algiers +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Asmara +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Asmera +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Bamako +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Bangui +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Banjul +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Bissau +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Blantyre +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Brazzaville +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Bujumbura +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Cairo +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Casablanca +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Ceuta +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Conakry +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Dakar +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Dar_es_Salaam +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Djibouti +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Douala +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/El_Aaiun +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Freetown +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Gaborone +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Harare +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Johannesburg +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Juba +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Kampala +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Khartoum +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Kigali +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Kinshasa +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Lagos +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Libreville +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Lome +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Luanda +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Lubumbashi +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Lusaka +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Malabo +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Maputo +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Maseru +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Mbabane +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Mogadishu +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Monrovia +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Nairobi +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Ndjamena +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Niamey +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Nouakchott +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Ouagadougou +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Porto-Novo +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Sao_Tome +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Timbuktu +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Tripoli +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Tunis +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Windhoek +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Adak +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Anchorage +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Anguilla +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Antigua +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Araguaina +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Argentina/Buenos_Aires +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Argentina/Catamarca +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Argentina/ComodRivadavia +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Argentina/Cordoba +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Argentina/Jujuy +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Argentina/La_Rioja +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Argentina/Mendoza +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Argentina/Rio_Gallegos +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Argentina/Salta +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Argentina/San_Juan +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Argentina/San_Luis +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Argentina/Tucuman +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Argentina/Ushuaia +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Aruba +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Asuncion +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Atikokan +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Atka +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Bahia +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Bahia_Banderas +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Barbados +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Belem +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Belize +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Blanc-Sablon +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Boa_Vista +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Bogota +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Boise +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Buenos_Aires +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Cambridge_Bay +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Campo_Grande +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Cancun +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Caracas +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Catamarca +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Cayenne +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Cayman +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Chicago +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Chihuahua +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Ciudad_Juarez +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Coral_Harbour +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Cordoba +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Costa_Rica +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Coyhaique +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Creston +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Cuiaba +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Curacao +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Danmarkshavn +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Dawson +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Dawson_Creek +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Denver +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Detroit +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Dominica +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Edmonton +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Eirunepe +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/El_Salvador +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Ensenada +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Fort_Nelson +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Fort_Wayne +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Fortaleza +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Glace_Bay +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Godthab +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Goose_Bay +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Grand_Turk +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Grenada +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Guadeloupe +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Guatemala +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Guayaquil +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Guyana +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Halifax +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Havana +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Hermosillo +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Indiana/Indianapolis +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Indiana/Knox +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Indiana/Marengo +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Indiana/Petersburg +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Indiana/Tell_City +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Indiana/Vevay +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Indiana/Vincennes +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Indiana/Winamac +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Indianapolis +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Inuvik +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Iqaluit +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Jamaica +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Jujuy +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Juneau +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Kentucky/Louisville +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Kentucky/Monticello +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Knox_IN +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Kralendijk +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/La_Paz +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Lima +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Los_Angeles +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Louisville +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Lower_Princes +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Maceio +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Managua +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Manaus +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Marigot +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Martinique +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Matamoros +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Mazatlan +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Mendoza +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Menominee +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Merida +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Metlakatla +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Mexico_City +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Miquelon +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Moncton +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Monterrey +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Montevideo +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Montreal +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Montserrat +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Nassau +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/New_York +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Nipigon +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Nome +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Noronha +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/North_Dakota/Beulah +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/North_Dakota/Center +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/North_Dakota/New_Salem +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Nuuk +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Ojinaga +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Panama +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Pangnirtung +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Paramaribo +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Phoenix +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Port-au-Prince +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Port_of_Spain +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Porto_Acre +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Porto_Velho +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Puerto_Rico +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Punta_Arenas +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Rainy_River +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Rankin_Inlet +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Recife +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Regina +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Resolute +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Rio_Branco +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Rosario +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Santa_Isabel +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Santarem +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Santiago +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Santo_Domingo +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Sao_Paulo +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Scoresbysund +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Shiprock +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Sitka +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/St_Barthelemy +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/St_Johns +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/St_Kitts +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/St_Lucia +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/St_Thomas +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/St_Vincent +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Swift_Current +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Tegucigalpa +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Thule +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Thunder_Bay +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Tijuana +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Toronto +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Tortola +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Vancouver +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Virgin +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Whitehorse +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Winnipeg +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Yakutat +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Yellowknife +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Antarctica/Casey +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Antarctica/Davis +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Antarctica/DumontDUrville +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Antarctica/Macquarie +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Antarctica/Mawson +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Antarctica/McMurdo +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Antarctica/Palmer +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Antarctica/Rothera +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Antarctica/South_Pole +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Antarctica/Syowa +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Antarctica/Troll +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Antarctica/Vostok +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Arctic/Longyearbyen +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Aden +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Almaty +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Amman +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Anadyr +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Aqtau +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Aqtobe +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Ashgabat +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Ashkhabad +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Atyrau +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Baghdad +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Bahrain +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Baku +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Bangkok +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Barnaul +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Beirut +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Bishkek +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Brunei +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Calcutta +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Chita +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Choibalsan +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Chongqing +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Chungking +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Colombo +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Dacca +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Damascus +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Dhaka +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Dili +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Dubai +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Dushanbe +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Famagusta +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Gaza +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Harbin +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Hebron +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Ho_Chi_Minh +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Hong_Kong +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Hovd +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Irkutsk +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Istanbul +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Jakarta +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Jayapura +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Jerusalem +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Kabul +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Kamchatka +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Karachi +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Kashgar +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Kathmandu +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Katmandu +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Khandyga +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Kolkata +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Krasnoyarsk +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Kuala_Lumpur +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Kuching +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Kuwait +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Macao +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Macau +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Magadan +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Makassar +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Manila +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Muscat +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Nicosia +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Novokuznetsk +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Novosibirsk +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Omsk +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Oral +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Phnom_Penh +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Pontianak +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Pyongyang +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Qatar +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Qostanay +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Qyzylorda +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Rangoon +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Riyadh +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Saigon +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Sakhalin +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Samarkand +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Seoul +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Shanghai +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Singapore +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Srednekolymsk +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Taipei +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Tashkent +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Tbilisi +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Tehran +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Tel_Aviv +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Thimbu +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Thimphu +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Tokyo +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Tomsk +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Ujung_Pandang +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Ulaanbaatar +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Ulan_Bator +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Urumqi +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Ust-Nera +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Vientiane +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Vladivostok +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Yakutsk +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Yangon +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Yekaterinburg +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Yerevan +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Atlantic/Azores +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Atlantic/Bermuda +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Atlantic/Canary +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Atlantic/Cape_Verde +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Atlantic/Faeroe +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Atlantic/Faroe +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Atlantic/Jan_Mayen +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Atlantic/Madeira +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Atlantic/Reykjavik +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Atlantic/South_Georgia +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Atlantic/St_Helena +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Atlantic/Stanley +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Australia/ACT +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Australia/Adelaide +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Australia/Brisbane +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Australia/Broken_Hill +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Australia/Canberra +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Australia/Currie +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Australia/Darwin +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Australia/Eucla +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Australia/Hobart +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Australia/LHI +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Australia/Lindeman +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Australia/Lord_Howe +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Australia/Melbourne +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Australia/NSW +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Australia/North +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Australia/Perth +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Australia/Queensland +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Australia/South +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Australia/Sydney +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Australia/Tasmania +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Australia/Victoria +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Australia/West +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Australia/Yancowinna +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Brazil/Acre +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Brazil/DeNoronha +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Brazil/East +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Brazil/West +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/CET +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/CST6CDT +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Canada/Atlantic +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Canada/Central +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Canada/Eastern +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Canada/Mountain +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Canada/Newfoundland +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Canada/Pacific +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Canada/Saskatchewan +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Canada/Yukon +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Chile/Continental +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Chile/EasterIsland +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Cuba +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/EET +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/EST +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/EST5EDT +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Egypt +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Eire +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT+0 +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT+1 +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT+10 +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT+11 +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT+12 +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT+2 +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT+3 +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT+4 +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT+5 +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT+6 +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT+7 +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT+8 +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT+9 +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT-0 +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT-1 +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT-10 +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT-11 +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT-12 +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT-13 +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT-14 +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT-2 +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT-3 +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT-4 +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT-5 +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT-6 +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT-7 +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT-8 +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT-9 +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT0 +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/Greenwich +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/UCT +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/UTC +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/Universal +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/Zulu +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Amsterdam +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Andorra +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Astrakhan +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Athens +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Belfast +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Belgrade +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Berlin +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Bratislava +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Brussels +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Bucharest +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Budapest +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Busingen +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Chisinau +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Copenhagen +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Dublin +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Gibraltar +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Guernsey +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Helsinki +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Isle_of_Man +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Istanbul +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Jersey +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Kaliningrad +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Kiev +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Kirov +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Kyiv +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Lisbon +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Ljubljana +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/London +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Luxembourg +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Madrid +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Malta +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Mariehamn +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Minsk +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Monaco +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Moscow +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Nicosia +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Oslo +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Paris +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Podgorica +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Prague +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Riga +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Rome +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Samara +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/San_Marino +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Sarajevo +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Saratov +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Simferopol +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Skopje +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Sofia +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Stockholm +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Tallinn +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Tirane +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Tiraspol +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Ulyanovsk +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Uzhgorod +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Vaduz +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Vatican +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Vienna +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Vilnius +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Volgograd +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Warsaw +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Zagreb +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Zaporozhye +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Zurich +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Factory +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/GB +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/GB-Eire +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/GMT +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/GMT+0 +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/GMT-0 +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/GMT0 +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Greenwich +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/HST +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Hongkong +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Iceland +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Indian/Antananarivo +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Indian/Chagos +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Indian/Christmas +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Indian/Cocos +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Indian/Comoro +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Indian/Kerguelen +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Indian/Mahe +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Indian/Maldives +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Indian/Mauritius +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Indian/Mayotte +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Indian/Reunion +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Iran +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Israel +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Jamaica +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Japan +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Kwajalein +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Libya +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/MET +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/MST +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/MST7MDT +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Mexico/BajaNorte +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Mexico/BajaSur +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Mexico/General +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/NZ +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/NZ-CHAT +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Navajo +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/PRC +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/PST8PDT +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Apia +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Auckland +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Bougainville +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Chatham +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Chuuk +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Easter +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Efate +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Enderbury +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Fakaofo +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Fiji +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Funafuti +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Galapagos +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Gambier +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Guadalcanal +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Guam +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Honolulu +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Johnston +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Kanton +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Kiritimati +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Kosrae +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Kwajalein +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Majuro +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Marquesas +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Midway +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Nauru +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Niue +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Norfolk +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Noumea +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Pago_Pago +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Palau +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Pitcairn +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Pohnpei +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Ponape +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Port_Moresby +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Rarotonga +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Saipan +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Samoa +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Tahiti +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Tarawa +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Tongatapu +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Truk +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Wake +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Wallis +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Yap +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Poland +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Portugal +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/ROC +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/ROK +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Singapore +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Turkey +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/UCT +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/US/Alaska +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/US/Aleutian +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/US/Arizona +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/US/Central +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/US/East-Indiana +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/US/Eastern +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/US/Hawaii +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/US/Indiana-Starke +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/US/Michigan +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/US/Mountain +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/US/Pacific +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/US/Samoa +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/UTC +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Universal +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/W-SU +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/WET +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Zulu +0 -0
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/iso3166.tab +0 -279
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/zone1970.tab +0 -375
- package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/zonenow.tab +0 -296
- package/deps/abseil-cpp/absl/time/internal/get_current_time_chrono.inc +0 -31
- package/deps/abseil-cpp/absl/time/internal/get_current_time_posix.inc +0 -24
- package/deps/abseil-cpp/absl/time/internal/test_util.cc +0 -32
- package/deps/abseil-cpp/absl/time/internal/test_util.h +0 -33
- package/deps/abseil-cpp/absl/time/simulated_clock.cc +0 -225
- package/deps/abseil-cpp/absl/time/simulated_clock.h +0 -108
- package/deps/abseil-cpp/absl/time/simulated_clock_test.cc +0 -614
- package/deps/abseil-cpp/absl/time/time.cc +0 -507
- package/deps/abseil-cpp/absl/time/time.h +0 -1926
- package/deps/abseil-cpp/absl/time/time_benchmark.cc +0 -321
- package/deps/abseil-cpp/absl/time/time_test.cc +0 -1365
- package/deps/abseil-cpp/absl/time/time_zone_test.cc +0 -97
- package/deps/abseil-cpp/absl/types/BUILD.bazel +0 -166
- package/deps/abseil-cpp/absl/types/CMakeLists.txt +0 -179
- package/deps/abseil-cpp/absl/types/any.h +0 -44
- package/deps/abseil-cpp/absl/types/compare.h +0 -506
- package/deps/abseil-cpp/absl/types/compare_test.cc +0 -300
- package/deps/abseil-cpp/absl/types/internal/span.h +0 -141
- package/deps/abseil-cpp/absl/types/optional.h +0 -41
- package/deps/abseil-cpp/absl/types/span.h +0 -830
- package/deps/abseil-cpp/absl/types/span_test.cc +0 -915
- package/deps/abseil-cpp/absl/types/variant.h +0 -82
- package/deps/abseil-cpp/absl/types/variant_test.cc +0 -164
- package/deps/abseil-cpp/absl/utility/BUILD.bazel +0 -46
- package/deps/abseil-cpp/absl/utility/CMakeLists.txt +0 -28
- package/deps/abseil-cpp/absl/utility/utility.h +0 -68
- package/deps/abseil-cpp/ci/absl_alternate_options.h +0 -28
- package/deps/abseil-cpp/ci/cmake_common.sh +0 -19
- package/deps/abseil-cpp/ci/cmake_install_test.sh +0 -64
- package/deps/abseil-cpp/ci/linux_arm_clang-latest_libcxx_bazel.sh +0 -106
- package/deps/abseil-cpp/ci/linux_clang-latest_libcxx_asan_bazel.sh +0 -114
- package/deps/abseil-cpp/ci/linux_clang-latest_libcxx_bazel.sh +0 -107
- package/deps/abseil-cpp/ci/linux_clang-latest_libcxx_tsan_bazel.sh +0 -106
- package/deps/abseil-cpp/ci/linux_clang-latest_libstdcxx_bazel.sh +0 -104
- package/deps/abseil-cpp/ci/linux_docker_containers.sh +0 -22
- package/deps/abseil-cpp/ci/linux_gcc-floor_libstdcxx_bazel.sh +0 -100
- package/deps/abseil-cpp/ci/linux_gcc-latest_libstdcxx_bazel.sh +0 -105
- package/deps/abseil-cpp/ci/linux_gcc-latest_libstdcxx_cmake.sh +0 -85
- package/deps/abseil-cpp/ci/linux_gcc_alpine_cmake.sh +0 -85
- package/deps/abseil-cpp/ci/macos_xcode_bazel.sh +0 -70
- package/deps/abseil-cpp/ci/macos_xcode_cmake.sh +0 -78
- package/deps/abseil-cpp/ci/windows_clangcl_bazel.bat +0 -70
- package/deps/abseil-cpp/ci/windows_msvc_bazel.bat +0 -61
- package/deps/abseil-cpp/ci/windows_msvc_cmake.bat +0 -69
- package/deps/abseil-cpp/conanfile.py +0 -51
- package/deps/abseil-cpp/create_lts.py +0 -139
- package/deps/re2/.bazelrc +0 -20
- package/deps/re2/.bcr/metadata.template.json +0 -16
- package/deps/re2/.bcr/presubmit.yml +0 -57
- package/deps/re2/.bcr/source.template.json +0 -5
- package/deps/re2/BUILD.bazel +0 -463
- package/deps/re2/CMakeLists.txt +0 -283
- package/deps/re2/LICENSE +0 -27
- package/deps/re2/MODULE.bazel +0 -29
- package/deps/re2/Makefile +0 -408
- package/deps/re2/WORKSPACE.bazel +0 -7
- package/deps/re2/WORKSPACE.bzlmod +0 -7
- package/deps/re2/app/BUILD.bazel +0 -24
- package/deps/re2/app/_re2.cc +0 -94
- package/deps/re2/app/_re2.d.ts +0 -23
- package/deps/re2/app/app.ts +0 -111
- package/deps/re2/app/build.sh +0 -32
- package/deps/re2/app/index.html +0 -5
- package/deps/re2/app/package.json +0 -14
- package/deps/re2/app/rollup.config.js +0 -28
- package/deps/re2/app/tsconfig.json +0 -17
- package/deps/re2/benchlog/benchplot.py +0 -98
- package/deps/re2/benchlog/mktable +0 -155
- package/deps/re2/doc/mksyntaxgo +0 -42
- package/deps/re2/doc/mksyntaxhtml +0 -42
- package/deps/re2/doc/mksyntaxwiki +0 -36
- package/deps/re2/doc/syntax.html +0 -477
- package/deps/re2/doc/syntax.txt +0 -463
- package/deps/re2/lib/git/commit-msg.hook +0 -104
- package/deps/re2/libre2.symbols +0 -16
- package/deps/re2/libre2.symbols.darwin +0 -12
- package/deps/re2/python/BUILD.bazel +0 -80
- package/deps/re2/python/_re2.cc +0 -352
- package/deps/re2/python/re2.py +0 -583
- package/deps/re2/python/re2_test.py +0 -495
- package/deps/re2/python/setup.py +0 -159
- package/deps/re2/python/toolchains/generate.py +0 -100
- package/deps/re2/re2/bitmap256.cc +0 -43
- package/deps/re2/re2/bitmap256.h +0 -88
- package/deps/re2/re2/bitstate.cc +0 -389
- package/deps/re2/re2/compile.cc +0 -1265
- package/deps/re2/re2/dfa.cc +0 -2135
- package/deps/re2/re2/filtered_re2.cc +0 -138
- package/deps/re2/re2/filtered_re2.h +0 -115
- package/deps/re2/re2/fuzzing/re2_fuzzer.cc +0 -284
- package/deps/re2/re2/make_perl_groups.pl +0 -116
- package/deps/re2/re2/make_unicode_casefold.py +0 -151
- package/deps/re2/re2/make_unicode_groups.py +0 -117
- package/deps/re2/re2/mimics_pcre.cc +0 -196
- package/deps/re2/re2/nfa.cc +0 -714
- package/deps/re2/re2/onepass.cc +0 -623
- package/deps/re2/re2/parse.cc +0 -2529
- package/deps/re2/re2/perl_groups.cc +0 -119
- package/deps/re2/re2/pod_array.h +0 -55
- package/deps/re2/re2/prefilter.cc +0 -711
- package/deps/re2/re2/prefilter.h +0 -168
- package/deps/re2/re2/prefilter_tree.cc +0 -376
- package/deps/re2/re2/prefilter_tree.h +0 -153
- package/deps/re2/re2/prog.cc +0 -1181
- package/deps/re2/re2/prog.h +0 -493
- package/deps/re2/re2/re2.cc +0 -1355
- package/deps/re2/re2/re2.h +0 -1074
- package/deps/re2/re2/regexp.cc +0 -1004
- package/deps/re2/re2/regexp.h +0 -693
- package/deps/re2/re2/set.cc +0 -185
- package/deps/re2/re2/set.h +0 -91
- package/deps/re2/re2/simplify.cc +0 -689
- package/deps/re2/re2/sparse_array.h +0 -394
- package/deps/re2/re2/sparse_set.h +0 -266
- package/deps/re2/re2/stringpiece.h +0 -18
- package/deps/re2/re2/testing/backtrack.cc +0 -274
- package/deps/re2/re2/testing/charclass_test.cc +0 -228
- package/deps/re2/re2/testing/compile_test.cc +0 -431
- package/deps/re2/re2/testing/dfa_test.cc +0 -376
- package/deps/re2/re2/testing/dump.cc +0 -172
- package/deps/re2/re2/testing/exhaustive1_test.cc +0 -40
- package/deps/re2/re2/testing/exhaustive2_test.cc +0 -72
- package/deps/re2/re2/testing/exhaustive3_test.cc +0 -100
- package/deps/re2/re2/testing/exhaustive_test.cc +0 -35
- package/deps/re2/re2/testing/exhaustive_tester.cc +0 -204
- package/deps/re2/re2/testing/exhaustive_tester.h +0 -105
- package/deps/re2/re2/testing/filtered_re2_test.cc +0 -343
- package/deps/re2/re2/testing/mimics_pcre_test.cc +0 -79
- package/deps/re2/re2/testing/null_walker.cc +0 -48
- package/deps/re2/re2/testing/parse_test.cc +0 -586
- package/deps/re2/re2/testing/possible_match_test.cc +0 -251
- package/deps/re2/re2/testing/random_test.cc +0 -102
- package/deps/re2/re2/testing/re2_arg_test.cc +0 -182
- package/deps/re2/re2/testing/re2_test.cc +0 -1699
- package/deps/re2/re2/testing/regexp_benchmark.cc +0 -1605
- package/deps/re2/re2/testing/regexp_generator.cc +0 -284
- package/deps/re2/re2/testing/regexp_generator.h +0 -77
- package/deps/re2/re2/testing/regexp_test.cc +0 -87
- package/deps/re2/re2/testing/required_prefix_test.cc +0 -201
- package/deps/re2/re2/testing/search_test.cc +0 -338
- package/deps/re2/re2/testing/set_test.cc +0 -235
- package/deps/re2/re2/testing/simplify_test.cc +0 -289
- package/deps/re2/re2/testing/string_generator.cc +0 -144
- package/deps/re2/re2/testing/string_generator.h +0 -76
- package/deps/re2/re2/testing/string_generator_test.cc +0 -114
- package/deps/re2/re2/testing/tester.cc +0 -690
- package/deps/re2/re2/testing/tester.h +0 -121
- package/deps/re2/re2/tostring.cc +0 -351
- package/deps/re2/re2/unicode.py +0 -284
- package/deps/re2/re2/unicode_casefold.cc +0 -604
- package/deps/re2/re2/unicode_casefold.h +0 -77
- package/deps/re2/re2/unicode_groups.cc +0 -6517
- package/deps/re2/re2/unicode_groups.h +0 -66
- package/deps/re2/re2/walker-inl.h +0 -249
- package/deps/re2/re2.pc.in +0 -9
- package/deps/re2/re2Config.cmake.in +0 -26
- package/deps/re2/runtests +0 -33
- package/deps/re2/testinstall.cc +0 -27
- package/deps/re2/ucs2.diff +0 -567
- package/deps/re2/util/malloc_counter.h +0 -19
- package/deps/re2/util/pcre.cc +0 -957
- package/deps/re2/util/pcre.h +0 -671
- package/deps/re2/util/rune.cc +0 -260
- package/deps/re2/util/strutil.cc +0 -26
- package/deps/re2/util/strutil.h +0 -16
- package/deps/re2/util/utf.h +0 -44
|
@@ -1,1352 +0,0 @@
|
|
|
1
|
-
// Copyright 2017 The Abseil Authors.
|
|
2
|
-
//
|
|
3
|
-
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
-
// you may not use this file except in compliance with the License.
|
|
5
|
-
// You may obtain a copy of the License at
|
|
6
|
-
//
|
|
7
|
-
// https://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
-
//
|
|
9
|
-
// Unless required by applicable law or agreed to in writing, software
|
|
10
|
-
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
-
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
-
// See the License for the specific language governing permissions and
|
|
13
|
-
// limitations under the License.
|
|
14
|
-
//
|
|
15
|
-
// -----------------------------------------------------------------------------
|
|
16
|
-
// mutex.h
|
|
17
|
-
// -----------------------------------------------------------------------------
|
|
18
|
-
//
|
|
19
|
-
// This header file defines a `Mutex` -- a mutually exclusive lock -- and the
|
|
20
|
-
// most common type of synchronization primitive for facilitating locks on
|
|
21
|
-
// shared resources. A mutex is used to prevent multiple threads from accessing
|
|
22
|
-
// and/or writing to a shared resource concurrently.
|
|
23
|
-
//
|
|
24
|
-
// Unlike a `std::mutex`, the Abseil `Mutex` provides the following additional
|
|
25
|
-
// features:
|
|
26
|
-
// * Conditional predicates intrinsic to the `Mutex` object
|
|
27
|
-
// * Shared/reader locks, in addition to standard exclusive/writer locks
|
|
28
|
-
// * Deadlock detection and debug support.
|
|
29
|
-
//
|
|
30
|
-
// The following helper classes are also defined within this file:
|
|
31
|
-
//
|
|
32
|
-
// MutexLock - An RAII wrapper to acquire and release a `Mutex` for exclusive/
|
|
33
|
-
// write access within the current scope.
|
|
34
|
-
//
|
|
35
|
-
// ReaderMutexLock
|
|
36
|
-
// - An RAII wrapper to acquire and release a `Mutex` for shared/read
|
|
37
|
-
// access within the current scope.
|
|
38
|
-
//
|
|
39
|
-
// WriterMutexLock
|
|
40
|
-
// - Effectively an alias for `MutexLock` above, designed for use in
|
|
41
|
-
// distinguishing reader and writer locks within code.
|
|
42
|
-
//
|
|
43
|
-
// In addition to simple mutex locks, this file also defines ways to perform
|
|
44
|
-
// locking under certain conditions.
|
|
45
|
-
//
|
|
46
|
-
// Condition - (Preferred) Used to wait for a particular predicate that
|
|
47
|
-
// depends on state protected by the `Mutex` to become true.
|
|
48
|
-
// CondVar - A lower-level variant of `Condition` that relies on
|
|
49
|
-
// application code to explicitly signal the `CondVar` when
|
|
50
|
-
// a condition has been met.
|
|
51
|
-
//
|
|
52
|
-
// See below for more information on using `Condition` or `CondVar`.
|
|
53
|
-
//
|
|
54
|
-
// Mutexes and mutex behavior can be quite complicated. The information within
|
|
55
|
-
// this header file is limited, as a result. Please consult the Mutex guide for
|
|
56
|
-
// more complete information and examples.
|
|
57
|
-
|
|
58
|
-
#ifndef ABSL_SYNCHRONIZATION_MUTEX_H_
|
|
59
|
-
#define ABSL_SYNCHRONIZATION_MUTEX_H_
|
|
60
|
-
|
|
61
|
-
#include <atomic>
|
|
62
|
-
#include <cstdint>
|
|
63
|
-
#include <cstring>
|
|
64
|
-
#include <type_traits>
|
|
65
|
-
|
|
66
|
-
#include "absl/base/attributes.h"
|
|
67
|
-
#include "absl/base/config.h"
|
|
68
|
-
#include "absl/base/const_init.h"
|
|
69
|
-
#include "absl/base/internal/thread_identity.h"
|
|
70
|
-
#include "absl/base/internal/tsan_mutex_interface.h"
|
|
71
|
-
#include "absl/base/macros.h"
|
|
72
|
-
#include "absl/base/nullability.h"
|
|
73
|
-
#include "absl/base/thread_annotations.h"
|
|
74
|
-
#include "absl/meta/type_traits.h"
|
|
75
|
-
#include "absl/synchronization/internal/kernel_timeout.h"
|
|
76
|
-
#include "absl/synchronization/internal/per_thread_sem.h"
|
|
77
|
-
#include "absl/time/time.h"
|
|
78
|
-
|
|
79
|
-
namespace absl {
|
|
80
|
-
ABSL_NAMESPACE_BEGIN
|
|
81
|
-
|
|
82
|
-
class Condition;
|
|
83
|
-
struct SynchWaitParams;
|
|
84
|
-
|
|
85
|
-
namespace synchronization_internal {
|
|
86
|
-
|
|
87
|
-
template <typename T, typename = void>
|
|
88
|
-
struct HasConstMemberCallOperator : std::false_type {};
|
|
89
|
-
|
|
90
|
-
template <typename T>
|
|
91
|
-
struct HasConstMemberCallOperator<
|
|
92
|
-
T, std::void_t<decltype(static_cast<bool (T::*)() const>(&T::operator()))>>
|
|
93
|
-
: std::true_type {};
|
|
94
|
-
|
|
95
|
-
} // namespace synchronization_internal
|
|
96
|
-
|
|
97
|
-
// -----------------------------------------------------------------------------
|
|
98
|
-
// Mutex
|
|
99
|
-
// -----------------------------------------------------------------------------
|
|
100
|
-
//
|
|
101
|
-
// A `Mutex` is a non-reentrant (aka non-recursive) Mutually Exclusive lock
|
|
102
|
-
// on some resource, typically a variable or data structure with associated
|
|
103
|
-
// invariants. Proper usage of mutexes prevents concurrent access by different
|
|
104
|
-
// threads to the same resource.
|
|
105
|
-
//
|
|
106
|
-
// A `Mutex` has two basic operations: `Mutex::lock()` and `Mutex::unlock()`.
|
|
107
|
-
// The `lock()` operation *acquires* a `Mutex` (in a state known as an
|
|
108
|
-
// *exclusive* -- or *write* -- lock), and the `unlock()` operation *releases* a
|
|
109
|
-
// Mutex. During the span of time between the lock() and unlock() operations,
|
|
110
|
-
// a mutex is said to be *held*. By design, all mutexes support exclusive/write
|
|
111
|
-
// locks, as this is the most common way to use a mutex.
|
|
112
|
-
//
|
|
113
|
-
// Mutex operations are only allowed under certain conditions; otherwise an
|
|
114
|
-
// operation is "invalid", and disallowed by the API. The conditions concern
|
|
115
|
-
// both the current state of the mutex and the identity of the threads that
|
|
116
|
-
// are performing the operations.
|
|
117
|
-
//
|
|
118
|
-
// The `Mutex` state machine for basic lock/unlock operations is quite simple:
|
|
119
|
-
//
|
|
120
|
-
// | | lock() | unlock() |
|
|
121
|
-
// |----------------+------------------------+----------|
|
|
122
|
-
// | Free | Exclusive | invalid |
|
|
123
|
-
// | Exclusive | blocks, then exclusive | Free |
|
|
124
|
-
//
|
|
125
|
-
// The full conditions are as follows.
|
|
126
|
-
//
|
|
127
|
-
// * Calls to `unlock()` require that the mutex be held, and must be made in the
|
|
128
|
-
// same thread that performed the corresponding `lock()` operation which
|
|
129
|
-
// acquired the mutex; otherwise the call is invalid.
|
|
130
|
-
//
|
|
131
|
-
// * The mutex being non-reentrant (or non-recursive) means that a call to
|
|
132
|
-
// `lock()` or `try_lock()` must not be made in a thread that already holds
|
|
133
|
-
// the mutex; such a call is invalid.
|
|
134
|
-
//
|
|
135
|
-
// * In other words, the state of being "held" has both a temporal component
|
|
136
|
-
// (from `lock()` until `unlock()`) as well as a thread identity component:
|
|
137
|
-
// the mutex is held *by a particular thread*.
|
|
138
|
-
//
|
|
139
|
-
// An "invalid" operation has undefined behavior. The `Mutex` implementation
|
|
140
|
-
// is allowed to do anything on an invalid call, including, but not limited to,
|
|
141
|
-
// crashing with a useful error message, silently succeeding, or corrupting
|
|
142
|
-
// data structures. In debug mode, the implementation may crash with a useful
|
|
143
|
-
// error message.
|
|
144
|
-
//
|
|
145
|
-
// `Mutex` is not guaranteed to be "fair" in prioritizing waiting threads; it
|
|
146
|
-
// is, however, approximately fair over long periods, and starvation-free for
|
|
147
|
-
// threads at the same priority.
|
|
148
|
-
//
|
|
149
|
-
// The lock/unlock primitives are now annotated with lock annotations
|
|
150
|
-
// defined in (base/thread_annotations.h). When writing multi-threaded code,
|
|
151
|
-
// you should use lock annotations whenever possible to document your lock
|
|
152
|
-
// synchronization policy. Besides acting as documentation, these annotations
|
|
153
|
-
// also help compilers or static analysis tools to identify and warn about
|
|
154
|
-
// issues that could potentially result in race conditions and deadlocks.
|
|
155
|
-
//
|
|
156
|
-
// For more information about the lock annotations, please see
|
|
157
|
-
// [Thread Safety
|
|
158
|
-
// Analysis](http://clang.llvm.org/docs/ThreadSafetyAnalysis.html) in the Clang
|
|
159
|
-
// documentation.
|
|
160
|
-
//
|
|
161
|
-
// See also `MutexLock`, below, for scoped `Mutex` acquisition.
|
|
162
|
-
|
|
163
|
-
class ABSL_LOCKABLE ABSL_ATTRIBUTE_WARN_UNUSED Mutex {
|
|
164
|
-
public:
|
|
165
|
-
// Creates a `Mutex` that is not held by anyone. This constructor is
|
|
166
|
-
// typically used for Mutexes allocated on the heap or the stack.
|
|
167
|
-
//
|
|
168
|
-
// To create `Mutex` instances with static storage duration
|
|
169
|
-
// (e.g. a namespace-scoped or global variable), see
|
|
170
|
-
// `Mutex::Mutex(absl::kConstInit)` below instead.
|
|
171
|
-
Mutex();
|
|
172
|
-
|
|
173
|
-
// Creates a mutex with static storage duration. A global variable
|
|
174
|
-
// constructed this way avoids the lifetime issues that can occur on program
|
|
175
|
-
// startup and shutdown. (See absl/base/const_init.h.)
|
|
176
|
-
//
|
|
177
|
-
// For Mutexes allocated on the heap and stack, instead use the default
|
|
178
|
-
// constructor, which can interact more fully with the thread sanitizer.
|
|
179
|
-
//
|
|
180
|
-
// Example usage:
|
|
181
|
-
// namespace foo {
|
|
182
|
-
// ABSL_CONST_INIT absl::Mutex mu(absl::kConstInit);
|
|
183
|
-
// }
|
|
184
|
-
explicit constexpr Mutex(absl::ConstInitType);
|
|
185
|
-
|
|
186
|
-
~Mutex();
|
|
187
|
-
|
|
188
|
-
// Mutex::lock()
|
|
189
|
-
//
|
|
190
|
-
// Blocks the calling thread, if necessary, until this `Mutex` is free, and
|
|
191
|
-
// then acquires it exclusively. (This lock is also known as a "write lock.")
|
|
192
|
-
void lock() ABSL_EXCLUSIVE_LOCK_FUNCTION();
|
|
193
|
-
|
|
194
|
-
ABSL_DEPRECATE_AND_INLINE()
|
|
195
|
-
inline void Lock() ABSL_EXCLUSIVE_LOCK_FUNCTION() { lock(); }
|
|
196
|
-
|
|
197
|
-
// Mutex::unlock()
|
|
198
|
-
//
|
|
199
|
-
// Releases this `Mutex` and returns it from the exclusive/write state to the
|
|
200
|
-
// free state. Calling thread must hold the `Mutex` exclusively.
|
|
201
|
-
void unlock() ABSL_UNLOCK_FUNCTION();
|
|
202
|
-
|
|
203
|
-
ABSL_DEPRECATE_AND_INLINE()
|
|
204
|
-
inline void Unlock() ABSL_UNLOCK_FUNCTION() { unlock(); }
|
|
205
|
-
|
|
206
|
-
// Mutex::try_lock()
|
|
207
|
-
//
|
|
208
|
-
// If the mutex can be acquired without blocking, does so exclusively and
|
|
209
|
-
// returns `true`. Otherwise, returns `false`. Returns `true` with high
|
|
210
|
-
// probability if the `Mutex` was free.
|
|
211
|
-
[[nodiscard]] bool try_lock() ABSL_EXCLUSIVE_TRYLOCK_FUNCTION(true);
|
|
212
|
-
|
|
213
|
-
ABSL_DEPRECATE_AND_INLINE()
|
|
214
|
-
[[nodiscard]] bool TryLock() ABSL_EXCLUSIVE_TRYLOCK_FUNCTION(true) {
|
|
215
|
-
return try_lock();
|
|
216
|
-
}
|
|
217
|
-
|
|
218
|
-
// Mutex::AssertHeld()
|
|
219
|
-
//
|
|
220
|
-
// Require that the mutex be held exclusively (write mode) by this thread.
|
|
221
|
-
//
|
|
222
|
-
// If the mutex is not currently held by this thread, this function may report
|
|
223
|
-
// an error (typically by crashing with a diagnostic) or it may do nothing.
|
|
224
|
-
// This function is intended only as a tool to assist debugging; it doesn't
|
|
225
|
-
// guarantee correctness.
|
|
226
|
-
void AssertHeld() const ABSL_ASSERT_EXCLUSIVE_LOCK();
|
|
227
|
-
|
|
228
|
-
// ---------------------------------------------------------------------------
|
|
229
|
-
// Reader-Writer Locking
|
|
230
|
-
// ---------------------------------------------------------------------------
|
|
231
|
-
|
|
232
|
-
// A Mutex can also be used as a starvation-free reader-writer lock.
|
|
233
|
-
// Neither read-locks nor write-locks are reentrant/recursive to avoid
|
|
234
|
-
// potential client programming errors.
|
|
235
|
-
//
|
|
236
|
-
// The Mutex API provides `Writer*()` aliases for the existing `lock()`,
|
|
237
|
-
// `unlock()` and `try_lock()` methods for use within applications mixing
|
|
238
|
-
// reader/writer locks. Using `*_shared()` and `Writer*()` operations in this
|
|
239
|
-
// manner can make locking behavior clearer when mixing read and write modes.
|
|
240
|
-
//
|
|
241
|
-
// Introducing reader locks necessarily complicates the `Mutex` state
|
|
242
|
-
// machine somewhat. The table below illustrates the allowed state transitions
|
|
243
|
-
// of a mutex in such cases. Note that lock_shared() may block even if the
|
|
244
|
-
// lock is held in shared mode; this occurs when another thread is blocked on
|
|
245
|
-
// a call to lock().
|
|
246
|
-
//
|
|
247
|
-
// ---------------------------------------------------------------------------
|
|
248
|
-
// Operation: lock() unlock() lock_shared() unlock_shared()
|
|
249
|
-
// ---------------------------------------------------------------------------
|
|
250
|
-
// State
|
|
251
|
-
// ---------------------------------------------------------------------------
|
|
252
|
-
// Free Exclusive invalid Shared(1) invalid
|
|
253
|
-
// Shared(1) blocks invalid Shared(2) or blocks Free
|
|
254
|
-
// Shared(n) n>1 blocks invalid Shared(n+1) or blocks Shared(n-1)
|
|
255
|
-
// Exclusive blocks Free blocks invalid
|
|
256
|
-
// ---------------------------------------------------------------------------
|
|
257
|
-
//
|
|
258
|
-
// In comments below, "shared" refers to a state of Shared(n) for any n > 0.
|
|
259
|
-
|
|
260
|
-
// Mutex::lock_shared()
|
|
261
|
-
//
|
|
262
|
-
// Blocks the calling thread, if necessary, until this `Mutex` is either free,
|
|
263
|
-
// or in shared mode, and then acquires a share of it. Note that
|
|
264
|
-
// `lock_shared()` will block if some other thread has an exclusive/writer
|
|
265
|
-
// lock on the mutex.
|
|
266
|
-
void lock_shared() ABSL_SHARED_LOCK_FUNCTION();
|
|
267
|
-
|
|
268
|
-
ABSL_DEPRECATE_AND_INLINE()
|
|
269
|
-
void ReaderLock() ABSL_SHARED_LOCK_FUNCTION() { lock_shared(); }
|
|
270
|
-
|
|
271
|
-
// Mutex::unlock_shared()
|
|
272
|
-
//
|
|
273
|
-
// Releases a read share of this `Mutex`. `unlock_shared` may return a mutex
|
|
274
|
-
// to the free state if this thread holds the last reader lock on the mutex.
|
|
275
|
-
// Note that you cannot call `unlock_shared()` on a mutex held in write mode.
|
|
276
|
-
void unlock_shared() ABSL_UNLOCK_FUNCTION();
|
|
277
|
-
|
|
278
|
-
ABSL_DEPRECATE_AND_INLINE()
|
|
279
|
-
void ReaderUnlock() ABSL_UNLOCK_FUNCTION() { unlock_shared(); }
|
|
280
|
-
|
|
281
|
-
// Mutex::try_lock_shared()
|
|
282
|
-
//
|
|
283
|
-
// If the mutex can be acquired without blocking, acquires this mutex for
|
|
284
|
-
// shared access and returns `true`. Otherwise, returns `false`. Returns
|
|
285
|
-
// `true` with high probability if the `Mutex` was free or shared.
|
|
286
|
-
[[nodiscard]] bool try_lock_shared() ABSL_SHARED_TRYLOCK_FUNCTION(true);
|
|
287
|
-
|
|
288
|
-
ABSL_DEPRECATE_AND_INLINE()
|
|
289
|
-
[[nodiscard]] bool ReaderTryLock() ABSL_SHARED_TRYLOCK_FUNCTION(true) {
|
|
290
|
-
return try_lock_shared();
|
|
291
|
-
}
|
|
292
|
-
|
|
293
|
-
// Mutex::AssertReaderHeld()
|
|
294
|
-
//
|
|
295
|
-
// Require that the mutex be held at least in shared mode (read mode) by this
|
|
296
|
-
// thread.
|
|
297
|
-
//
|
|
298
|
-
// If the mutex is not currently held by this thread, this function may report
|
|
299
|
-
// an error (typically by crashing with a diagnostic) or it may do nothing.
|
|
300
|
-
// This function is intended only as a tool to assist debugging; it doesn't
|
|
301
|
-
// guarantee correctness.
|
|
302
|
-
void AssertReaderHeld() const ABSL_ASSERT_SHARED_LOCK();
|
|
303
|
-
|
|
304
|
-
// Mutex::WriterLock()
|
|
305
|
-
// Mutex::WriterUnlock()
|
|
306
|
-
// Mutex::WriterTryLock()
|
|
307
|
-
//
|
|
308
|
-
// Aliases for `Mutex::Lock()`, `Mutex::Unlock()`, and `Mutex::TryLock()`.
|
|
309
|
-
//
|
|
310
|
-
// These methods may be used (along with the complementary `Reader*()`
|
|
311
|
-
// methods) to distinguish simple exclusive `Mutex` usage (`Lock()`,
|
|
312
|
-
// etc.) from reader/writer lock usage.
|
|
313
|
-
ABSL_DEPRECATE_AND_INLINE()
|
|
314
|
-
void WriterLock() ABSL_EXCLUSIVE_LOCK_FUNCTION() { lock(); }
|
|
315
|
-
|
|
316
|
-
ABSL_DEPRECATE_AND_INLINE()
|
|
317
|
-
void WriterUnlock() ABSL_UNLOCK_FUNCTION() { unlock(); }
|
|
318
|
-
|
|
319
|
-
ABSL_DEPRECATE_AND_INLINE()
|
|
320
|
-
[[nodiscard]] bool WriterTryLock() ABSL_EXCLUSIVE_TRYLOCK_FUNCTION(true) {
|
|
321
|
-
return try_lock();
|
|
322
|
-
}
|
|
323
|
-
|
|
324
|
-
// ---------------------------------------------------------------------------
|
|
325
|
-
// Conditional Critical Regions
|
|
326
|
-
// ---------------------------------------------------------------------------
|
|
327
|
-
|
|
328
|
-
// Conditional usage of a `Mutex` can occur using two distinct paradigms:
|
|
329
|
-
//
|
|
330
|
-
// * Use of `Mutex` member functions with `Condition` objects.
|
|
331
|
-
// * Use of the separate `CondVar` abstraction.
|
|
332
|
-
//
|
|
333
|
-
// In general, prefer use of `Condition` and the `Mutex` member functions
|
|
334
|
-
// listed below over `CondVar`. When there are multiple threads waiting on
|
|
335
|
-
// distinctly different conditions, however, a battery of `CondVar`s may be
|
|
336
|
-
// more efficient. This section discusses use of `Condition` objects.
|
|
337
|
-
//
|
|
338
|
-
// `Mutex` contains member functions for performing lock operations only under
|
|
339
|
-
// certain conditions, of class `Condition`. For correctness, the `Condition`
|
|
340
|
-
// must return a boolean that is a pure function, only of state protected by
|
|
341
|
-
// the `Mutex`. The condition must be invariant w.r.t. environmental state
|
|
342
|
-
// such as thread, cpu id, or time, and must be `noexcept`. The condition will
|
|
343
|
-
// always be invoked with the mutex held in at least read mode, so you should
|
|
344
|
-
// not block it for long periods or sleep it on a timer.
|
|
345
|
-
//
|
|
346
|
-
// Since a condition must not depend directly on the current time, use
|
|
347
|
-
// `*WithTimeout()` member function variants to make your condition
|
|
348
|
-
// effectively true after a given duration, or `*WithDeadline()` variants to
|
|
349
|
-
// make your condition effectively true after a given time.
|
|
350
|
-
//
|
|
351
|
-
// The condition function should have no side-effects aside from debug
|
|
352
|
-
// logging; as a special exception, the function may acquire other mutexes
|
|
353
|
-
// provided it releases all those that it acquires. (This exception was
|
|
354
|
-
// required to allow logging.)
|
|
355
|
-
|
|
356
|
-
// Mutex::Await()
|
|
357
|
-
//
|
|
358
|
-
// Unlocks this `Mutex` and blocks until simultaneously both `cond` is `true`
|
|
359
|
-
// and this `Mutex` can be reacquired, then reacquires this `Mutex` in the
|
|
360
|
-
// same mode in which it was previously held. If the condition is initially
|
|
361
|
-
// `true`, `Await()` *may* skip the release/re-acquire step.
|
|
362
|
-
//
|
|
363
|
-
// `Await()` requires that this thread holds this `Mutex` in some mode.
|
|
364
|
-
void Await(const Condition& cond) {
|
|
365
|
-
AwaitCommon(cond, synchronization_internal::KernelTimeout::Never());
|
|
366
|
-
}
|
|
367
|
-
|
|
368
|
-
// Mutex::LockWhen()
|
|
369
|
-
// Mutex::ReaderLockWhen()
|
|
370
|
-
// Mutex::WriterLockWhen()
|
|
371
|
-
//
|
|
372
|
-
// Blocks until simultaneously both `cond` is `true` and this `Mutex` can
|
|
373
|
-
// be acquired, then atomically acquires this `Mutex`. `LockWhen()` is
|
|
374
|
-
// logically equivalent to `*Lock(); Await();` though they may have different
|
|
375
|
-
// performance characteristics.
|
|
376
|
-
void LockWhen(const Condition& cond) ABSL_EXCLUSIVE_LOCK_FUNCTION() {
|
|
377
|
-
LockWhenCommon(cond, synchronization_internal::KernelTimeout::Never(),
|
|
378
|
-
true);
|
|
379
|
-
}
|
|
380
|
-
|
|
381
|
-
void ReaderLockWhen(const Condition& cond) ABSL_SHARED_LOCK_FUNCTION() {
|
|
382
|
-
LockWhenCommon(cond, synchronization_internal::KernelTimeout::Never(),
|
|
383
|
-
false);
|
|
384
|
-
}
|
|
385
|
-
|
|
386
|
-
void WriterLockWhen(const Condition& cond) ABSL_EXCLUSIVE_LOCK_FUNCTION() {
|
|
387
|
-
this->LockWhen(cond);
|
|
388
|
-
}
|
|
389
|
-
|
|
390
|
-
// ---------------------------------------------------------------------------
|
|
391
|
-
// Mutex Variants with Timeouts/Deadlines
|
|
392
|
-
// ---------------------------------------------------------------------------
|
|
393
|
-
|
|
394
|
-
// Mutex::AwaitWithTimeout()
|
|
395
|
-
// Mutex::AwaitWithDeadline()
|
|
396
|
-
//
|
|
397
|
-
// Unlocks this `Mutex` and blocks until simultaneously:
|
|
398
|
-
// - either `cond` is true or the {timeout has expired, deadline has passed}
|
|
399
|
-
// and
|
|
400
|
-
// - this `Mutex` can be reacquired,
|
|
401
|
-
// then reacquire this `Mutex` in the same mode in which it was previously
|
|
402
|
-
// held, returning `true` iff `cond` is `true` on return.
|
|
403
|
-
//
|
|
404
|
-
// If the condition is initially `true`, the implementation *may* skip the
|
|
405
|
-
// release/re-acquire step and return immediately.
|
|
406
|
-
//
|
|
407
|
-
// Deadlines in the past are equivalent to an immediate deadline.
|
|
408
|
-
// Negative timeouts are equivalent to a zero timeout.
|
|
409
|
-
//
|
|
410
|
-
// This method requires that this thread holds this `Mutex` in some mode.
|
|
411
|
-
bool AwaitWithTimeout(const Condition& cond, absl::Duration timeout) {
|
|
412
|
-
return AwaitCommon(cond, synchronization_internal::KernelTimeout{timeout});
|
|
413
|
-
}
|
|
414
|
-
|
|
415
|
-
bool AwaitWithDeadline(const Condition& cond, absl::Time deadline) {
|
|
416
|
-
return AwaitCommon(cond, synchronization_internal::KernelTimeout{deadline});
|
|
417
|
-
}
|
|
418
|
-
|
|
419
|
-
// Mutex::LockWhenWithTimeout()
|
|
420
|
-
// Mutex::ReaderLockWhenWithTimeout()
|
|
421
|
-
// Mutex::WriterLockWhenWithTimeout()
|
|
422
|
-
//
|
|
423
|
-
// Blocks until simultaneously both:
|
|
424
|
-
// - either `cond` is `true` or the timeout has expired, and
|
|
425
|
-
// - this `Mutex` can be acquired,
|
|
426
|
-
// then atomically acquires this `Mutex`, returning `true` iff `cond` is
|
|
427
|
-
// `true` on return.
|
|
428
|
-
//
|
|
429
|
-
// Negative timeouts are equivalent to a zero timeout.
|
|
430
|
-
bool LockWhenWithTimeout(const Condition& cond, absl::Duration timeout)
|
|
431
|
-
ABSL_EXCLUSIVE_LOCK_FUNCTION() {
|
|
432
|
-
return LockWhenCommon(
|
|
433
|
-
cond, synchronization_internal::KernelTimeout{timeout}, true);
|
|
434
|
-
}
|
|
435
|
-
bool ReaderLockWhenWithTimeout(const Condition& cond, absl::Duration timeout)
|
|
436
|
-
ABSL_SHARED_LOCK_FUNCTION() {
|
|
437
|
-
return LockWhenCommon(
|
|
438
|
-
cond, synchronization_internal::KernelTimeout{timeout}, false);
|
|
439
|
-
}
|
|
440
|
-
bool WriterLockWhenWithTimeout(const Condition& cond, absl::Duration timeout)
|
|
441
|
-
ABSL_EXCLUSIVE_LOCK_FUNCTION() {
|
|
442
|
-
return this->LockWhenWithTimeout(cond, timeout);
|
|
443
|
-
}
|
|
444
|
-
|
|
445
|
-
// Mutex::LockWhenWithDeadline()
|
|
446
|
-
// Mutex::ReaderLockWhenWithDeadline()
|
|
447
|
-
// Mutex::WriterLockWhenWithDeadline()
|
|
448
|
-
//
|
|
449
|
-
// Blocks until simultaneously both:
|
|
450
|
-
// - either `cond` is `true` or the deadline has been passed, and
|
|
451
|
-
// - this `Mutex` can be acquired,
|
|
452
|
-
// then atomically acquires this Mutex, returning `true` iff `cond` is `true`
|
|
453
|
-
// on return.
|
|
454
|
-
//
|
|
455
|
-
// Deadlines in the past are equivalent to an immediate deadline.
|
|
456
|
-
bool LockWhenWithDeadline(const Condition& cond, absl::Time deadline)
|
|
457
|
-
ABSL_EXCLUSIVE_LOCK_FUNCTION() {
|
|
458
|
-
return LockWhenCommon(
|
|
459
|
-
cond, synchronization_internal::KernelTimeout{deadline}, true);
|
|
460
|
-
}
|
|
461
|
-
bool ReaderLockWhenWithDeadline(const Condition& cond, absl::Time deadline)
|
|
462
|
-
ABSL_SHARED_LOCK_FUNCTION() {
|
|
463
|
-
return LockWhenCommon(
|
|
464
|
-
cond, synchronization_internal::KernelTimeout{deadline}, false);
|
|
465
|
-
}
|
|
466
|
-
bool WriterLockWhenWithDeadline(const Condition& cond, absl::Time deadline)
|
|
467
|
-
ABSL_EXCLUSIVE_LOCK_FUNCTION() {
|
|
468
|
-
return this->LockWhenWithDeadline(cond, deadline);
|
|
469
|
-
}
|
|
470
|
-
|
|
471
|
-
// ---------------------------------------------------------------------------
|
|
472
|
-
// Debug Support: Invariant Checking, Deadlock Detection, Logging.
|
|
473
|
-
// ---------------------------------------------------------------------------
|
|
474
|
-
|
|
475
|
-
// Mutex::EnableInvariantDebugging()
|
|
476
|
-
//
|
|
477
|
-
// If `invariant`!=null and if invariant debugging has been enabled globally,
|
|
478
|
-
// cause `(*invariant)(arg)` to be called at moments when the invariant for
|
|
479
|
-
// this `Mutex` should hold (for example: just after acquire, just before
|
|
480
|
-
// release).
|
|
481
|
-
//
|
|
482
|
-
// The routine `invariant` should have no side-effects since it is not
|
|
483
|
-
// guaranteed how many times it will be called; it should check the invariant
|
|
484
|
-
// and crash if it does not hold. Enabling global invariant debugging may
|
|
485
|
-
// substantially reduce `Mutex` performance; it should be set only for
|
|
486
|
-
// non-production runs. Optimization options may also disable invariant
|
|
487
|
-
// checks.
|
|
488
|
-
void EnableInvariantDebugging(
|
|
489
|
-
void (*absl_nullable invariant)(void* absl_nullability_unknown),
|
|
490
|
-
void* absl_nullability_unknown arg);
|
|
491
|
-
|
|
492
|
-
// Mutex::EnableDebugLog()
|
|
493
|
-
//
|
|
494
|
-
// Cause all subsequent uses of this `Mutex` to be logged via
|
|
495
|
-
// `ABSL_RAW_LOG(INFO)`. Log entries are tagged with `name` if no previous
|
|
496
|
-
// call to `EnableInvariantDebugging()` or `EnableDebugLog()` has been made.
|
|
497
|
-
//
|
|
498
|
-
// Note: This method substantially reduces `Mutex` performance.
|
|
499
|
-
void EnableDebugLog(const char* absl_nullable name);
|
|
500
|
-
|
|
501
|
-
// Deadlock detection
|
|
502
|
-
|
|
503
|
-
// Mutex::ForgetDeadlockInfo()
|
|
504
|
-
//
|
|
505
|
-
// Forget any deadlock-detection information previously gathered
|
|
506
|
-
// about this `Mutex`. Call this method in debug mode when the lock ordering
|
|
507
|
-
// of a `Mutex` changes.
|
|
508
|
-
void ForgetDeadlockInfo();
|
|
509
|
-
|
|
510
|
-
// Mutex::AssertNotHeld()
|
|
511
|
-
//
|
|
512
|
-
// Return immediately if this thread does not hold this `Mutex` in any
|
|
513
|
-
// mode; otherwise, may report an error (typically by crashing with a
|
|
514
|
-
// diagnostic), or may return immediately.
|
|
515
|
-
//
|
|
516
|
-
// Currently this check is performed only if all of:
|
|
517
|
-
// - in debug mode
|
|
518
|
-
// - SetMutexDeadlockDetectionMode() has been set to kReport or kAbort
|
|
519
|
-
// - number of locks concurrently held by this thread is not large.
|
|
520
|
-
// are true.
|
|
521
|
-
void AssertNotHeld() const;
|
|
522
|
-
|
|
523
|
-
// Special cases.
|
|
524
|
-
|
|
525
|
-
// A `MuHow` is a constant that indicates how a lock should be acquired.
|
|
526
|
-
// Internal implementation detail. Clients should ignore.
|
|
527
|
-
typedef const struct MuHowS* MuHow;
|
|
528
|
-
|
|
529
|
-
// Mutex::InternalAttemptToUseMutexInFatalSignalHandler()
|
|
530
|
-
//
|
|
531
|
-
// Causes the `Mutex` implementation to prepare itself for re-entry caused by
|
|
532
|
-
// future use of `Mutex` within a fatal signal handler. This method is
|
|
533
|
-
// intended for use only for last-ditch attempts to log crash information.
|
|
534
|
-
// It does not guarantee that attempts to use Mutexes within the handler will
|
|
535
|
-
// not deadlock; it merely makes other faults less likely.
|
|
536
|
-
//
|
|
537
|
-
// WARNING: This routine must be invoked from a signal handler, and the
|
|
538
|
-
// signal handler must either loop forever or terminate the process.
|
|
539
|
-
// Attempts to return from (or `longjmp` out of) the signal handler once this
|
|
540
|
-
// call has been made may cause arbitrary program behaviour including
|
|
541
|
-
// crashes and deadlocks.
|
|
542
|
-
static void InternalAttemptToUseMutexInFatalSignalHandler();
|
|
543
|
-
|
|
544
|
-
private:
|
|
545
|
-
std::atomic<intptr_t> mu_; // The Mutex state.
|
|
546
|
-
|
|
547
|
-
// Post()/Wait() versus associated PerThreadSem; in class for required
|
|
548
|
-
// friendship with PerThreadSem.
|
|
549
|
-
static void IncrementSynchSem(Mutex* absl_nonnull mu,
|
|
550
|
-
base_internal::PerThreadSynch* absl_nonnull w);
|
|
551
|
-
static bool DecrementSynchSem(Mutex* absl_nonnull mu,
|
|
552
|
-
base_internal::PerThreadSynch* absl_nonnull w,
|
|
553
|
-
synchronization_internal::KernelTimeout t);
|
|
554
|
-
|
|
555
|
-
// slow path acquire
|
|
556
|
-
void LockSlowLoop(SynchWaitParams* absl_nonnull waitp, int flags);
|
|
557
|
-
// wrappers around LockSlowLoop()
|
|
558
|
-
bool LockSlowWithDeadline(MuHow absl_nonnull how,
|
|
559
|
-
const Condition* absl_nullable cond,
|
|
560
|
-
synchronization_internal::KernelTimeout t,
|
|
561
|
-
int flags);
|
|
562
|
-
void LockSlow(MuHow absl_nonnull how, const Condition* absl_nullable cond,
|
|
563
|
-
int flags) ABSL_ATTRIBUTE_COLD;
|
|
564
|
-
// slow path release
|
|
565
|
-
void UnlockSlow(SynchWaitParams* absl_nullable waitp) ABSL_ATTRIBUTE_COLD;
|
|
566
|
-
// TryLock slow path.
|
|
567
|
-
bool TryLockSlow();
|
|
568
|
-
// ReaderTryLock slow path.
|
|
569
|
-
bool ReaderTryLockSlow();
|
|
570
|
-
// Common code between Await() and AwaitWithTimeout/Deadline()
|
|
571
|
-
bool AwaitCommon(const Condition& cond,
|
|
572
|
-
synchronization_internal::KernelTimeout t);
|
|
573
|
-
bool LockWhenCommon(const Condition& cond,
|
|
574
|
-
synchronization_internal::KernelTimeout t, bool write);
|
|
575
|
-
// Attempt to remove thread s from queue.
|
|
576
|
-
void TryRemove(base_internal::PerThreadSynch* absl_nonnull s);
|
|
577
|
-
// Block a thread on mutex.
|
|
578
|
-
void Block(base_internal::PerThreadSynch* absl_nonnull s);
|
|
579
|
-
// Wake a thread; return successor.
|
|
580
|
-
base_internal::PerThreadSynch* absl_nullable Wakeup(
|
|
581
|
-
base_internal::PerThreadSynch* absl_nonnull w);
|
|
582
|
-
void Dtor();
|
|
583
|
-
|
|
584
|
-
friend class CondVar; // for access to Trans()/Fer().
|
|
585
|
-
void Trans(MuHow absl_nonnull how); // used for CondVar->Mutex transfer
|
|
586
|
-
void Fer(base_internal::PerThreadSynch* absl_nonnull
|
|
587
|
-
w); // used for CondVar->Mutex transfer
|
|
588
|
-
|
|
589
|
-
// Catch the error of writing Mutex when intending MutexLock.
|
|
590
|
-
explicit Mutex(const volatile Mutex* absl_nullable /*ignored*/) {}
|
|
591
|
-
|
|
592
|
-
Mutex(const Mutex&) = delete;
|
|
593
|
-
Mutex& operator=(const Mutex&) = delete;
|
|
594
|
-
};
|
|
595
|
-
|
|
596
|
-
// -----------------------------------------------------------------------------
|
|
597
|
-
// Mutex RAII Wrappers
|
|
598
|
-
// -----------------------------------------------------------------------------
|
|
599
|
-
|
|
600
|
-
// MutexLock
|
|
601
|
-
//
|
|
602
|
-
// `MutexLock` is a helper class, which acquires and releases a `Mutex` via
|
|
603
|
-
// RAII.
|
|
604
|
-
//
|
|
605
|
-
// Example:
|
|
606
|
-
//
|
|
607
|
-
// Class Foo {
|
|
608
|
-
// public:
|
|
609
|
-
// Foo::Bar* Baz() {
|
|
610
|
-
// MutexLock lock(mu_);
|
|
611
|
-
// ...
|
|
612
|
-
// return bar;
|
|
613
|
-
// }
|
|
614
|
-
//
|
|
615
|
-
// private:
|
|
616
|
-
// Mutex mu_;
|
|
617
|
-
// };
|
|
618
|
-
class ABSL_SCOPED_LOCKABLE MutexLock {
|
|
619
|
-
public:
|
|
620
|
-
// Constructors
|
|
621
|
-
|
|
622
|
-
// Calls `mu.lock()` and returns when that call returns. That is, `mu` is
|
|
623
|
-
// guaranteed to be locked when this object is constructed.
|
|
624
|
-
explicit MutexLock(Mutex& mu ABSL_INTERNAL_ATTRIBUTE_CAPTURED_BY(this))
|
|
625
|
-
ABSL_EXCLUSIVE_LOCK_FUNCTION(mu)
|
|
626
|
-
: mu_(mu) {
|
|
627
|
-
this->mu_.lock();
|
|
628
|
-
}
|
|
629
|
-
|
|
630
|
-
// Calls `mu->lock()` and returns when that call returns. That is, `*mu` is
|
|
631
|
-
// guaranteed to be locked when this object is constructed. Requires that
|
|
632
|
-
// `mu` be dereferenceable.
|
|
633
|
-
[[deprecated("Use the constructor that takes a reference instead")]]
|
|
634
|
-
ABSL_REFACTOR_INLINE
|
|
635
|
-
explicit MutexLock(Mutex* absl_nonnull mu) ABSL_EXCLUSIVE_LOCK_FUNCTION(mu)
|
|
636
|
-
: MutexLock(*mu) {}
|
|
637
|
-
|
|
638
|
-
// Like above, but calls `mu.LockWhen(cond)` instead. That is, in addition to
|
|
639
|
-
// the above, the condition given by `cond` is also guaranteed to hold when
|
|
640
|
-
// this object is constructed.
|
|
641
|
-
explicit MutexLock(Mutex& mu ABSL_INTERNAL_ATTRIBUTE_CAPTURED_BY(this),
|
|
642
|
-
const Condition& cond) ABSL_EXCLUSIVE_LOCK_FUNCTION(mu)
|
|
643
|
-
: mu_(mu) {
|
|
644
|
-
this->mu_.LockWhen(cond);
|
|
645
|
-
}
|
|
646
|
-
|
|
647
|
-
[[deprecated("Use the constructor that takes a reference instead")]]
|
|
648
|
-
ABSL_REFACTOR_INLINE
|
|
649
|
-
explicit MutexLock(Mutex* absl_nonnull mu, const Condition& cond)
|
|
650
|
-
ABSL_EXCLUSIVE_LOCK_FUNCTION(mu)
|
|
651
|
-
: MutexLock(*mu, cond) {}
|
|
652
|
-
|
|
653
|
-
MutexLock(const MutexLock&) = delete; // NOLINT(runtime/mutex)
|
|
654
|
-
MutexLock(MutexLock&&) = delete; // NOLINT(runtime/mutex)
|
|
655
|
-
MutexLock& operator=(const MutexLock&) = delete;
|
|
656
|
-
MutexLock& operator=(MutexLock&&) = delete;
|
|
657
|
-
|
|
658
|
-
~MutexLock() ABSL_UNLOCK_FUNCTION() { this->mu_.unlock(); }
|
|
659
|
-
|
|
660
|
-
private:
|
|
661
|
-
Mutex& mu_;
|
|
662
|
-
};
|
|
663
|
-
|
|
664
|
-
// ReaderMutexLock
|
|
665
|
-
//
|
|
666
|
-
// The `ReaderMutexLock` is a helper class, like `MutexLock`, which acquires and
|
|
667
|
-
// releases a shared lock on a `Mutex` via RAII.
|
|
668
|
-
class ABSL_SCOPED_LOCKABLE ReaderMutexLock {
|
|
669
|
-
public:
|
|
670
|
-
explicit ReaderMutexLock(Mutex& mu ABSL_INTERNAL_ATTRIBUTE_CAPTURED_BY(this))
|
|
671
|
-
ABSL_SHARED_LOCK_FUNCTION(mu)
|
|
672
|
-
: mu_(mu) {
|
|
673
|
-
mu.lock_shared();
|
|
674
|
-
}
|
|
675
|
-
|
|
676
|
-
[[deprecated("Use the constructor that takes a reference instead")]]
|
|
677
|
-
ABSL_REFACTOR_INLINE
|
|
678
|
-
explicit ReaderMutexLock(Mutex* absl_nonnull mu) ABSL_SHARED_LOCK_FUNCTION(mu)
|
|
679
|
-
: ReaderMutexLock(*mu) {}
|
|
680
|
-
|
|
681
|
-
explicit ReaderMutexLock(Mutex& mu ABSL_INTERNAL_ATTRIBUTE_CAPTURED_BY(this),
|
|
682
|
-
const Condition& cond) ABSL_SHARED_LOCK_FUNCTION(mu)
|
|
683
|
-
: mu_(mu) {
|
|
684
|
-
mu.ReaderLockWhen(cond);
|
|
685
|
-
}
|
|
686
|
-
|
|
687
|
-
[[deprecated("Use the constructor that takes a reference instead")]]
|
|
688
|
-
ABSL_REFACTOR_INLINE
|
|
689
|
-
explicit ReaderMutexLock(Mutex* absl_nonnull mu, const Condition& cond)
|
|
690
|
-
ABSL_SHARED_LOCK_FUNCTION(mu)
|
|
691
|
-
: ReaderMutexLock(*mu, cond) {}
|
|
692
|
-
|
|
693
|
-
ReaderMutexLock(const ReaderMutexLock&) = delete;
|
|
694
|
-
ReaderMutexLock(ReaderMutexLock&&) = delete;
|
|
695
|
-
ReaderMutexLock& operator=(const ReaderMutexLock&) = delete;
|
|
696
|
-
ReaderMutexLock& operator=(ReaderMutexLock&&) = delete;
|
|
697
|
-
|
|
698
|
-
~ReaderMutexLock() ABSL_UNLOCK_FUNCTION() { this->mu_.unlock_shared(); }
|
|
699
|
-
|
|
700
|
-
private:
|
|
701
|
-
Mutex& mu_;
|
|
702
|
-
};
|
|
703
|
-
|
|
704
|
-
// WriterMutexLock
|
|
705
|
-
//
|
|
706
|
-
// The `WriterMutexLock` is a helper class, like `MutexLock`, which acquires and
|
|
707
|
-
// releases a write (exclusive) lock on a `Mutex` via RAII.
|
|
708
|
-
class ABSL_SCOPED_LOCKABLE WriterMutexLock {
|
|
709
|
-
public:
|
|
710
|
-
explicit WriterMutexLock(Mutex& mu ABSL_INTERNAL_ATTRIBUTE_CAPTURED_BY(this))
|
|
711
|
-
ABSL_EXCLUSIVE_LOCK_FUNCTION(mu)
|
|
712
|
-
: mu_(mu) {
|
|
713
|
-
mu.lock();
|
|
714
|
-
}
|
|
715
|
-
|
|
716
|
-
[[deprecated("Use the constructor that takes a reference instead")]]
|
|
717
|
-
ABSL_REFACTOR_INLINE
|
|
718
|
-
explicit WriterMutexLock(Mutex* absl_nonnull mu)
|
|
719
|
-
ABSL_EXCLUSIVE_LOCK_FUNCTION(mu)
|
|
720
|
-
: WriterMutexLock(*mu) {}
|
|
721
|
-
|
|
722
|
-
explicit WriterMutexLock(Mutex& mu ABSL_INTERNAL_ATTRIBUTE_CAPTURED_BY(this),
|
|
723
|
-
const Condition& cond)
|
|
724
|
-
ABSL_EXCLUSIVE_LOCK_FUNCTION(mu)
|
|
725
|
-
: mu_(mu) {
|
|
726
|
-
mu.WriterLockWhen(cond);
|
|
727
|
-
}
|
|
728
|
-
|
|
729
|
-
[[deprecated("Use the constructor that takes a reference instead")]]
|
|
730
|
-
ABSL_REFACTOR_INLINE
|
|
731
|
-
explicit WriterMutexLock(Mutex* absl_nonnull mu, const Condition& cond)
|
|
732
|
-
ABSL_EXCLUSIVE_LOCK_FUNCTION(mu)
|
|
733
|
-
: WriterMutexLock(*mu, cond) {}
|
|
734
|
-
|
|
735
|
-
WriterMutexLock(const WriterMutexLock&) = delete;
|
|
736
|
-
WriterMutexLock(WriterMutexLock&&) = delete;
|
|
737
|
-
WriterMutexLock& operator=(const WriterMutexLock&) = delete;
|
|
738
|
-
WriterMutexLock& operator=(WriterMutexLock&&) = delete;
|
|
739
|
-
|
|
740
|
-
~WriterMutexLock() ABSL_UNLOCK_FUNCTION() { this->mu_.unlock(); }
|
|
741
|
-
|
|
742
|
-
private:
|
|
743
|
-
Mutex& mu_;
|
|
744
|
-
};
|
|
745
|
-
|
|
746
|
-
// -----------------------------------------------------------------------------
|
|
747
|
-
// Condition
|
|
748
|
-
// -----------------------------------------------------------------------------
|
|
749
|
-
//
|
|
750
|
-
// `Mutex` contains a number of member functions which take a `Condition` as an
|
|
751
|
-
// argument; clients can wait for conditions to become `true` before attempting
|
|
752
|
-
// to acquire the mutex. These sections are known as "condition critical"
|
|
753
|
-
// sections. To use a `Condition`, you simply need to construct it, and use
|
|
754
|
-
// within an appropriate `Mutex` member function; everything else in the
|
|
755
|
-
// `Condition` class is an implementation detail.
|
|
756
|
-
//
|
|
757
|
-
// A `Condition` is specified as a function pointer which returns a boolean.
|
|
758
|
-
// `Condition` functions should be pure functions -- their results should depend
|
|
759
|
-
// only on passed arguments, should not consult any external state (such as
|
|
760
|
-
// clocks), and should have no side-effects, aside from debug logging. Any
|
|
761
|
-
// objects that the function may access should be limited to those which are
|
|
762
|
-
// constant while the mutex is blocked on the condition (e.g. a stack variable),
|
|
763
|
-
// or objects of state protected explicitly by the mutex.
|
|
764
|
-
//
|
|
765
|
-
// No matter which construction is used for `Condition`, the underlying
|
|
766
|
-
// function pointer / functor / callable must not throw any
|
|
767
|
-
// exceptions. Correctness of `Mutex` / `Condition` is not guaranteed in
|
|
768
|
-
// the face of a throwing `Condition`. (When Abseil is allowed to depend
|
|
769
|
-
// on C++17, these function pointers will be explicitly marked
|
|
770
|
-
// `noexcept`; until then this requirement cannot be enforced in the
|
|
771
|
-
// type system.)
|
|
772
|
-
//
|
|
773
|
-
// Note: to use a `Condition`, you need only construct it and pass it to a
|
|
774
|
-
// suitable `Mutex' member function, such as `Mutex::Await()`, or to the
|
|
775
|
-
// constructor of one of the scope guard classes.
|
|
776
|
-
//
|
|
777
|
-
// Example using LockWhen/Unlock:
|
|
778
|
-
//
|
|
779
|
-
// // assume count_ is not internal reference count
|
|
780
|
-
// int count_ ABSL_GUARDED_BY(mu_);
|
|
781
|
-
// Condition count_is_zero(+[](int *count) { return *count == 0; }, &count_);
|
|
782
|
-
//
|
|
783
|
-
// mu_.LockWhen(count_is_zero);
|
|
784
|
-
// // ...
|
|
785
|
-
// mu_.Unlock();
|
|
786
|
-
//
|
|
787
|
-
// Example using a scope guard:
|
|
788
|
-
//
|
|
789
|
-
// {
|
|
790
|
-
// MutexLock lock(mu_, count_is_zero);
|
|
791
|
-
// // ...
|
|
792
|
-
// }
|
|
793
|
-
//
|
|
794
|
-
// When multiple threads are waiting on exactly the same condition, make sure
|
|
795
|
-
// that they are constructed with the same parameters (same pointer to function
|
|
796
|
-
// + arg, or same pointer to object + method), so that the mutex implementation
|
|
797
|
-
// can avoid redundantly evaluating the same condition for each thread.
|
|
798
|
-
class Condition {
|
|
799
|
-
public:
|
|
800
|
-
// A Condition that returns the result of "(*func)(arg)"
|
|
801
|
-
Condition(bool (*absl_nonnull func)(void* absl_nullability_unknown),
|
|
802
|
-
void* absl_nullability_unknown arg);
|
|
803
|
-
|
|
804
|
-
// Templated version for people who are averse to casts.
|
|
805
|
-
//
|
|
806
|
-
// To use a lambda, prepend it with unary plus, which converts the lambda
|
|
807
|
-
// into a function pointer:
|
|
808
|
-
// Condition(+[](T* t) { return ...; }, arg).
|
|
809
|
-
//
|
|
810
|
-
// Note: lambdas in this case must contain no bound variables.
|
|
811
|
-
//
|
|
812
|
-
// See class comment for performance advice.
|
|
813
|
-
template <typename T>
|
|
814
|
-
Condition(bool (*absl_nonnull func)(T* absl_nullability_unknown),
|
|
815
|
-
T* absl_nullability_unknown arg);
|
|
816
|
-
|
|
817
|
-
// Same as above, but allows for cases where `arg` comes from a pointer that
|
|
818
|
-
// is convertible to the function parameter type `T*` but not an exact match.
|
|
819
|
-
//
|
|
820
|
-
// For example, the argument might be `X*` but the function takes `const X*`,
|
|
821
|
-
// or the argument might be `Derived*` while the function takes `Base*`, and
|
|
822
|
-
// so on for cases where the argument pointer can be implicitly converted.
|
|
823
|
-
//
|
|
824
|
-
// Implementation notes: This constructor overload is required in addition to
|
|
825
|
-
// the one above to allow deduction of `T` from `arg` for cases such as where
|
|
826
|
-
// a function template is passed as `func`. Also, the dummy `typename = void`
|
|
827
|
-
// template parameter exists just to work around a MSVC mangling bug.
|
|
828
|
-
template <typename T, typename = void>
|
|
829
|
-
Condition(
|
|
830
|
-
bool (*absl_nonnull func)(T* absl_nullability_unknown),
|
|
831
|
-
typename absl::type_identity<T>::type* absl_nullability_unknown
|
|
832
|
-
arg);
|
|
833
|
-
|
|
834
|
-
// Templated version for invoking a method that returns a `bool`.
|
|
835
|
-
//
|
|
836
|
-
// `Condition(object, &Class::Method)` constructs a `Condition` that evaluates
|
|
837
|
-
// `object->Method()`.
|
|
838
|
-
//
|
|
839
|
-
// Implementation Note: `absl::type_identity` is used to allow
|
|
840
|
-
// methods to come from base classes. A simpler signature like
|
|
841
|
-
// `Condition(T*, bool (T::*)())` does not suffice.
|
|
842
|
-
template <typename T>
|
|
843
|
-
Condition(
|
|
844
|
-
T* absl_nonnull object,
|
|
845
|
-
bool (absl::type_identity<T>::type::* absl_nonnull method)());
|
|
846
|
-
|
|
847
|
-
// Same as above, for const members
|
|
848
|
-
template <typename T>
|
|
849
|
-
Condition(
|
|
850
|
-
const T* absl_nonnull object,
|
|
851
|
-
bool (absl::type_identity<T>::type::* absl_nonnull method)()
|
|
852
|
-
const);
|
|
853
|
-
|
|
854
|
-
// A Condition that returns the value of `*cond`
|
|
855
|
-
explicit Condition(const bool* absl_nonnull cond);
|
|
856
|
-
|
|
857
|
-
// Templated version for invoking a functor that returns a `bool`.
|
|
858
|
-
// This approach accepts pointers to non-mutable lambdas, `std::function`,
|
|
859
|
-
// the result of` std::bind` and user-defined functors that define
|
|
860
|
-
// `bool F::operator()() const`.
|
|
861
|
-
//
|
|
862
|
-
// Example:
|
|
863
|
-
//
|
|
864
|
-
// auto reached = [this, current]() {
|
|
865
|
-
// mu_.AssertReaderHeld(); // For annotalysis.
|
|
866
|
-
// return processed_ >= current;
|
|
867
|
-
// };
|
|
868
|
-
// mu_.Await(Condition(&reached));
|
|
869
|
-
//
|
|
870
|
-
// NOTE: never use "mu_.AssertHeld()" instead of "mu_.AssertReaderHeld()" in
|
|
871
|
-
// the lambda as it may be called when the mutex is being unlocked from a
|
|
872
|
-
// scope holding only a reader lock, which will make the assertion not
|
|
873
|
-
// fulfilled and crash the binary.
|
|
874
|
-
|
|
875
|
-
// See class comment for performance advice. In particular, if there
|
|
876
|
-
// might be more than one waiter for the same condition, make sure
|
|
877
|
-
// that all waiters construct the condition with the same pointers.
|
|
878
|
-
|
|
879
|
-
// Implementation note: The second template parameter ensures that this
|
|
880
|
-
// constructor doesn't participate in overload resolution if T doesn't have
|
|
881
|
-
// `bool operator() const`.
|
|
882
|
-
template <typename T,
|
|
883
|
-
std::enable_if_t<
|
|
884
|
-
synchronization_internal::HasConstMemberCallOperator<T>::value,
|
|
885
|
-
int> = 0>
|
|
886
|
-
explicit Condition(const T* absl_nonnull obj)
|
|
887
|
-
: Condition(obj, static_cast<bool (T::*)() const>(&T::operator())) {}
|
|
888
|
-
|
|
889
|
-
// Constructor for functors that do not match the `bool operator()() const`
|
|
890
|
-
// signature, such as those using C++23 "deducing this" or static operator().
|
|
891
|
-
template <
|
|
892
|
-
typename T,
|
|
893
|
-
typename = std::enable_if_t<
|
|
894
|
-
!synchronization_internal::HasConstMemberCallOperator<T>::value &&
|
|
895
|
-
sizeof(static_cast<bool (*)(const T&)>(&T::operator())) != 0>>
|
|
896
|
-
explicit Condition(const T* absl_nonnull obj)
|
|
897
|
-
: Condition(&CallByRef<T>, obj) {}
|
|
898
|
-
|
|
899
|
-
// A Condition that always returns `true`.
|
|
900
|
-
// kTrue is only useful in a narrow set of circumstances, mostly when
|
|
901
|
-
// it's passed conditionally. For example:
|
|
902
|
-
//
|
|
903
|
-
// mu.LockWhen(some_flag ? kTrue : SomeOtherCondition);
|
|
904
|
-
//
|
|
905
|
-
// Note: {LockWhen,Await}With{Deadline,Timeout} methods with kTrue condition
|
|
906
|
-
// don't return immediately when the timeout happens, they still block until
|
|
907
|
-
// the Mutex becomes available. The return value of these methods does
|
|
908
|
-
// not indicate if the timeout was reached; rather it indicates whether or
|
|
909
|
-
// not the condition is true.
|
|
910
|
-
ABSL_CONST_INIT static const Condition kTrue;
|
|
911
|
-
|
|
912
|
-
// Evaluates the condition.
|
|
913
|
-
bool Eval() const;
|
|
914
|
-
|
|
915
|
-
// Returns `true` if the two conditions are guaranteed to return the same
|
|
916
|
-
// value if evaluated at the same time, `false` if the evaluation *may* return
|
|
917
|
-
// different results.
|
|
918
|
-
//
|
|
919
|
-
// Two `Condition` values are guaranteed equal if both their `func` and `arg`
|
|
920
|
-
// components are the same. A null pointer is equivalent to a `true`
|
|
921
|
-
// condition.
|
|
922
|
-
static bool GuaranteedEqual(const Condition* absl_nullable a,
|
|
923
|
-
const Condition* absl_nullable b);
|
|
924
|
-
|
|
925
|
-
private:
|
|
926
|
-
// Sizing an allocation for a method pointer can be subtle. In the Itanium
|
|
927
|
-
// specifications, a method pointer has a predictable, uniform size. On the
|
|
928
|
-
// other hand, MSVC ABI, method pointer sizes vary based on the
|
|
929
|
-
// inheritance of the class. Specifically, method pointers from classes with
|
|
930
|
-
// multiple inheritance are bigger than those of classes with single
|
|
931
|
-
// inheritance. Other variations also exist.
|
|
932
|
-
|
|
933
|
-
#ifndef _MSC_VER
|
|
934
|
-
// Allocation for a function pointer or method pointer.
|
|
935
|
-
// The {0} initializer ensures that all unused bytes of this buffer are
|
|
936
|
-
// always zeroed out. This is necessary, because GuaranteedEqual() compares
|
|
937
|
-
// all of the bytes, unaware of which bytes are relevant to a given `eval_`.
|
|
938
|
-
using MethodPtr = bool (Condition::*)();
|
|
939
|
-
char callback_[sizeof(MethodPtr)] = {0};
|
|
940
|
-
#else
|
|
941
|
-
// It is well known that the larget MSVC pointer-to-member is 24 bytes. This
|
|
942
|
-
// may be the largest known pointer-to-member of any platform. For this
|
|
943
|
-
// reason we will allocate 24 bytes for MSVC platform toolchains.
|
|
944
|
-
char callback_[24] = {0};
|
|
945
|
-
#endif
|
|
946
|
-
|
|
947
|
-
// Function with which to evaluate callbacks and/or arguments.
|
|
948
|
-
bool (*absl_nullable eval_)(const Condition* absl_nonnull) = nullptr;
|
|
949
|
-
|
|
950
|
-
// Either an argument for a function call or an object for a method call.
|
|
951
|
-
void* absl_nullable arg_ = nullptr;
|
|
952
|
-
|
|
953
|
-
// Various functions eval_ can point to:
|
|
954
|
-
static bool CallVoidPtrFunction(const Condition* absl_nonnull c);
|
|
955
|
-
template <typename T>
|
|
956
|
-
static bool CastAndCallFunction(const Condition* absl_nonnull c);
|
|
957
|
-
template <typename T, typename ConditionMethodPtr>
|
|
958
|
-
static bool CastAndCallMethod(const Condition* absl_nonnull c);
|
|
959
|
-
|
|
960
|
-
template <typename T>
|
|
961
|
-
static bool CallByRef(const T* absl_nonnull self) {
|
|
962
|
-
return (*self)();
|
|
963
|
-
}
|
|
964
|
-
|
|
965
|
-
// Helper methods for storing, validating, and reading callback arguments.
|
|
966
|
-
template <typename T>
|
|
967
|
-
inline void StoreCallback(T callback) {
|
|
968
|
-
static_assert(
|
|
969
|
-
sizeof(callback) <= sizeof(callback_),
|
|
970
|
-
"An overlarge pointer was passed as a callback to Condition.");
|
|
971
|
-
std::memcpy(callback_, &callback, sizeof(callback));
|
|
972
|
-
}
|
|
973
|
-
|
|
974
|
-
template <typename T>
|
|
975
|
-
inline void ReadCallback(T* absl_nonnull callback) const {
|
|
976
|
-
std::memcpy(callback, callback_, sizeof(*callback));
|
|
977
|
-
}
|
|
978
|
-
|
|
979
|
-
static bool AlwaysTrue(const Condition* absl_nullable) { return true; }
|
|
980
|
-
|
|
981
|
-
// Used only to create kTrue.
|
|
982
|
-
constexpr Condition() : eval_(AlwaysTrue), arg_(nullptr) {}
|
|
983
|
-
};
|
|
984
|
-
|
|
985
|
-
// -----------------------------------------------------------------------------
|
|
986
|
-
// CondVar
|
|
987
|
-
// -----------------------------------------------------------------------------
|
|
988
|
-
//
|
|
989
|
-
// A condition variable, reflecting state evaluated separately outside of the
|
|
990
|
-
// `Mutex` object, which can be signaled to wake callers.
|
|
991
|
-
// This class is not normally needed; use `Mutex` member functions such as
|
|
992
|
-
// `Mutex::Await()` and intrinsic `Condition` abstractions. In rare cases
|
|
993
|
-
// with many threads and many conditions, `CondVar` may be faster.
|
|
994
|
-
//
|
|
995
|
-
// The implementation may deliver signals to any condition variable at
|
|
996
|
-
// any time, even when no call to `Signal()` or `SignalAll()` is made; as a
|
|
997
|
-
// result, upon being awoken, you must check the logical condition you have
|
|
998
|
-
// been waiting upon.
|
|
999
|
-
//
|
|
1000
|
-
// Examples:
|
|
1001
|
-
//
|
|
1002
|
-
// Usage for a thread waiting for some condition C protected by mutex mu:
|
|
1003
|
-
// mu.Lock();
|
|
1004
|
-
// while (!C) { cv->Wait(&mu); } // releases and reacquires mu
|
|
1005
|
-
// // C holds; process data
|
|
1006
|
-
// mu.Unlock();
|
|
1007
|
-
//
|
|
1008
|
-
// Usage to wake T is:
|
|
1009
|
-
// mu.Lock();
|
|
1010
|
-
// // process data, possibly establishing C
|
|
1011
|
-
// if (C) { cv->Signal(); }
|
|
1012
|
-
// mu.Unlock();
|
|
1013
|
-
//
|
|
1014
|
-
// If C may be useful to more than one waiter, use `SignalAll()` instead of
|
|
1015
|
-
// `Signal()`.
|
|
1016
|
-
//
|
|
1017
|
-
// With this implementation it is efficient to use `Signal()/SignalAll()` inside
|
|
1018
|
-
// the locked region; this usage can make reasoning about your program easier.
|
|
1019
|
-
//
|
|
1020
|
-
class CondVar {
|
|
1021
|
-
public:
|
|
1022
|
-
// A `CondVar` allocated on the heap or on the stack can use the this
|
|
1023
|
-
// constructor.
|
|
1024
|
-
CondVar();
|
|
1025
|
-
|
|
1026
|
-
// CondVar::Wait()
|
|
1027
|
-
//
|
|
1028
|
-
// Atomically releases a `Mutex` and blocks on this condition variable.
|
|
1029
|
-
// Waits until awakened by a call to `Signal()` or `SignalAll()` (or a
|
|
1030
|
-
// spurious wakeup), then reacquires the `Mutex` and returns.
|
|
1031
|
-
//
|
|
1032
|
-
// Requires and ensures that the current thread holds the `Mutex`.
|
|
1033
|
-
void Wait(Mutex* absl_nonnull mu) {
|
|
1034
|
-
WaitCommon(mu, synchronization_internal::KernelTimeout::Never());
|
|
1035
|
-
}
|
|
1036
|
-
|
|
1037
|
-
// CondVar::WaitWithTimeout()
|
|
1038
|
-
//
|
|
1039
|
-
// Atomically releases a `Mutex` and blocks on this condition variable.
|
|
1040
|
-
// Waits until awakened by a call to `Signal()` or `SignalAll()` (or a
|
|
1041
|
-
// spurious wakeup), or until the timeout has expired, then reacquires
|
|
1042
|
-
// the `Mutex` and returns.
|
|
1043
|
-
//
|
|
1044
|
-
// Returns true if the timeout has expired without this `CondVar`
|
|
1045
|
-
// being signalled in any manner. If both the timeout has expired
|
|
1046
|
-
// and this `CondVar` has been signalled, the implementation is free
|
|
1047
|
-
// to return `true` or `false`.
|
|
1048
|
-
//
|
|
1049
|
-
// Requires and ensures that the current thread holds the `Mutex`.
|
|
1050
|
-
bool WaitWithTimeout(Mutex* absl_nonnull mu, absl::Duration timeout) {
|
|
1051
|
-
return WaitCommon(mu, synchronization_internal::KernelTimeout(timeout));
|
|
1052
|
-
}
|
|
1053
|
-
|
|
1054
|
-
// CondVar::WaitWithDeadline()
|
|
1055
|
-
//
|
|
1056
|
-
// Atomically releases a `Mutex` and blocks on this condition variable.
|
|
1057
|
-
// Waits until awakened by a call to `Signal()` or `SignalAll()` (or a
|
|
1058
|
-
// spurious wakeup), or until the deadline has passed, then reacquires
|
|
1059
|
-
// the `Mutex` and returns.
|
|
1060
|
-
//
|
|
1061
|
-
// Deadlines in the past are equivalent to an immediate deadline.
|
|
1062
|
-
//
|
|
1063
|
-
// Returns true if the deadline has passed without this `CondVar`
|
|
1064
|
-
// being signalled in any manner. If both the deadline has passed
|
|
1065
|
-
// and this `CondVar` has been signalled, the implementation is free
|
|
1066
|
-
// to return `true` or `false`.
|
|
1067
|
-
//
|
|
1068
|
-
// Requires and ensures that the current thread holds the `Mutex`.
|
|
1069
|
-
bool WaitWithDeadline(Mutex* absl_nonnull mu, absl::Time deadline) {
|
|
1070
|
-
return WaitCommon(mu, synchronization_internal::KernelTimeout(deadline));
|
|
1071
|
-
}
|
|
1072
|
-
|
|
1073
|
-
// CondVar::Signal()
|
|
1074
|
-
//
|
|
1075
|
-
// Signal this `CondVar`; wake at least one waiter if one exists.
|
|
1076
|
-
void Signal();
|
|
1077
|
-
|
|
1078
|
-
// CondVar::SignalAll()
|
|
1079
|
-
//
|
|
1080
|
-
// Signal this `CondVar`; wake all waiters.
|
|
1081
|
-
void SignalAll();
|
|
1082
|
-
|
|
1083
|
-
// CondVar::EnableDebugLog()
|
|
1084
|
-
//
|
|
1085
|
-
// Causes all subsequent uses of this `CondVar` to be logged via
|
|
1086
|
-
// `ABSL_RAW_LOG(INFO)`. Log entries are tagged with `name` if `name != 0`.
|
|
1087
|
-
// Note: this method substantially reduces `CondVar` performance.
|
|
1088
|
-
void EnableDebugLog(const char* absl_nullable name);
|
|
1089
|
-
|
|
1090
|
-
private:
|
|
1091
|
-
bool WaitCommon(Mutex* absl_nonnull mutex,
|
|
1092
|
-
synchronization_internal::KernelTimeout t);
|
|
1093
|
-
void Remove(base_internal::PerThreadSynch* absl_nonnull s);
|
|
1094
|
-
std::atomic<intptr_t> cv_; // Condition variable state.
|
|
1095
|
-
CondVar(const CondVar&) = delete;
|
|
1096
|
-
CondVar& operator=(const CondVar&) = delete;
|
|
1097
|
-
};
|
|
1098
|
-
|
|
1099
|
-
// Variants of MutexLock.
|
|
1100
|
-
//
|
|
1101
|
-
// If you find yourself using one of these, consider instead using
|
|
1102
|
-
// Mutex::Unlock() and/or if-statements for clarity.
|
|
1103
|
-
|
|
1104
|
-
// MutexLockMaybe
|
|
1105
|
-
//
|
|
1106
|
-
// MutexLockMaybe is like MutexLock, but is a no-op when mu is null.
|
|
1107
|
-
class ABSL_SCOPED_LOCKABLE MutexLockMaybe {
|
|
1108
|
-
public:
|
|
1109
|
-
explicit MutexLockMaybe(Mutex* absl_nullable mu)
|
|
1110
|
-
ABSL_EXCLUSIVE_LOCK_FUNCTION(mu)
|
|
1111
|
-
: mu_(mu) {
|
|
1112
|
-
if (this->mu_ != nullptr) {
|
|
1113
|
-
this->mu_->lock();
|
|
1114
|
-
}
|
|
1115
|
-
}
|
|
1116
|
-
|
|
1117
|
-
explicit MutexLockMaybe(Mutex* absl_nullable mu, const Condition& cond)
|
|
1118
|
-
ABSL_EXCLUSIVE_LOCK_FUNCTION(mu)
|
|
1119
|
-
: mu_(mu) {
|
|
1120
|
-
if (this->mu_ != nullptr) {
|
|
1121
|
-
this->mu_->LockWhen(cond);
|
|
1122
|
-
}
|
|
1123
|
-
}
|
|
1124
|
-
|
|
1125
|
-
~MutexLockMaybe() ABSL_UNLOCK_FUNCTION() {
|
|
1126
|
-
if (this->mu_ != nullptr) {
|
|
1127
|
-
this->mu_->unlock();
|
|
1128
|
-
}
|
|
1129
|
-
}
|
|
1130
|
-
|
|
1131
|
-
private:
|
|
1132
|
-
Mutex* absl_nullable const mu_;
|
|
1133
|
-
MutexLockMaybe(const MutexLockMaybe&) = delete;
|
|
1134
|
-
MutexLockMaybe(MutexLockMaybe&&) = delete;
|
|
1135
|
-
MutexLockMaybe& operator=(const MutexLockMaybe&) = delete;
|
|
1136
|
-
MutexLockMaybe& operator=(MutexLockMaybe&&) = delete;
|
|
1137
|
-
};
|
|
1138
|
-
|
|
1139
|
-
// ReleasableMutexLock
|
|
1140
|
-
//
|
|
1141
|
-
// ReleasableMutexLock is like MutexLock, but permits `Release()` of its
|
|
1142
|
-
// mutex before destruction. `Release()` may be called at most once.
|
|
1143
|
-
class ABSL_SCOPED_LOCKABLE ReleasableMutexLock {
|
|
1144
|
-
public:
|
|
1145
|
-
explicit ReleasableMutexLock(Mutex& mu ABSL_INTERNAL_ATTRIBUTE_CAPTURED_BY(
|
|
1146
|
-
this)) ABSL_EXCLUSIVE_LOCK_FUNCTION(mu)
|
|
1147
|
-
: mu_(&mu) {
|
|
1148
|
-
this->mu_->lock();
|
|
1149
|
-
}
|
|
1150
|
-
|
|
1151
|
-
[[deprecated("Use the constructor that takes a reference instead")]]
|
|
1152
|
-
ABSL_REFACTOR_INLINE
|
|
1153
|
-
explicit ReleasableMutexLock(Mutex* absl_nonnull mu)
|
|
1154
|
-
ABSL_EXCLUSIVE_LOCK_FUNCTION(mu)
|
|
1155
|
-
: ReleasableMutexLock(*mu) {}
|
|
1156
|
-
|
|
1157
|
-
explicit ReleasableMutexLock(
|
|
1158
|
-
Mutex& mu ABSL_INTERNAL_ATTRIBUTE_CAPTURED_BY(this),
|
|
1159
|
-
const Condition& cond) ABSL_EXCLUSIVE_LOCK_FUNCTION(mu)
|
|
1160
|
-
: mu_(&mu) {
|
|
1161
|
-
this->mu_->LockWhen(cond);
|
|
1162
|
-
}
|
|
1163
|
-
|
|
1164
|
-
[[deprecated("Use the constructor that takes a reference instead")]]
|
|
1165
|
-
ABSL_REFACTOR_INLINE
|
|
1166
|
-
explicit ReleasableMutexLock(Mutex* absl_nonnull mu, const Condition& cond)
|
|
1167
|
-
ABSL_EXCLUSIVE_LOCK_FUNCTION(mu)
|
|
1168
|
-
: ReleasableMutexLock(*mu, cond) {}
|
|
1169
|
-
|
|
1170
|
-
~ReleasableMutexLock() ABSL_UNLOCK_FUNCTION() {
|
|
1171
|
-
if (this->mu_ != nullptr) {
|
|
1172
|
-
this->mu_->unlock();
|
|
1173
|
-
}
|
|
1174
|
-
}
|
|
1175
|
-
|
|
1176
|
-
void Release() ABSL_UNLOCK_FUNCTION();
|
|
1177
|
-
|
|
1178
|
-
private:
|
|
1179
|
-
Mutex* absl_nullable mu_;
|
|
1180
|
-
ReleasableMutexLock(const ReleasableMutexLock&) = delete;
|
|
1181
|
-
ReleasableMutexLock(ReleasableMutexLock&&) = delete;
|
|
1182
|
-
ReleasableMutexLock& operator=(const ReleasableMutexLock&) = delete;
|
|
1183
|
-
ReleasableMutexLock& operator=(ReleasableMutexLock&&) = delete;
|
|
1184
|
-
};
|
|
1185
|
-
|
|
1186
|
-
inline Mutex::Mutex() : mu_(0) {
|
|
1187
|
-
ABSL_TSAN_MUTEX_CREATE(this, __tsan_mutex_not_static);
|
|
1188
|
-
}
|
|
1189
|
-
|
|
1190
|
-
inline constexpr Mutex::Mutex(absl::ConstInitType) : mu_(0) {}
|
|
1191
|
-
|
|
1192
|
-
#if !defined(__APPLE__) && !defined(ABSL_BUILD_DLL)
|
|
1193
|
-
ABSL_ATTRIBUTE_ALWAYS_INLINE
|
|
1194
|
-
inline Mutex::~Mutex() { Dtor(); }
|
|
1195
|
-
#endif
|
|
1196
|
-
|
|
1197
|
-
#if defined(NDEBUG) && !defined(ABSL_HAVE_THREAD_SANITIZER) && \
|
|
1198
|
-
!defined(ABSL_BUILD_DLL)
|
|
1199
|
-
// Under NDEBUG and without TSAN, Dtor is normally fully inlined for
|
|
1200
|
-
// performance. However, when building Abseil as a shared library
|
|
1201
|
-
// (ABSL_BUILD_DLL), we must provide an out-of-line definition. This ensures the
|
|
1202
|
-
// Mutex::Dtor symbol is exported from the DLL, maintaining ABI compatibility
|
|
1203
|
-
// with clients that might be built in debug mode and thus expect the symbol.
|
|
1204
|
-
ABSL_ATTRIBUTE_ALWAYS_INLINE
|
|
1205
|
-
inline void Mutex::Dtor() {}
|
|
1206
|
-
#endif
|
|
1207
|
-
|
|
1208
|
-
inline CondVar::CondVar() : cv_(0) {}
|
|
1209
|
-
|
|
1210
|
-
// static
|
|
1211
|
-
template <typename T, typename ConditionMethodPtr>
|
|
1212
|
-
bool Condition::CastAndCallMethod(const Condition* absl_nonnull c) {
|
|
1213
|
-
T* object = static_cast<T*>(c->arg_);
|
|
1214
|
-
ConditionMethodPtr condition_method_pointer;
|
|
1215
|
-
c->ReadCallback(&condition_method_pointer);
|
|
1216
|
-
return (object->*condition_method_pointer)();
|
|
1217
|
-
}
|
|
1218
|
-
|
|
1219
|
-
// static
|
|
1220
|
-
template <typename T>
|
|
1221
|
-
bool Condition::CastAndCallFunction(const Condition* absl_nonnull c) {
|
|
1222
|
-
bool (*function)(T*);
|
|
1223
|
-
c->ReadCallback(&function);
|
|
1224
|
-
T* argument = static_cast<T*>(c->arg_);
|
|
1225
|
-
return (*function)(argument);
|
|
1226
|
-
}
|
|
1227
|
-
|
|
1228
|
-
template <typename T>
|
|
1229
|
-
inline Condition::Condition(
|
|
1230
|
-
bool (*absl_nonnull func)(T* absl_nullability_unknown),
|
|
1231
|
-
T* absl_nullability_unknown arg)
|
|
1232
|
-
: eval_(&CastAndCallFunction<T>),
|
|
1233
|
-
arg_(const_cast<void*>(static_cast<const void*>(arg))) {
|
|
1234
|
-
static_assert(sizeof(&func) <= sizeof(callback_),
|
|
1235
|
-
"An overlarge function pointer was passed to Condition.");
|
|
1236
|
-
StoreCallback(func);
|
|
1237
|
-
}
|
|
1238
|
-
|
|
1239
|
-
template <typename T, typename>
|
|
1240
|
-
inline Condition::Condition(
|
|
1241
|
-
bool (*absl_nonnull func)(T* absl_nullability_unknown),
|
|
1242
|
-
typename absl::type_identity<T>::type* absl_nullability_unknown
|
|
1243
|
-
arg)
|
|
1244
|
-
// Just delegate to the overload above.
|
|
1245
|
-
: Condition(func, arg) {}
|
|
1246
|
-
|
|
1247
|
-
template <typename T>
|
|
1248
|
-
inline Condition::Condition(
|
|
1249
|
-
T* absl_nonnull object,
|
|
1250
|
-
bool (absl::type_identity<T>::type::* absl_nonnull method)())
|
|
1251
|
-
: eval_(&CastAndCallMethod<T, decltype(method)>), arg_(object) {
|
|
1252
|
-
static_assert(sizeof(&method) <= sizeof(callback_),
|
|
1253
|
-
"An overlarge method pointer was passed to Condition.");
|
|
1254
|
-
StoreCallback(method);
|
|
1255
|
-
}
|
|
1256
|
-
|
|
1257
|
-
template <typename T>
|
|
1258
|
-
inline Condition::Condition(
|
|
1259
|
-
const T* absl_nonnull object,
|
|
1260
|
-
bool (absl::type_identity<T>::type::* absl_nonnull method)()
|
|
1261
|
-
const)
|
|
1262
|
-
: eval_(&CastAndCallMethod<const T, decltype(method)>),
|
|
1263
|
-
arg_(reinterpret_cast<void*>(const_cast<T*>(object))) {
|
|
1264
|
-
StoreCallback(method);
|
|
1265
|
-
}
|
|
1266
|
-
|
|
1267
|
-
// Register hooks for profiling support.
|
|
1268
|
-
//
|
|
1269
|
-
// The function pointer registered here will be called whenever a mutex is
|
|
1270
|
-
// contended. The callback is given the cycles for which waiting happened (as
|
|
1271
|
-
// measured by //absl/base/internal/cycleclock.h, and which may not
|
|
1272
|
-
// be real "cycle" counts.)
|
|
1273
|
-
//
|
|
1274
|
-
// There is no ordering guarantee between when the hook is registered and when
|
|
1275
|
-
// callbacks will begin. Only a single profiler can be installed in a running
|
|
1276
|
-
// binary; if this function is called a second time with a different function
|
|
1277
|
-
// pointer, the value is ignored (and will cause an assertion failure in debug
|
|
1278
|
-
// mode.)
|
|
1279
|
-
void RegisterMutexProfiler(void (*absl_nonnull fn)(int64_t wait_cycles));
|
|
1280
|
-
|
|
1281
|
-
// Register a hook for Mutex tracing.
|
|
1282
|
-
//
|
|
1283
|
-
// The function pointer registered here will be called whenever a mutex is
|
|
1284
|
-
// contended. The callback is given an opaque handle to the contended mutex,
|
|
1285
|
-
// an event name, and the number of wait cycles (as measured by
|
|
1286
|
-
// //absl/base/internal/cycleclock.h, and which may not be real
|
|
1287
|
-
// "cycle" counts.)
|
|
1288
|
-
//
|
|
1289
|
-
// The only event name currently sent is "slow release".
|
|
1290
|
-
//
|
|
1291
|
-
// This has the same ordering and single-use limitations as
|
|
1292
|
-
// RegisterMutexProfiler() above.
|
|
1293
|
-
void RegisterMutexTracer(void (*absl_nonnull fn)(const char* absl_nonnull msg,
|
|
1294
|
-
const void* absl_nonnull obj,
|
|
1295
|
-
int64_t wait_cycles));
|
|
1296
|
-
|
|
1297
|
-
// Register a hook for CondVar tracing.
|
|
1298
|
-
//
|
|
1299
|
-
// The function pointer registered here will be called here on various CondVar
|
|
1300
|
-
// events. The callback is given an opaque handle to the CondVar object and
|
|
1301
|
-
// a string identifying the event. This is thread-safe, but only a single
|
|
1302
|
-
// tracer can be registered.
|
|
1303
|
-
//
|
|
1304
|
-
// Events that can be sent are "Wait", "Unwait", "Signal wakeup", and
|
|
1305
|
-
// "SignalAll wakeup".
|
|
1306
|
-
//
|
|
1307
|
-
// This has the same ordering and single-use limitations as
|
|
1308
|
-
// RegisterMutexProfiler() above.
|
|
1309
|
-
void RegisterCondVarTracer(void (*absl_nonnull fn)(
|
|
1310
|
-
const char* absl_nonnull msg, const void* absl_nonnull cv));
|
|
1311
|
-
|
|
1312
|
-
// EnableMutexInvariantDebugging()
|
|
1313
|
-
//
|
|
1314
|
-
// Enable or disable global support for Mutex invariant debugging. If enabled,
|
|
1315
|
-
// then invariant predicates can be registered per-Mutex for debug checking.
|
|
1316
|
-
// See Mutex::EnableInvariantDebugging().
|
|
1317
|
-
void EnableMutexInvariantDebugging(bool enabled);
|
|
1318
|
-
|
|
1319
|
-
// When in debug mode, and when the feature has been enabled globally, the
|
|
1320
|
-
// implementation will keep track of lock ordering and complain (or optionally
|
|
1321
|
-
// crash) if a cycle is detected in the acquired-before graph.
|
|
1322
|
-
|
|
1323
|
-
// Possible modes of operation for the deadlock detector in debug mode.
|
|
1324
|
-
enum class OnDeadlockCycle {
|
|
1325
|
-
kIgnore, // Neither report on nor attempt to track cycles in lock ordering
|
|
1326
|
-
kReport, // Report lock cycles to stderr when detected
|
|
1327
|
-
kAbort, // Report lock cycles to stderr when detected, then abort
|
|
1328
|
-
};
|
|
1329
|
-
|
|
1330
|
-
// SetMutexDeadlockDetectionMode()
|
|
1331
|
-
//
|
|
1332
|
-
// Enable or disable global support for detection of potential deadlocks
|
|
1333
|
-
// due to Mutex lock ordering inversions. When set to 'kIgnore', tracking of
|
|
1334
|
-
// lock ordering is disabled. Otherwise, in debug builds, a lock ordering graph
|
|
1335
|
-
// will be maintained internally, and detected cycles will be reported in
|
|
1336
|
-
// the manner chosen here.
|
|
1337
|
-
void SetMutexDeadlockDetectionMode(OnDeadlockCycle mode);
|
|
1338
|
-
|
|
1339
|
-
ABSL_NAMESPACE_END
|
|
1340
|
-
} // namespace absl
|
|
1341
|
-
|
|
1342
|
-
// In some build configurations we pass --detect-odr-violations to the
|
|
1343
|
-
// gold linker. This causes it to flag weak symbol overrides as ODR
|
|
1344
|
-
// violations. Because ODR only applies to C++ and not C,
|
|
1345
|
-
// --detect-odr-violations ignores symbols not mangled with C++ names.
|
|
1346
|
-
// By changing our extension points to be extern "C", we dodge this
|
|
1347
|
-
// check.
|
|
1348
|
-
extern "C" {
|
|
1349
|
-
void ABSL_INTERNAL_C_SYMBOL(AbslInternalMutexYield)();
|
|
1350
|
-
} // extern "C"
|
|
1351
|
-
|
|
1352
|
-
#endif // ABSL_SYNCHRONIZATION_MUTEX_H_
|