work-stealing-queue
work-stealing-queue copied to clipboard
Avoids false sharing between _top and _bottom
_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.
Looks kinda wasteful imo.. why not at least include the atomic pointer & vector in between top & bottom?