boolean (ProgressIndicator current) { if (current == null) { current = ProgressIndicatorProvider.getGlobalProgressIndicator(); } if (current == null || !myProgresses.contains(current)) { return false; } if (myProgressesInNonSuspendableSections.containsKey(current)) { return false; } if (isCurrentThreadHoldingKnownLocks()) { return false; } synchronized (myLock) { while (mySuspended) { try { myLock.wait(10000); } catch (InterruptedException ignore) { } } return true; } }