work-stealing-queue icon indicating copy to clipboard operation
work-stealing-queue copied to clipboard

Avoids false sharing between _top and _bottom

Open SirLynix opened this issue 2 years ago • 1 comments

_top and _bottom can see their values modified by multiple threads at the same time, leading to false sharing. This can be avoided at the cost of a larger memory footprint by aligning them to the cacheline.

Note that even though std::hardware_destructive_interference_size is C++17, not all compilers implement it, so I added a preprocessor check and fallback on the common 64 cacheline size if not present.

SirLynix avatar Feb 01 '24 10:02 SirLynix

Looks kinda wasteful imo.. why not at least include the atomic pointer & vector in between top & bottom?

n00bmind avatar Nov 12 '25 12:11 n00bmind