in src/main/java/org/apache/commons/io/file/PathUtils.java [1912:1937]
public static boolean waitFor(final Path file, final Duration timeout, final LinkOption... options) {
Objects.requireNonNull(file, "file");
final Instant finishInstant = Instant.now().plus(timeout);
boolean interrupted = false;
final long minSleepMillis = 100;
try {
while (!exists(file, options)) {
final Instant now = Instant.now();
if (now.isAfter(finishInstant)) {
return false;
}
try {
ThreadUtils.sleep(Duration.ofMillis(Math.min(minSleepMillis, finishInstant.minusMillis(now.toEpochMilli()).toEpochMilli())));
} catch (final InterruptedException ignore) {
interrupted = true;
} catch (final Exception ex) {
break;
}
}
} finally {
if (interrupted) {
Thread.currentThread().interrupt();
}
}
return exists(file, options);
}