docs: @Override
      public boolean offer(final E e) {
          if (null == e) {
              throw new NullPointerException();
          }
  
          // use a cached view on consumer index (potentially updated in loop)
          final int mask = this.mask;
          final long capacity = mask + 1;
          long consumerIndexCache = lvConsumerIndexCache(); // LoadLoad
          long currentProducerIndex;
          do {
              currentProducerIndex = lvProducerIndex(); // LoadLoad
              final long wrapPoint = currentProducerIndex - capacity;
              if (consumerIndexCache <= wrapPoint) {
                  final long currHead = lvConsumerIndex(); // LoadLoad
                  if (currHead <= wrapPoint) {
                      return false; // FULL :(
                  } else {
                      // update shared cached value of the consumerIndex
                      svConsumerIndexCache(currHead); // StoreLoad
                      // update on stack copy, we might need this value again if we lose the CAS.
                      consumerIndexCache = currHead;
                  }
              }
          } while (!casProducerIndex(currentProducerIndex, currentProducerIndex + 1));
          /*
           * NOTE: the new producer index value is made visible BEFORE the element in the array. If we relied on
           * the index visibility to poll() we would need to handle the case where the element is not visible.
           */
  
          // Won CAS, move on to storing
          final int offset = calcElementOffset(currentProducerIndex, mask);
          soElement(offset, e); // StoreStore
          return true; // AWESOME :)
      }