@Override
        protected void action() {
          if (myObsolete.get()) return;
          VirtualMachineProxyImpl virtualMachine = myThread.getVirtualMachine();
          virtualMachine.suspend();
          try {
            if (myObsolete.get()) return;
            if (myThreadBlockedMonitor.myIsInResumeAllMode) {
              myProcess.logError("Another invocation on suspend-all thread while the previous one was not over yet");
              return;
            }
            ThreadReference threadReference = myThread.getThreadReference();
            if (threadReference.suspendCount() == 1) { // extra check for invocation in progress
              // resume all but this
              LOG.warn("Resume other threads because long invocation detected on " + myThread);
              myAllResumed.set(true);
              threadReference.suspend();
              virtualMachine.resume();
            }
            else {
              myProcess.logError("Blocked thread detected during invocation on " + myThread);
            }
          }
          finally {
            virtualMachine.resume();
          }
        }
@Override
        protected void action()