[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