A point that AFAICT is not articulated in the article is why the two cached fields should be in their own dedicated cache line (e.g. why readIdxCached_ can not share the cache line with writeIdx_).
https://stackoverflow.com/questions/22766191/what-is-false-s...
https://en.cppreference.com/w/cpp/thread/hardware_destructiv...