From bbb164bda0b3f49a6ac4cd7e0faf6f1410734663 Mon Sep 17 00:00:00 2001 From: peter Date: Thu, 24 Mar 2016 08:07:09 +0100 Subject: [PATCH] Read/WriteAction: shorter calls, less stacktrace lines --- .../com/intellij/openapi/application/ReadAction.java | 11 ++++++++--- .../com/intellij/openapi/application/WriteAction.java | 11 ++++++++--- .../intention/impl/ShowIntentionActionsHandler.java | 2 +- 3 files changed, 17 insertions(+), 7 deletions(-) diff --git a/platform/core-api/src/com/intellij/openapi/application/ReadAction.java b/platform/core-api/src/com/intellij/openapi/application/ReadAction.java index 71ffeb490f88..c46c5567f38c 100644 --- a/platform/core-api/src/com/intellij/openapi/application/ReadAction.java +++ b/platform/core-api/src/com/intellij/openapi/application/ReadAction.java @@ -37,7 +37,7 @@ public abstract class ReadAction extends BaseActionRunnable { return ApplicationManager.getApplication().acquireReadActionLock(); } - public static void runReadAction(@NotNull ThrowableRunnable action) throws E { + public static void run(@NotNull ThrowableRunnable action) throws E { AccessToken token = start(); try { action.run(); @@ -46,8 +46,13 @@ public abstract class ReadAction extends BaseActionRunnable { } } - public static T runReadAction(@NotNull ThrowableComputable action) throws E { - return ApplicationManager.getApplication().runReadAction(action); + public static T compute(@NotNull ThrowableComputable action) throws E { + AccessToken token = start(); + try { + return action.compute(); + } finally { + token.finish(); + } } } diff --git a/platform/core-api/src/com/intellij/openapi/application/WriteAction.java b/platform/core-api/src/com/intellij/openapi/application/WriteAction.java index 6f046997fec6..5aa1a06ac9d1 100644 --- a/platform/core-api/src/com/intellij/openapi/application/WriteAction.java +++ b/platform/core-api/src/com/intellij/openapi/application/WriteAction.java @@ -76,7 +76,7 @@ public abstract class WriteAction extends BaseActionRunnable { return ApplicationManager.getApplication().acquireWriteActionLock(clazz); } - public static void runWriteAction(@NotNull ThrowableRunnable action) throws E { + public static void run(@NotNull ThrowableRunnable action) throws E { AccessToken token = start(); try { action.run(); @@ -85,7 +85,12 @@ public abstract class WriteAction extends BaseActionRunnable { } } - public static T runWriteAction(@NotNull ThrowableComputable action) throws E { - return ApplicationManager.getApplication().runWriteAction(action); + public static T compute(@NotNull ThrowableComputable action) throws E { + AccessToken token = start(); + try { + return action.compute(); + } finally { + token.finish(); + } } } diff --git a/platform/lang-impl/src/com/intellij/codeInsight/intention/impl/ShowIntentionActionsHandler.java b/platform/lang-impl/src/com/intellij/codeInsight/intention/impl/ShowIntentionActionsHandler.java index df681679cc3f..94aa2c74837e 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/intention/impl/ShowIntentionActionsHandler.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/intention/impl/ShowIntentionActionsHandler.java @@ -186,7 +186,7 @@ public class ShowIntentionActionsHandler implements CodeInsightActionHandler { Runnable r = () -> action.invoke(project, pair.second, pair.first); try { if (action.startInWriteAction()) { - WriteAction.runWriteAction(r::run); + WriteAction.run(r::run); } else { r.run(); }