abort plotting on dashboards

This commit is contained in:
2023-03-19 09:16:50 +01:00
parent 6d2e8da805
commit a3aa62aee2
6 changed files with 100 additions and 23 deletions

View File

@@ -1,5 +1,7 @@
package org.lucares.pdb.api;
import java.util.concurrent.TimeUnit;
public class AbortException extends RuntimeException {
private static final long serialVersionUID = 7614132985675048490L;
@@ -29,4 +31,18 @@ public class AbortException extends RuntimeException {
}
}
public static void sleepAbortibly(final long millis) throws AbortException {
final long deadline = System.currentTimeMillis() + millis;
while (System.currentTimeMillis() < deadline) {
try {
TimeUnit.MILLISECONDS.sleep(Math.min(10, deadline - System.currentTimeMillis()));
} catch (final InterruptedException e) {
Thread.currentThread().interrupt();
throw new AbortException();
}
AbortException.abortIfInterrupted();
}
}
}