diff --git a/platform/vcs-impl/src/com/intellij/lifecycle/PeriodicalTasksCloser.java b/platform/vcs-impl/src/com/intellij/lifecycle/PeriodicalTasksCloser.java index 2922528d7f90..1f45b6f6a853 100644 --- a/platform/vcs-impl/src/com/intellij/lifecycle/PeriodicalTasksCloser.java +++ b/platform/vcs-impl/src/com/intellij/lifecycle/PeriodicalTasksCloser.java @@ -56,12 +56,13 @@ public class PeriodicalTasksCloser implements ProjectManagerListener { return ServiceManager.getService(project, PeriodicalTasksCloser.class); } - public void register(final String name, final Runnable runnable) { + public boolean register(final String name, final Runnable runnable) { synchronized (ourLock) { if (Boolean.FALSE.equals(myStates.get(myProject))) { - return; + return false; } myInterrupters.add(new Pair(name, runnable)); + return true; } } diff --git a/platform/vcs-impl/src/com/intellij/lifecycle/SlowlyClosingAlarm.java b/platform/vcs-impl/src/com/intellij/lifecycle/SlowlyClosingAlarm.java index e15cab7c6fd9..164c181955fe 100644 --- a/platform/vcs-impl/src/com/intellij/lifecycle/SlowlyClosingAlarm.java +++ b/platform/vcs-impl/src/com/intellij/lifecycle/SlowlyClosingAlarm.java @@ -80,7 +80,7 @@ public class SlowlyClosingAlarm implements AtomicSectionsAware, Disposable { myLock = new Object(); myFutureList = new ArrayList>(); Disposer.register(project, this); - PeriodicalTasksCloser.getInstance(project).register(name, new Runnable() { + myDisposeStarted = ! PeriodicalTasksCloser.getInstance(project).register(name, new Runnable() { public void run() { waitAndInterrupt(ProgressManager.getInstance().getProgressIndicator()); }