Move computing source position to pooled thread to avoid slowing down EDT (EA-348157)

GitOrigin-RevId: 7de0a4c1bbd951eded5a80564767069f016d9d95
This commit is contained in:
Semyon Proshev
2021-07-27 10:27:03 +00:00
committed by intellij-monorepo-bot
parent c591a0682a
commit 1d86e907c0
@@ -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