From 819aef314ba0fc931ca46c0f39d4f70ff49d3540 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Tue, 30 Apr 2019 05:35:41 +0200 Subject: [PATCH] Check registration being closed Check if the registration has been closed before firing events. This way we stop delivering events a bit sooner, improving shutdown speed and correctness. JIRA: MDSAL-429 Change-Id: Id3ce6be0b8b15f4d95a3f54ac9880447a2551833 Signed-off-by: Robert Varga --- .../inmemory/InMemoryDOMDataTreeShardChangePublisher.java | 5 +++-- .../store/inmemory/InMemoryDOMStoreTreeChangePublisher.java | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/dom/mdsal-dom-inmemory-datastore/src/main/java/org/opendaylight/mdsal/dom/store/inmemory/InMemoryDOMDataTreeShardChangePublisher.java b/dom/mdsal-dom-inmemory-datastore/src/main/java/org/opendaylight/mdsal/dom/store/inmemory/InMemoryDOMDataTreeShardChangePublisher.java index a333033c90..ccbf366f86 100644 --- a/dom/mdsal-dom-inmemory-datastore/src/main/java/org/opendaylight/mdsal/dom/store/inmemory/InMemoryDOMDataTreeShardChangePublisher.java +++ b/dom/mdsal-dom-inmemory-datastore/src/main/java/org/opendaylight/mdsal/dom/store/inmemory/InMemoryDOMDataTreeShardChangePublisher.java @@ -34,8 +34,9 @@ final class InMemoryDOMDataTreeShardChangePublisher extends AbstractDOMShardTree final Map childShards) { super(dataTree, rootPath, childShards); notificationManager = QueuedNotificationManager.create(executor, (listener, notifications) -> { - // FIXME: we are not checking for listener being closed - listener.getInstance().onDataTreeChanged(notifications); + if (!listener.isClosed()) { + listener.getInstance().onDataTreeChanged(notifications); + } }, maxQueueSize, "DataTreeChangeListenerQueueMgr"); } diff --git a/dom/mdsal-dom-inmemory-datastore/src/main/java/org/opendaylight/mdsal/dom/store/inmemory/InMemoryDOMStoreTreeChangePublisher.java b/dom/mdsal-dom-inmemory-datastore/src/main/java/org/opendaylight/mdsal/dom/store/inmemory/InMemoryDOMStoreTreeChangePublisher.java index 60ca3ff209..fd4ff0ce2c 100644 --- a/dom/mdsal-dom-inmemory-datastore/src/main/java/org/opendaylight/mdsal/dom/store/inmemory/InMemoryDOMStoreTreeChangePublisher.java +++ b/dom/mdsal-dom-inmemory-datastore/src/main/java/org/opendaylight/mdsal/dom/store/inmemory/InMemoryDOMStoreTreeChangePublisher.java @@ -35,8 +35,9 @@ final class InMemoryDOMStoreTreeChangePublisher extends AbstractDOMStoreTreeChan InMemoryDOMStoreTreeChangePublisher(final ExecutorService listenerExecutor, final int maxQueueSize) { notificationManager = QueuedNotificationManager.create(listenerExecutor, (listener, notifications) -> { - // FIXME: we are not checking for listener being closed - listener.getInstance().onDataTreeChanged(notifications); + if (!listener.isClosed()) { + listener.getInstance().onDataTreeChanged(notifications); + } }, maxQueueSize, "DataTreeChangeListenerQueueMgr"); } -- 2.36.6