From 0692ded8b6eef7706710129adfadb96cd438161d Mon Sep 17 00:00:00 2001 From: Rob Austin Date: Tue, 11 Nov 2014 22:20:56 +0000 Subject: [PATCH] attempting to improve close() --- .../openhft/chronicle/map/AbstractChannelReplicator.java | 1 + .../java/net/openhft/chronicle/map/CloseablesManager.java | 8 ++------ 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/src/main/java/net/openhft/chronicle/map/AbstractChannelReplicator.java b/src/main/java/net/openhft/chronicle/map/AbstractChannelReplicator.java index 3c88d5c7e..f38d9a7ee 100644 --- a/src/main/java/net/openhft/chronicle/map/AbstractChannelReplicator.java +++ b/src/main/java/net/openhft/chronicle/map/AbstractChannelReplicator.java @@ -135,6 +135,7 @@ abstract class AbstractChannelReplicator implements Closeable { @Override public void close() { isClosed = true; + executorService.shutdown(); closeables.closeQuietly(); executorService.shutdownNow(); diff --git a/src/main/java/net/openhft/chronicle/map/CloseablesManager.java b/src/main/java/net/openhft/chronicle/map/CloseablesManager.java index 3b4f4b889..0bc2d6ca8 100644 --- a/src/main/java/net/openhft/chronicle/map/CloseablesManager.java +++ b/src/main/java/net/openhft/chronicle/map/CloseablesManager.java @@ -30,9 +30,8 @@ import java.util.Set; final class CloseablesManager implements Closeable { private static final Logger LOG = LoggerFactory.getLogger(CloseablesManager.class.getName()); - private boolean isClosed = false; - private final Set closeables = new LinkedHashSet(); + private final Set closeables = new LinkedHashSet(); public synchronized void add(Closeable closeable) { @@ -73,7 +72,7 @@ final class CloseablesManager implements Closeable { } } closeables.clear(); - isClosed = true; + if (ex != null) throw ex; } @@ -86,9 +85,6 @@ final class CloseablesManager implements Closeable { } } - boolean isClosed() { - return isClosed; - } public boolean isEmpty() { return closeables.isEmpty();