Пример #1
0
  /**
   * Schedules the given runnable with the given delay directly on a worker of this scheduler.
   *
   * <p>Override this method to provide an efficient implementation that, for example, doesn't have
   * extra tracking structures for such one-shot executions.
   *
   * @param run
   * @param delay
   * @param unit
   * @return
   */
  public Disposable scheduleDirect(Runnable run, long delay, TimeUnit unit) {
    Worker w = createWorker();

    Runnable decoratedRun = RxJavaPlugins.onSchedule(run);

    w.schedule(
        () -> {
          try {
            decoratedRun.run();
          } finally {
            w.dispose();
          }
        },
        delay,
        unit);

    return w;
  }