summaryrefslogtreecommitdiffstats
path: root/src/main/java/derms/util
diff options
context:
space:
mode:
authorSam Anthony <sam@samanthony.xyz>2024-11-22 12:39:53 -0500
committerSam Anthony <sam@samanthony.xyz>2024-11-22 12:39:53 -0500
commit0912e30fb375f60bade22fd8cf7331e1b8d77659 (patch)
treea2a99ac1a095f65b37a92c4ec1acf05bf1353a3d /src/main/java/derms/util
parent43549dee0a8214c1bb02c874dcfd7ba37a8ef310 (diff)
downloadsoen423-0912e30fb375f60bade22fd8cf7331e1b8d77659.zip
ReliableUnicastReceiver
Diffstat (limited to 'src/main/java/derms/util')
-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();
+ }
+ }
+}