void (@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); } } }