private boolean rescheduleIfNotIdle(@NotNull SuspendContextImpl suspendContext) {
    int delay = ApplicationManager.getApplication().isUnitTestMode() ? -1 : Registry.intValue("debugger.sync.commands.reschedule.delay");
    if (delay < 0 || myRetries-- <= 0) {
      return false;
    }
    DebugProcess process = suspendContext.getDebugProcess();
    DebuggerManagerThreadImpl managerThread = ((DebuggerManagerThreadImpl)process.getManagerThread());
    VirtualMachine virtualMachine = suspendContext.getVirtualMachine().getVirtualMachine();
    if (!(virtualMachine instanceof VirtualMachineImpl) ||
        !managerThread.hasAsyncCommands() && ((VirtualMachineImpl)virtualMachine).isIdle()) {
      return false;
    }
    else {
      // reschedule with a small delay
      hold();
      AppExecutorUtil.getAppScheduledExecutorService().schedule(() -> managerThread.schedule(this), delay, TimeUnit.MILLISECONDS);
      return true;
    }
  }
private boolean rescheduleIfNotIdle(@NotNull SuspendContextImpl suspendContext)