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/net/runicast/ReliableUnicastSender.java | |
| parent | 43549dee0a8214c1bb02c874dcfd7ba37a8ef310 (diff) | |
| download | soen423-0912e30fb375f60bade22fd8cf7331e1b8d77659.zip | |
ReliableUnicastReceiver
Diffstat (limited to 'src/main/java/derms/net/runicast/ReliableUnicastSender.java')
| -rw-r--r-- | src/main/java/derms/net/runicast/ReliableUnicastSender.java | 15 |
1 files changed, 2 insertions, 13 deletions
diff --git a/src/main/java/derms/net/runicast/ReliableUnicastSender.java b/src/main/java/derms/net/runicast/ReliableUnicastSender.java index 2a0943a..ecfece4 100644 --- a/src/main/java/derms/net/runicast/ReliableUnicastSender.java +++ b/src/main/java/derms/net/runicast/ReliableUnicastSender.java @@ -3,23 +3,21 @@ package derms.net.runicast; import derms.net.ConcurrentDatagramSocket; import derms.net.MessagePayload; import derms.net.Packet; +import derms.util.ThreadPool; import java.io.IOException; import java.net.DatagramPacket; import java.net.InetSocketAddress; -import java.net.SocketException; import java.time.Duration; import java.util.Queue; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.LinkedBlockingQueue; -import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicLong; import java.util.logging.Logger; public class ReliableUnicastSender<T extends MessagePayload> { private static final Duration soTimeout = Duration.ofMillis(500); // Socket timeout. - private static final Duration terminationTimeout = Duration.ofSeconds(1); private final AtomicLong next; // Next sequence number. private final AtomicLong unacked; // Sequence number of first unacknowledged message. @@ -67,16 +65,7 @@ public class ReliableUnicastSender<T extends MessagePayload> { /** Close the connection immediately, without waiting for acknowledgements. */ public void closeNow() { log.info("Shutting down."); - pool.shutdownNow(); - try { - if (!pool.awaitTermination(terminationTimeout.toMillis(), TimeUnit.MILLISECONDS)) - log.warning("Thread pool did not terminate after " + terminationTimeout); - } catch (InterruptedException e) { - log.warning("Interrupted while terminating thread pool: " + e.getMessage()); - // Preserve interrupt status. - Thread.currentThread().interrupt(); - } - + ThreadPool.shutDown(pool, log); sock.close(); } } |