@Override
  protected void waitForProcess() {
    int exitCode;
    try {
      while (!mySteamSemaphore.tryAcquire(2, 50, TimeUnit.MILLISECONDS)) {
        ProgressManager.checkCanceled();
      }
      while (!myProcess.waitFor(50, TimeUnit.MILLISECONDS)) {
        ProgressManager.checkCanceled();
      }
      exitCode = myProcess.exitValue();
    }
    catch (InterruptedException e) {
      if (LOG.isDebugEnabled()) {
        LOG.debug("Ignoring process exception: ", e);
      }
      exitCode = 255;
    }
    OUTPUT_LOG.debug(String.format("%s %% %s terminated (%s)", getCommand(), this.hashCode(), exitCode));
    setExitCode(exitCode);
    listeners().processTerminated(exitCode);
  }
@Override
  protected void waitForProcess()