removing TransactionKind, step 1: from submitTransactionAndWait

This commit is contained in:
peter
2016-04-04 16:53:47 +02:00
parent 99bb53c9f6
commit ccc133af53
7 changed files with 14 additions and 12 deletions
@@ -38,7 +38,10 @@ import com.intellij.ide.PowerSaveMode;
import com.intellij.ide.file.BatchFileChangeListener;
import com.intellij.openapi.Disposable;
import com.intellij.openapi.actionSystem.CommonDataKeys;
import com.intellij.openapi.application.*;
import com.intellij.openapi.application.Application;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.application.PathManager;
import com.intellij.openapi.application.TransactionGuard;
import com.intellij.openapi.compiler.CompilationStatusListener;
import com.intellij.openapi.compiler.CompileContext;
import com.intellij.openapi.compiler.CompilerPaths;
@@ -186,7 +189,7 @@ public class BuildManager implements Disposable {
@Override
public void runTask() {
if (shouldSaveDocuments()) {
TransactionGuard.getInstance().submitTransactionAndWait(TransactionKind.ANY_CHANGE, () ->
TransactionGuard.getInstance().submitTransactionAndWait(() ->
((FileDocumentManagerImpl)FileDocumentManager.getInstance()).saveAllDocuments(false));
}
}
@@ -755,7 +758,7 @@ public class BuildManager implements Disposable {
// ensure project model is saved on disk, so that automake sees the latest model state.
// For ordinary make all project, app settings and unsaved docs are always saved before build starts.
try {
TransactionGuard.getInstance().submitTransactionAndWait(TransactionKind.ANY_CHANGE, project::save);
TransactionGuard.getInstance().submitTransactionAndWait(project::save);
}
catch (Throwable e) {
LOG.info(e);
@@ -136,7 +136,7 @@ public abstract class TransactionGuard {
* @see #submitMergeableTransaction(Disposable, TransactionKind, Runnable)
* @throws ProcessCanceledException if current thread is interrupted
*/
public abstract void submitTransactionAndWait(@NotNull TransactionKind kind, @NotNull Runnable transaction) throws ProcessCanceledException;
public abstract void submitTransactionAndWait(@NotNull Runnable transaction) throws ProcessCanceledException;
/**
* A synchronous version of {@link #submitMergeableTransaction(Disposable, TransactionKind, Runnable)}.
@@ -47,7 +47,7 @@ public abstract class WriteAction<T> extends BaseActionRunnable<T> {
LOG.error("Must not start write action from within read action in the other thread - deadlock is coming");
}
TransactionGuard.getInstance().submitTransactionAndWait(TransactionKind.ANY_CHANGE, new Runnable() {
TransactionGuard.getInstance().submitTransactionAndWait(new Runnable() {
@Override
public void run() {
AccessToken token = start(WriteAction.this.getClass());
@@ -83,7 +83,7 @@ public abstract class WriteCommandAction<T> extends BaseActionRunnable<T> {
performWriteCommandAction(result);
} else {
try {
TransactionGuard.getInstance().submitTransactionAndWait(TransactionKind.ANY_CHANGE, new Runnable() {
TransactionGuard.getInstance().submitTransactionAndWait(new Runnable() {
@Override
public void run() {
performWriteCommandAction(result);
@@ -201,10 +201,10 @@ public class TransactionGuardImpl extends TransactionGuard {
}
@Override
public void submitTransactionAndWait(@NotNull TransactionKind kind, @NotNull final Runnable runnable) throws ProcessCanceledException {
public void submitTransactionAndWait(@NotNull final Runnable runnable) throws ProcessCanceledException {
Application app = ApplicationManager.getApplication();
if (app.isDispatchThread()) {
Transaction transaction = new Transaction(runnable, getCurrentMergeableTransaction(), kind, app);
Transaction transaction = new Transaction(runnable, getCurrentMergeableTransaction(), TransactionKind.ANY_CHANGE, app);
if (!canRunTransactionNow(transaction, true)) {
throw new AssertionError("Cannot run synchronous submitTransactionAndWait from invokeLater. " +
"Please use asynchronous submit*Transaction. " +
@@ -218,7 +218,7 @@ public class TransactionGuardImpl extends TransactionGuard {
final Semaphore semaphore = new Semaphore();
semaphore.down();
final Throwable[] exception = {null};
submitMergeableTransaction(Disposer.newDisposable("never disposed"), kind, new Runnable() {
submitMergeableTransaction(Disposer.newDisposable("never disposed"), TransactionKind.ANY_CHANGE, new Runnable() {
@Override
public void run() {
try {
@@ -21,7 +21,6 @@ import com.intellij.notification.NotificationType;
import com.intellij.notification.Notifications;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.application.TransactionGuard;
import com.intellij.openapi.application.TransactionKind;
import com.intellij.openapi.components.State;
import com.intellij.openapi.components.Storage;
import com.intellij.openapi.diagnostic.Logger;
@@ -123,7 +122,7 @@ public class ModuleManagerComponent extends ModuleManagerImpl {
@Override
protected void fireModulesAdded() {
for (final Module module : myModuleModel.myModules.values()) {
TransactionGuard.getInstance().submitTransactionAndWait(TransactionKind.ANY_CHANGE, () -> fireModuleAddedInWriteAction(module));
TransactionGuard.getInstance().submitTransactionAndWait(() -> fireModuleAddedInWriteAction(module));
}
}
@@ -379,7 +379,7 @@ public class ProjectManagerImpl extends ProjectManagerEx implements Disposable {
// Startup activities (e.g. the one in FileBasedIndexProjectHandler) have scheduled dumb mode to begin "later"
// Now we schedule-and-wait to the same event queue to guarantee that the dumb mode really begins now:
// Post-startup activities should not ever see unindexed and at the same time non-dumb state
TransactionGuard.getInstance().submitTransactionAndWait(TransactionKind.ANY_CHANGE, startupManager::startCacheUpdate);
TransactionGuard.getInstance().submitTransactionAndWait(startupManager::startCacheUpdate);
startupManager.runPostStartupActivitiesFromExtensions();