[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