@Override
  public void waitForConnect() throws Exception {
    if (myDebugServerSocket != null) {
      //noinspection SocketOpenedButNotSafelyClosed
      final Socket socket = myServerSocket.accept();

      ApplicationManager.getApplication().executeOnPooledThread(() -> {
        try {
          //do we need any synchronization here with myMainDebugger.waitForConnect() ??? TODO
          sendDebuggerPort(socket, myDebugServerSocket, myDebugProcess);
        }
        catch (Exception e) {
          throw new RuntimeException(e);
        }
      });
    }

    myMainDebugger.waitForConnect();

    disposeAcceptor();

    myDebugProcessAcceptor = new DebuggerProcessAcceptor(this, myServerSocket);
    ApplicationManager.getApplication().executeOnPooledThread(myDebugProcessAcceptor);
  }
@Override
  public void waitForConnect()