code: @SuppressWarnings("unchecked")
      @Override
      public E poll() {
          // local load of field to avoid repeated loads after volatile reads
          final AtomicReferenceArray<E> buffer = consumerBuffer;
          final long index = lpConsumerIndex();
          final long mask = consumerMask;
          final int offset = calcElementOffset(index, mask);
          // LoadLoad
          final Object e = lvElement(buffer, offset);
          boolean isNextBuffer = e == JUMP;
          if (null != e && !isNextBuffer) {
              // this ensures correctness on 32bit platforms
              soConsumerIndex(index + 1);
              soElement(buffer, offset, null);
              return (E) e;
          } else if (isNextBuffer) {
              return newBufferPoll(buffer, index);
          }
          return null;
      }
docs: {@inheritDoc}
  <p>
  This implementation is correct for single consumer thread use only.