diff options
| author | Sam Anthony <sam@samanthony.xyz> | 2024-11-22 12:39:53 -0500 |
|---|---|---|
| committer | Sam Anthony <sam@samanthony.xyz> | 2024-11-22 12:39:53 -0500 |
| commit | 0912e30fb375f60bade22fd8cf7331e1b8d77659 (patch) | |
| tree | a2a99ac1a095f65b37a92c4ec1acf05bf1353a3d /src/main/java/derms/util | |
| parent | 43549dee0a8214c1bb02c874dcfd7ba37a8ef310 (diff) | |
| download | soen423-0912e30fb375f60bade22fd8cf7331e1b8d77659.zip | |
ReliableUnicastReceiver
Diffstat (limited to 'src/main/java/derms/util')
| -rw-r--r-- | src/main/java/derms/util/ThreadPool.java | 22 |
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(); + } + } +} |