code: private void updateTokenWaitTime(long waitForMillis) {
      final long newTime = millisFromNow(waitForMillis);
  
      boolean done;
      do {
        long oldTime = tokenWaitUntil.get();
        // If the new wait until time exceeds current one, update it; otherwise just skip the loop.
        if (oldTime < newTime) {
          done = tokenWaitUntil.compareAndSet(oldTime, newTime);
        } else {
          done = true;
        }
      } while (!done);
    }
docs: Update the wait time for TOKEN scope.
  
  @param waitForMillis the wait time in milliseconds