@Override
    public void run() {
      synchronized (this) {
        while (myRequestFuture == null) {
          try {
            wait();
          }
          catch (InterruptedException ignore) {
          }
        }
      }
      ourWorkerRequest.set(this);
      try {
        ConcurrencyUtil.runUnderThreadName("DebuggerManagerThread", () -> {
          myOwner.run(this);
        });
      }
      finally {
        ourWorkerRequest.remove();
        boolean b = Thread.interrupted(); // reset interrupted status to return into pool
      }
    }
@Override
    public void run()