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