private void resumeThreadsUnderEvaluationAndExplicitlyResumedAfterPause(@NotNull SuspendContextImpl suspendAllContext) {
    for (SuspendContextImpl suspendContext : mySuspendManager.getEventContexts()) {
      EvaluationContextImpl evaluationContext = suspendContext.getEvaluationContext();
      if (evaluationContext != null) {
        ThreadReferenceProxyImpl threadForEvaluation = evaluationContext.getThreadForEvaluation();
        if (threadForEvaluation == null) {
          logError("Thread for evaluation in evaluating " + suspendContext + " is null");
          continue;
        }
        if (threadForEvaluation == suspendAllContext.getEventThread()) {
          logError("Paused suspend-all context " + suspendAllContext + " for evaluating context " + suspendContext);
          continue;
        }
        if (suspendAllContext.suspends(threadForEvaluation)) {
          mySuspendManager.resumeThread(suspendAllContext, threadForEvaluation);
        }
      }
    }
    List<ThreadReferenceProxyImpl> threads = new ArrayList<>(mySuspendManager.myExplicitlyResumedThreads);
    for (ThreadReferenceProxyImpl thread : threads) {
      if (thread == suspendAllContext.getEventThread()) {
        // It seems, it is stopped on the breakpoint on this explicitly resumed thread
        mySuspendManager.myExplicitlyResumedThreads.remove(thread);
        continue;
      }
      if (!suspendAllContext.suspends(thread)) { // the previous loop can theoretically resume it already
        mySuspendManager.resumeThread(suspendAllContext, thread);
      }
    }
  }
private void resumeThreadsUnderEvaluationAndExplicitlyResumedAfterPause(@NotNull SuspendContextImpl suspendAllContext)