public void stop() { synchronized (lock) { if (state != State.STARTED) { log.debugf("Attempted to stop already-stopping or down process '%s'", processName); return; } log.stoppingProcess(processName); stopRequested = true; StreamUtils.safeClose(stdin); state = State.STOPPING; } }
public void shutdown() { synchronized (lock) { if(shutdown) { return; } shutdown = true; if (state == State.STARTED) { log.stoppingProcess(processName); stopRequested = true; StreamUtils.safeClose(stdin); state = State.STOPPING; } else if (state == State.STOPPING) { return; } else { new Thread() { @Override public void run() { processController.removeProcess(processName); } }.start(); } } }