NonBlockingReadActionImpl: revert to the last stable state due to test flakiness

GitOrigin-RevId: c19d5cca0367bed0c873b2604d1aed63c1a0ce29
This commit is contained in:
Peter Gromov
2020-06-10 21:48:45 +03:00
committed by intellij-monorepo-bot
parent c6082c3650
commit 400ce5fdfa
@@ -7,7 +7,6 @@ import com.intellij.concurrency.SensitiveProgressWrapper;
import com.intellij.diagnostic.ThreadDumper;
import com.intellij.ide.startup.ServiceNotReadyException;
import com.intellij.openapi.Disposable;
import com.intellij.openapi.application.Application;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.application.ModalityState;
import com.intellij.openapi.application.NonBlockingReadAction;
@@ -26,9 +25,7 @@ import com.intellij.openapi.progress.ProgressIndicator;
import com.intellij.openapi.progress.ProgressIndicatorProvider;
import com.intellij.openapi.progress.util.ProgressIndicatorUtils;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.project.impl.ProjectImpl;
import com.intellij.openapi.util.Disposer;
import com.intellij.openapi.util.Key;
import com.intellij.openapi.util.Pair;
import com.intellij.openapi.util.Ref;
import com.intellij.openapi.vfs.VirtualFile;
@@ -142,24 +139,9 @@ public class NonBlockingReadActionImpl<T> implements NonBlockingReadAction<T> {
*/
@NotNull
private NonBlockingReadAction<T> expireWithRWCompliantParent(@NotNull ComponentManager parent) {
if (parent instanceof ProjectImpl && parent.getUserData(TRACKED_PROJECT) == null) {
trackProjectDisposal((ProjectImpl)parent);
}
return expireWhen(() -> parent.isDisposed());
}
private static final Key<Boolean> TRACKED_PROJECT = Key.create("NBRA_TRACKED_PROJECT");
private static void trackProjectDisposal(@NotNull ProjectImpl project) {
synchronized (TRACKED_PROJECT) {
if (project.getUserData(TRACKED_PROJECT) != null) return;
project.putUserData(TRACKED_PROJECT, true);
Application app = ApplicationManager.getApplication();
Disposer.register(project.getEarlyDisposable(), () -> app.invokeLater(NonBlockingReadActionImpl::cleanupObsoleteTasks));
}
}
@Override
public NonBlockingReadAction<T> wrapProgress(@NotNull ProgressIndicator progressIndicator) {
LOG.assertTrue(myProgressIndicator == null, "Unspecified behaviour. Outer progress indicator is already set for the action.");
@@ -578,15 +560,6 @@ public class NonBlockingReadActionImpl<T> implements NonBlockingReadAction<T> {
}
}
private static void cleanupObsoleteTasks() {
for (NonBlockingReadActionImpl<?>.Submission task : ourTasks) {
task.checkObsolete();
}
for (NonBlockingReadActionImpl<?>.Submission task : ourTasksByEquality.values()) {
task.checkObsolete();
}
}
@TestOnly
public static void waitForAsyncTaskCompletion() {
assert !ApplicationManager.getApplication().isWriteAccessAllowed();