From 85d6edb26577a75940c9d691e6a178726cdb066b Mon Sep 17 00:00:00 2001 From: Jonas Devlieghere Date: Wed, 4 Sep 2019 19:36:29 +0000 Subject: [PATCH] Revert "[test] Address TestConcurrentMany*.py flakiness on macOS" This reverts my change to pseudo_barrier.h which isn't necessary anymore after Fred's fix to debugserver and caused TestThreadStepOut to fail. llvm-svn: 370963 --- .../Python/lldbsuite/test/make/pseudo_barrier.h | 25 ++++++++++++++-------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/lldb/packages/Python/lldbsuite/test/make/pseudo_barrier.h b/lldb/packages/Python/lldbsuite/test/make/pseudo_barrier.h index 5a6b045..e4066b7 100644 --- a/lldb/packages/Python/lldbsuite/test/make/pseudo_barrier.h +++ b/lldb/packages/Python/lldbsuite/test/make/pseudo_barrier.h @@ -1,14 +1,21 @@ #include -#include + +// Note that although hogging the CPU while waiting for a variable to change +// would be terrible in production code, it's great for testing since it avoids +// a lot of messy context switching to get multiple threads synchronized. typedef std::atomic pseudo_barrier_t; -static inline void pseudo_barrier_wait(pseudo_barrier_t &barrier) { - --barrier; - while (barrier > 0) - std::this_thread::yield(); -} +#define pseudo_barrier_wait(barrier) \ + do \ + { \ + --(barrier); \ + while ((barrier).load() > 0) \ + ; \ + } while (0) -static inline void pseudo_barrier_init(pseudo_barrier_t &barrier, int count) { - barrier = count; -} +#define pseudo_barrier_init(barrier, count) \ + do \ + { \ + (barrier) = (count); \ + } while (0) -- 2.7.4