I tried to use the new RingBuffer class and found that it does not work correctly:
The push methods never return false when the reader position is at 0. The check
if (pos == (readPosition.load () - 1)) return false; // full
is not correct and will never return false. Is this really the intended behavior!?