summaryrefslogtreecommitdiffstats
path: root/src/main/java/derms/util/ThreadPool.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/derms/util/ThreadPool.java')
-rw-r--r--src/main/java/derms/util/ThreadPool.java22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/main/java/derms/util/ThreadPool.java b/src/main/java/derms/util/ThreadPool.java
new file mode 100644
index 0000000..33588ff
--- /dev/null
+++ b/src/main/java/derms/util/ThreadPool.java
@@ -0,0 +1,22 @@
+package derms.util;
+
+import java.time.Duration;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.TimeUnit;
+import java.util.logging.Logger;
+
+public class ThreadPool {
+ public static final Duration timeout = Duration.ofSeconds(1);
+
+ public static void shutDown(ExecutorService pool, Logger log) {
+ pool.shutdownNow();
+ try {
+ if (!pool.awaitTermination(timeout.toMillis(), TimeUnit.MILLISECONDS))
+ log.warning("Thread pool did not terminate after " + timeout);
+ } catch (InterruptedException e) {
+ log.warning("Interrupted while terminating thread pool: " + e.getMessage());
+ // Preserve interrupt status.
+ Thread.currentThread().interrupt();
+ }
+ }
+}