diff --git a/include/silk/fibers/blocking-queue.h b/include/silk/fibers/blocking-queue.h index d52cad3..2d36fce 100644 --- a/include/silk/fibers/blocking-queue.h +++ b/include/silk/fibers/blocking-queue.h @@ -113,8 +113,12 @@ class FiberBlockingQueue private: BoundedQueue queue; - FiberFutex spaceAvailable; - FiberFutex itemAvailable; + + /** Posted by dequeue, read by every enqueue; cache-line isolated from dequeuePos and itemAvailable. */ + alignas(kCacheLineSize) FiberFutex spaceAvailable; + + /** Posted by every enqueue, waited by dequeue; isolated so producer posts never invalidate the consumer's lines. */ + alignas(kCacheLineSize) FiberFutex itemAvailable; }; } // namespace silk