in daemon/src/main/java/org/mvndaemon/mvnd/daemon/Server.java [361:392]
boolean awaitStop() {
stateLock.lock();
try {
while (true) {
try {
switch (getState()) {
case Idle:
case Busy:
LOGGER.debug("daemon is running. Sleeping until state changes.");
condition.await();
break;
case Canceled:
cancelNow();
break;
case Broken:
throw new IllegalStateException("This daemon is in a broken state.");
case StopRequested:
LOGGER.debug("daemon stop has been requested. Sleeping until state changes.");
condition.await();
break;
case Stopped:
LOGGER.debug("daemon has stopped.");
return true;
}
} catch (InterruptedException e) {
throw new DaemonException.InterruptedException(e);
}
}
} finally {
stateLock.unlock();
}
}