From bc74c006ff69d963254ab0585f85185548d31ebf Mon Sep 17 00:00:00 2001 From: iMoHax Date: Wed, 3 Sep 2014 16:32:07 +0400 Subject: [PATCH] correct shutdown procedure --- utils/src/main/java/ru/trader/emdn/EMDN.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/utils/src/main/java/ru/trader/emdn/EMDN.java b/utils/src/main/java/ru/trader/emdn/EMDN.java index b0090e9..1c202e1 100644 --- a/utils/src/main/java/ru/trader/emdn/EMDN.java +++ b/utils/src/main/java/ru/trader/emdn/EMDN.java @@ -8,6 +8,7 @@ import org.zeromq.ZMQException; import java.io.UnsupportedEncodingException; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ScheduledFuture; import java.util.concurrent.TimeUnit; import java.util.zip.DataFormatException; import java.util.zip.Inflater; @@ -20,6 +21,7 @@ public class EMDN { private ZMQ.Context context = null; private ZMQ.Socket subscriber = null; private ScheduledExecutorService executor; + private ScheduledFuture receive; private boolean clear; public EMDN() { @@ -43,7 +45,7 @@ public class EMDN { LOG.trace("Subscribe"); subscriber.subscribe(new byte[0]); executor = Executors.newSingleThreadScheduledExecutor(); - executor.scheduleWithFixedDelay(() -> { + receive = executor.scheduleWithFixedDelay(() -> { try { byte[] receivedData = subscriber.recv(0); LOG.trace("Received data: {}", receivedData); @@ -61,6 +63,7 @@ public class EMDN { public void shutdown() { if (isActive()){ LOG.info("Shutdown EMDN client"); + receive.cancel(false); executor.shutdown(); subscriber.close(); context.term();