code: private int offerSlowPath(long mask, long pIndex, long producerLimit) {
      int result;
      final long cIndex = lvConsumerIndex();
      long bufferCapacity = getCurrentBufferCapacity(mask);
      result = 0;// 0 - goto pIndex CAS
      if (cIndex + bufferCapacity > pIndex) {
        if (!casProducerLimit(producerLimit, cIndex + bufferCapacity)) {
          result = 1;// retry from top
        }
      }
      // full and cannot grow
      else if (availableInQueue(pIndex, cIndex) <= 0) {
        result = 2;// -> return false;
      }
      // grab index for resize -> set lower bit
      else if (casProducerIndex(pIndex, pIndex + 1)) {
        result = 3;// -> resize
      } else {
        result = 1;// failed resize attempt, retry from top
      }
      return result;
    }
docs: We do not inline resize into this method because we do not resize on fill.