@SuppressWarnings({"CastCanBeRemovedNarrowingVariableType", "unchecked"})
  public E relaxedPoll() {
    final E[] buffer = consumerBuffer;
    final long index = consumerIndex;
    final long mask = consumerMask;

    final long offset = modifiedCalcElementOffset(index, mask);
    Object e = lvElement(buffer, offset);// LoadLoad
    if (e == null) {
      return null;
    }
    if (e == JUMP) {
      final E[] nextBuffer = getNextBuffer(buffer, mask);
      return newBufferPoll(nextBuffer, index);
    }
    soElement(buffer, offset, null);
    soConsumerIndex(this, index + 2);
    return (E) e;
  }
@Test(dataProvider = "populated")
  public void relaxedPoll_whenPopulated(MpscGrowableArrayQueue<Integer> queue) {
    assertThat(queue.relaxedPoll()).isNotNull();
    assertThat(queue).hasSize(POPULATED_SIZE - 1);
  }