From 1d86e907c021bd13217c1bc2153886b4142cc090 Mon Sep 17 00:00:00 2001 From: Semyon Proshev Date: Mon, 26 Jul 2021 20:03:30 +0300 Subject: [PATCH] Move computing source position to pooled thread to avoid slowing down EDT (EA-348157) GitOrigin-RevId: 7de0a4c1bbd951eded5a80564767069f016d9d95 --- .../python/debugger/PyDebugValue.java | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/python/pydevSrc/com/jetbrains/python/debugger/PyDebugValue.java b/python/pydevSrc/com/jetbrains/python/debugger/PyDebugValue.java index 2db5c79388af..93bcf74fc542 100644 --- a/python/pydevSrc/com/jetbrains/python/debugger/PyDebugValue.java +++ b/python/pydevSrc/com/jetbrains/python/debugger/PyDebugValue.java @@ -6,6 +6,7 @@ import com.google.common.collect.ImmutableMap; import com.google.common.collect.Maps; import com.intellij.icons.AllIcons; import com.intellij.openapi.application.ApplicationManager; +import com.intellij.openapi.application.ReadAction; import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.util.NlsSafe; import com.intellij.xdebugger.frame.*; @@ -555,12 +556,18 @@ public class PyDebugValue extends XNamedValue { @Override public void computeSourcePosition(@NotNull XNavigatable navigatable) { - if (myParent == null) { - navigatable.setSourcePosition(myFrameAccessor.getSourcePositionForName(myName, null)); - } - else { - navigatable.setSourcePosition(myFrameAccessor.getSourcePositionForName(myName, myParent.getDeclaringType())); - } + ApplicationManager.getApplication().executeOnPooledThread( + () -> ReadAction.run( + () -> { + if (myParent == null) { + navigatable.setSourcePosition(myFrameAccessor.getSourcePositionForName(myName, null)); + } + else { + navigatable.setSourcePosition(myFrameAccessor.getSourcePositionForName(myName, myParent.getDeclaringType())); + } + } + ) + ); } @Override