void (@NotNull ProgressListener listener, @Nullable Disposable parentDisposable) { synchronized (myLock) { myListeners.add(listener); if (parentDisposable != null) { Disposer.register(parentDisposable, () -> removeProgressIndicatorListener(listener)); } if (isRunning()) { Set<ProgressKey> keys = getRunningKeys(); ApplicationManager.getApplication().invokeLater(() -> listener.progressStarted(keys)); } } }