code: @Override
      public final Iterator<E> iterator() {
          final long cIndex = lvConsumerIndex();
          final long pIndex = lvProducerIndex();
          
          return new WeakIterator(cIndex, pIndex);
      }
docs: Get an iterator for this queue. This method is thread safe.
  <p>
  The iterator provides a best-effort snapshot of the elements in the queue.
  The returned iterator is not guaranteed to return elements in queue order,
  and races with the consumer thread may cause gaps in the sequence of returned elements.
  Like {link #relaxedPoll}, the iterator may not immediately return newly inserted elements.
  
  @return The iterator.