class ProcessWorker implements Worker {

  public void destroy() {
    // Experimentation shows we can't interrupt threads blocked waiting
    // on a live process stream, nor can we close that stream.
    //m_stdoutRedirector.stop();
    //m_stderrRedirector.stop();

    // Calling destroy sometimes stoves W2K in such a way that some types
    // of new process can't be launched. (Including Java, Cygwin processes).
    // Replicated with: JRockit 1.4.2_05, and SUN JRE's 1.4.2_05 and 1.5.0_03.
    // A brief sleep appears to be a workaround.

    try {
      Thread.sleep(100);
    }
    catch (InterruptedException e) {
      throw new UncheckedInterruptedException(e);
    }

    m_process.destroy();
  }

  public  ProcessWorker(WorkerIdentity workerIdentity,
                       CommandLine commandLine,
                       OutputStream outputStream,
                       OutputStream errorStream);

}