[libcxx-commits] [libcxx] c58675e - [libc++] Make atomic contention tables constinit (#207456)
via libcxx-commits
libcxx-commits at lists.llvm.org
Mon Jul 6 07:43:09 PDT 2026
Author: Louis Dionne
Date: 2026-07-06T10:43:04-04:00
New Revision: c58675e91042e7052870675aeaf2aca963e11376
URL: https://github.com/llvm/llvm-project/commit/c58675e91042e7052870675aeaf2aca963e11376
DIFF: https://github.com/llvm/llvm-project/commit/c58675e91042e7052870675aeaf2aca963e11376.diff
LOG: [libc++] Make atomic contention tables constinit (#207456)
Added:
Modified:
libcxx/src/atomic.cpp
Removed:
################################################################################
diff --git a/libcxx/src/atomic.cpp b/libcxx/src/atomic.cpp
index ae79ac7f87965..53aec09dfc2a0 100644
--- a/libcxx/src/atomic.cpp
+++ b/libcxx/src/atomic.cpp
@@ -422,7 +422,7 @@ struct alignas(
constexpr __contention_state_native() : __waiter_count(0) {}
};
-static __contention_state_native __contention_table_native[__contention_table_size];
+static constinit __contention_state_native __contention_table_native[__contention_table_size];
static __cxx_atomic_contention_t* __get_native_waiter_count(void const* p) {
return &__contention_table_native[__contention_hasher(p) & (__contention_table_size - 1)].__waiter_count;
@@ -438,7 +438,7 @@ struct alignas(
constexpr __contention_state_global() : __waiter_count(0), __platform_state(0) {}
};
-static __contention_state_global __contention_table_global[__contention_table_size];
+static constinit __contention_state_global __contention_table_global[__contention_table_size];
static __contention_state_global* __get_global_contention_state(void const* p) {
return &__contention_table_global[__contention_hasher(p) & (__contention_table_size - 1)];
More information about the libcxx-commits
mailing list