diff --git a/common/lockfree_queue.h b/common/lockfree_queue.h index 5713d6fa..35bf9161 100644 --- a/common/lockfree_queue.h +++ b/common/lockfree_queue.h @@ -578,7 +578,8 @@ class RingChannel : public QueueType { while (!push(x)) { Pause::pause(); } - queue_sem.signal(idler.load(std::memory_order_acquire)); + if (idler.load(std::memory_order_acquire)) + queue_sem.signal(1); } T recv() { T x;