public final class SingletonTask extends Object
A task that can be scheduled for a run and is guaranteed to never run concurrently, regardless of the thread pool it's submitted to.
  • Constructor Details

  • Method Details

    • toString

      public String toString()
      toString in class Object
    • ensureScheduled

      public void ensureScheduled()
      Ensures the task will run in the future.
      • If the task is neither scheduled nor running, this schedules the task for execution.
      • If the task is already scheduled but not running, this does nothing: the task remains scheduled.
      • If the task is running: the task execution continues and will trigger re-scheduling when it finishes.
    • completion

      public CompletableFuture<?> completion()
      A future that completes when all works submitted to the executor so far are completely executed. Works submitted to the executor after entering this method may delay the wait.
    • stop

      public void stop()
      Stop the task.

      Callers must call this as the very last method on this object; any concurrent call may lead to unpredictable results.