[ONOS-6267] Detect and complete blocked futures on I/O threads.
Change-Id: I0488dc5096f9e610b97405ad05c02d0ff3854b5f
diff --git a/core/store/primitives/src/main/java/org/onosproject/store/primitives/impl/ExecutingAsyncAtomicCounter.java b/core/store/primitives/src/main/java/org/onosproject/store/primitives/impl/ExecutingAsyncAtomicCounter.java
index 5d72838..504fa75 100644
--- a/core/store/primitives/src/main/java/org/onosproject/store/primitives/impl/ExecutingAsyncAtomicCounter.java
+++ b/core/store/primitives/src/main/java/org/onosproject/store/primitives/impl/ExecutingAsyncAtomicCounter.java
@@ -18,7 +18,6 @@
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.Executor;
-import org.onlab.util.Tools;
import org.onosproject.store.service.AsyncAtomicCounter;
/**
@@ -27,46 +26,45 @@
*/
public class ExecutingAsyncAtomicCounter extends ExecutingDistributedPrimitive implements AsyncAtomicCounter {
private final AsyncAtomicCounter delegateCounter;
- private final Executor executor;
- public ExecutingAsyncAtomicCounter(AsyncAtomicCounter delegateCounter, Executor executor) {
- super(delegateCounter, executor);
+ public ExecutingAsyncAtomicCounter(
+ AsyncAtomicCounter delegateCounter, Executor orderedExecutor, Executor threadPoolExecutor) {
+ super(delegateCounter, orderedExecutor, threadPoolExecutor);
this.delegateCounter = delegateCounter;
- this.executor = executor;
}
@Override
public CompletableFuture<Long> incrementAndGet() {
- return Tools.asyncFuture(delegateCounter.incrementAndGet(), executor);
+ return asyncFuture(delegateCounter.incrementAndGet());
}
@Override
public CompletableFuture<Long> getAndIncrement() {
- return Tools.asyncFuture(delegateCounter.getAndIncrement(), executor);
+ return asyncFuture(delegateCounter.getAndIncrement());
}
@Override
public CompletableFuture<Long> getAndAdd(long delta) {
- return Tools.asyncFuture(delegateCounter.getAndAdd(delta), executor);
+ return asyncFuture(delegateCounter.getAndAdd(delta));
}
@Override
public CompletableFuture<Long> addAndGet(long delta) {
- return Tools.asyncFuture(delegateCounter.addAndGet(delta), executor);
+ return asyncFuture(delegateCounter.addAndGet(delta));
}
@Override
public CompletableFuture<Long> get() {
- return Tools.asyncFuture(delegateCounter.get(), executor);
+ return asyncFuture(delegateCounter.get());
}
@Override
public CompletableFuture<Void> set(long value) {
- return Tools.asyncFuture(delegateCounter.set(value), executor);
+ return asyncFuture(delegateCounter.set(value));
}
@Override
public CompletableFuture<Boolean> compareAndSet(long expectedValue, long updateValue) {
- return Tools.asyncFuture(delegateCounter.compareAndSet(expectedValue, updateValue), executor);
+ return asyncFuture(delegateCounter.compareAndSet(expectedValue, updateValue));
}
}