private static void disposeSafe(@NotNull Disposable task) {
    try {
      if (Disposer.isDisposed(task)) return;

      Disposer.dispose(task);
    }
    catch (Throwable t) {
      if (!(t instanceof ControlFlowException)) {
        LOG.warn("Failed to dispose task: " + t.getMessage(), t);
      }
    }
  }
private static void disposeSafe(@NotNull Disposable task)