[libcxx-commits] [libcxx] [libc++][test] adding yield in the lost wakeup test (PR #211261)

via libcxx-commits libcxx-commits at lists.llvm.org
Wed Jul 22 08:06:53 PDT 2026


https://github.com/huixie90 updated https://github.com/llvm/llvm-project/pull/211261

>From 7a4c60d7dd50a166679ba9aa694589b64058d753 Mon Sep 17 00:00:00 2001
From: Hui Xie <hui.xie1990 at gmail.com>
Date: Wed, 22 Jul 2026 14:36:40 +0100
Subject: [PATCH 1/2] [libc++][test] adding yield in the lost wakeup test

---
 .../atomics.types.operations.wait/lost_wakeup.pass.cpp           | 1 +
 1 file changed, 1 insertion(+)

diff --git a/libcxx/test/std/atomics/atomics.types.operations/atomics.types.operations.wait/lost_wakeup.pass.cpp b/libcxx/test/std/atomics/atomics.types.operations/atomics.types.operations.wait/lost_wakeup.pass.cpp
index 17ad72dd74866..fc96ea1a8f201 100644
--- a/libcxx/test/std/atomics/atomics.types.operations/atomics.types.operations.wait/lost_wakeup.pass.cpp
+++ b/libcxx/test/std/atomics/atomics.types.operations/atomics.types.operations.wait/lost_wakeup.pass.cpp
@@ -39,6 +39,7 @@ int main(int, char**) {
     auto notify = [&] {
       for (int i = 0; i < num_iterations; ++i) {
         while (waiter_ready.load() < num_waiters) {
+          std::this_thread::yield();
         }
         waiter_ready.store(0);
         state.fetch_add(1);

>From a77588ddb4811e5e0376c8b5eff0f60cbd38ba1a Mon Sep 17 00:00:00 2001
From: Hui Xie <hui.xie1990 at gmail.com>
Date: Wed, 22 Jul 2026 16:06:40 +0100
Subject: [PATCH 2/2] macos

---
 .../atomics.types.operations.wait/lost_wakeup.pass.cpp        | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/libcxx/test/std/atomics/atomics.types.operations/atomics.types.operations.wait/lost_wakeup.pass.cpp b/libcxx/test/std/atomics/atomics.types.operations/atomics.types.operations.wait/lost_wakeup.pass.cpp
index fc96ea1a8f201..70be9a4428c68 100644
--- a/libcxx/test/std/atomics/atomics.types.operations/atomics.types.operations.wait/lost_wakeup.pass.cpp
+++ b/libcxx/test/std/atomics/atomics.types.operations/atomics.types.operations.wait/lost_wakeup.pass.cpp
@@ -24,7 +24,7 @@ constexpr int num_waiters    = 8;
 constexpr int num_iterations = 10'000;
 
 int main(int, char**) {
-  for (int run = 0; run < 20; ++run) {
+  for (int run = 0; run < 10; ++run) {
     std::atomic<int> waiter_ready(0);
     std::atomic<int> state(0);
 
@@ -39,7 +39,9 @@ int main(int, char**) {
     auto notify = [&] {
       for (int i = 0; i < num_iterations; ++i) {
         while (waiter_ready.load() < num_waiters) {
+#if !defined(__APPLE__)
           std::this_thread::yield();
+#endif
         }
         waiter_ready.store(0);
         state.fetch_add(1);



More information about the libcxx-commits mailing list