code: public boolean blockUntilUnthrottled(long timeout, TimeUnit unit) {
          // sanity: if there's no latch, don't try to access it
          if (blockLatch == null) {
              return false;
          }
          // purposely allow interrupts as a means to let the caller check if it should exit its run loop
          try {
              return blockLatch.await(timeout, unit);
          } catch (InterruptedException e) {
              return false;
          }
      }
docs: Blocks until the blockLatch is released or until the timeout is exceeded.
  
  @param timeout the maximum time to wait
  @param unit    the time unit for the {@code timeout} argument.
  @return        {@code true} if the blockLatch was released before the {@code timeout} elapsed. and
  {@code false} if the {@code timeout} was exceeded before the blockLatch was released.