summaryrefslogtreecommitdiffstats
path: root/src/main/java/derms/net/runicast/ReliableUnicastSender.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/derms/net/runicast/ReliableUnicastSender.java')
-rw-r--r--src/main/java/derms/net/runicast/ReliableUnicastSender.java15
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();
}
}