in src/main/java/org/apache/commons/exec/Watchdog.java [155:176]
public void run() {
final long startTimeMillis = System.currentTimeMillis();
boolean isWaiting;
synchronized (this) {
long timeLeftMillis = timeoutMillis - (System.currentTimeMillis() - startTimeMillis);
isWaiting = timeLeftMillis > 0;
while (!stopped && isWaiting) {
try {
wait(timeLeftMillis);
} catch (final InterruptedException ignore) {
// ignore
}
timeLeftMillis = timeoutMillis - (System.currentTimeMillis() - startTimeMillis);
isWaiting = timeLeftMillis > 0;
}
}
// notify the listeners outside of the synchronized block (see EXEC-60)
if (!isWaiting) {
fireTimeoutOccured();
}
}