@Override
    public void drain(Consumer<E> c, WaitStrategy w, ExitCondition exit)
    {
        MessagePassingQueueUtil.drain(this, c, w, exit);
    }
{@inheritDoc}
<p>
Because return null indicates queue is empty we cannot simply rely on next element visibility for poll
and must test producer index when next element is not visible.
jctools-core/src/main/java/org/jctools/queues/MpmcArrayQueue.java