code: private final void sleepTill(long future) throws InterruptedException {
          long milliseconds = future - logicalClockMillis();
          if (milliseconds > 0) {
              Thread.sleep(milliseconds);
          }
      }
docs: /*!
  Sleeps till a future time.