docs: public boolean offer(Object x, long timeout) throws InterruptedException {
  
          if (x == null) {
              throw new IllegalArgumentException();
          }
  
          // D220640: Next two lines pulled out of synchronization block:
          long start = (timeout <= 0) ? 0 : -1;
          long waitTime = timeout;
  
          // D312598 - begin
          boolean ret = false;
          while (true) {
              synchronized (lock) {
                  if (numberOfUsedSlots.get() < buffer.length) {
                      insert(x);
                      numberOfUsedSlots.getAndIncrement();
                      ret = true;
                  }
              }
  
              if (ret) {
                  notifyGet_();
                  return true;
              }
  
              if (start == -1)
                  start = System.currentTimeMillis();
  
              int spinctr = SPINS_PUT_;
              while (numberOfUsedSlots.get() >= buffer.length) {
                  if (waitTime <= 0) {
                      return false;
                  }
                  // busy wait
                  if (spinctr > 0) {
                      if (YIELD_PUT_)
                          Thread.yield();
                      spinctr--;
                  } else {
                      // block on lock
                      waitPut_(waitTime);
                  }
                  waitTime = timeout - (System.currentTimeMillis() - start);
              }
          }
          // D312598 - end
  
      }