public boolean await(final long timeout, final TimeUnit unit) throws InterruptedException {
    stopper.checkCancelInProgress(null);
    long timeoutNanos = unit.toNanos(timeout);
    if (timeoutNanos > retryIntervalNanos) {
      return awaitWithCheck(timeoutNanos);
    }
    return delegate.await(timeoutNanos, NANOSECONDS);
  }
@param stopper the CancelCriterion to check before awaiting
@param count the number of times {@link #countDown} must be invoked before threads can pass
       through {@link #await()}

@throws IllegalArgumentException if {@code count} is negative
geode-core/src/main/java/org/apache/geode/internal/util/concurrent/StoppableCountDownLatch.java