code: public ScheduledFuture<?> runOnExpiration(Runnable task, ScheduledExecutorService scheduler) {
      checkNotNull(task, "task");
      checkNotNull(scheduler, "scheduler");
      return scheduler.schedule(task, deadlineNanos - ticker.read(), TimeUnit.NANOSECONDS);
    }
docs: Schedule a task to be run when the deadline expires.
  @param task to run on expiration
  @param scheduler used to execute the task
  @return {@link ScheduledFuture} which can be used to cancel execution of the task