Topic: Support for passing a executor to subscribe method for invoking the callback
Change-Id: I9db485ee381c61fbfc38aba0c2bd90cb5af171e0
diff --git a/core/store/primitives/src/main/java/org/onosproject/store/primitives/impl/DefaultDistributedTopic.java b/core/store/primitives/src/main/java/org/onosproject/store/primitives/impl/DefaultDistributedTopic.java
index df7bf9b..d539992 100644
--- a/core/store/primitives/src/main/java/org/onosproject/store/primitives/impl/DefaultDistributedTopic.java
+++ b/core/store/primitives/src/main/java/org/onosproject/store/primitives/impl/DefaultDistributedTopic.java
@@ -17,6 +17,7 @@
import java.util.Map;
import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.Executor;
import java.util.function.Consumer;
import org.onosproject.store.service.AsyncAtomicValue;
@@ -61,8 +62,9 @@
}
@Override
- public CompletableFuture<Void> subscribe(Consumer<T> callback) {
- AtomicValueEventListener<T> valueListener = event -> callback.accept(event.newValue());
+ public CompletableFuture<Void> subscribe(Consumer<T> callback, Executor executor) {
+ AtomicValueEventListener<T> valueListener =
+ event -> executor.execute(() -> callback.accept(event.newValue()));
if (callbacks.putIfAbsent(callback, valueListener) == null) {
return atomicValue.addListener(valueListener);
}