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..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 waiter_ready(0); std::atomic state(0); @@ -39,6 +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);