@Override
  public void computeChildren(final @NotNull XCompositeNode node) {
    if (node.isObsolete()) return;
    myDebugProcess.setCurrentRootNode(node);
    ApplicationManager.getApplication().executeOnPooledThread(() -> {
      try {
        boolean cached = myDebugProcess.isFrameCached(this);
        XValueChildrenList values = myDebugProcess.loadFrame(this);
        if (!node.isObsolete()) {
          addChildren(node, values);
        }
        if (values != null && !cached) {
          PyDebugValue.getAsyncValues(this, myDebugProcess, values);
        }
      }
      catch (PyDebuggerException e) {
        if (!node.isObsolete()) {
          node.setErrorMessage(PyBundle.message("debugger.stack.frame.unable.to.display.frame.variables"));
        }
        LOG.warn(e);
      }
    });
  }
@Override
  public void computeChildren(final @NotNull XCompositeNode node)