use three mirrored segments to make it safe to use a write pointer near the end of the second segment in the interval between decrementing the read pointer and decrementing the write pointer
use three mirrored segments to make it safe to use a write pointer near the end of the second segment in the interval between decrementing the read pointer and decrementing the write pointer
mikeash/MAMirroredQueue