Package org.onlab.util
Class BlockingAwareFuture<T>
- java.lang.Object
-
- java.util.concurrent.CompletableFuture<T>
-
- org.onlab.util.BlockingAwareFuture<T>
-
- All Implemented Interfaces:
CompletionStage<T>
,Future<T>
public class BlockingAwareFuture<T> extends CompletableFuture<T>
ACompletableFuture
that tracks whether the future or one of its descendants has been blocked on aCompletableFuture.get()
orCompletableFuture.join()
call.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class java.util.concurrent.CompletableFuture
CompletableFuture.AsynchronousCompletionTask
-
-
Constructor Summary
Constructors Constructor Description BlockingAwareFuture()
-
Method Summary
-
Methods inherited from class java.util.concurrent.CompletableFuture
allOf, anyOf, cancel, complete, completeAsync, completeAsync, completedFuture, completedStage, completeExceptionally, completeOnTimeout, copy, defaultExecutor, delayedExecutor, delayedExecutor, exceptionally, failedFuture, failedStage, getNow, getNumberOfDependents, isCancelled, isCompletedExceptionally, isDone, minimalCompletionStage, newIncompleteFuture, obtrudeException, obtrudeValue, orTimeout, runAsync, runAsync, supplyAsync, supplyAsync, toCompletableFuture, toString
-
-
-
-
Method Detail
-
isBlocked
public boolean isBlocked()
Returns a boolean indicating whether the future is blocked.- Returns:
- indicates whether the future is blocked
-
get
public T get() throws InterruptedException, ExecutionException
- Specified by:
get
in interfaceFuture<T>
- Overrides:
get
in classCompletableFuture<T>
- Throws:
InterruptedException
ExecutionException
-
get
public T get(long timeout, TimeUnit unit) throws InterruptedException, ExecutionException, TimeoutException
- Specified by:
get
in interfaceFuture<T>
- Overrides:
get
in classCompletableFuture<T>
- Throws:
InterruptedException
ExecutionException
TimeoutException
-
join
public T join()
- Overrides:
join
in classCompletableFuture<T>
-
thenApply
public <U> CompletableFuture<U> thenApply(Function<? super T,? extends U> fn)
- Specified by:
thenApply
in interfaceCompletionStage<T>
- Overrides:
thenApply
in classCompletableFuture<T>
-
thenApplyAsync
public <U> CompletableFuture<U> thenApplyAsync(Function<? super T,? extends U> fn)
- Specified by:
thenApplyAsync
in interfaceCompletionStage<T>
- Overrides:
thenApplyAsync
in classCompletableFuture<T>
-
thenApplyAsync
public <U> CompletableFuture<U> thenApplyAsync(Function<? super T,? extends U> fn, Executor executor)
- Specified by:
thenApplyAsync
in interfaceCompletionStage<T>
- Overrides:
thenApplyAsync
in classCompletableFuture<T>
-
thenAccept
public CompletableFuture<Void> thenAccept(Consumer<? super T> action)
- Specified by:
thenAccept
in interfaceCompletionStage<T>
- Overrides:
thenAccept
in classCompletableFuture<T>
-
thenAcceptAsync
public CompletableFuture<Void> thenAcceptAsync(Consumer<? super T> action)
- Specified by:
thenAcceptAsync
in interfaceCompletionStage<T>
- Overrides:
thenAcceptAsync
in classCompletableFuture<T>
-
thenAcceptAsync
public CompletableFuture<Void> thenAcceptAsync(Consumer<? super T> action, Executor executor)
- Specified by:
thenAcceptAsync
in interfaceCompletionStage<T>
- Overrides:
thenAcceptAsync
in classCompletableFuture<T>
-
thenRun
public CompletableFuture<Void> thenRun(Runnable action)
- Specified by:
thenRun
in interfaceCompletionStage<T>
- Overrides:
thenRun
in classCompletableFuture<T>
-
thenRunAsync
public CompletableFuture<Void> thenRunAsync(Runnable action)
- Specified by:
thenRunAsync
in interfaceCompletionStage<T>
- Overrides:
thenRunAsync
in classCompletableFuture<T>
-
thenRunAsync
public CompletableFuture<Void> thenRunAsync(Runnable action, Executor executor)
- Specified by:
thenRunAsync
in interfaceCompletionStage<T>
- Overrides:
thenRunAsync
in classCompletableFuture<T>
-
thenCombine
public <U,V> CompletableFuture<V> thenCombine(CompletionStage<? extends U> other, BiFunction<? super T,? super U,? extends V> fn)
- Specified by:
thenCombine
in interfaceCompletionStage<T>
- Overrides:
thenCombine
in classCompletableFuture<T>
-
thenCombineAsync
public <U,V> CompletableFuture<V> thenCombineAsync(CompletionStage<? extends U> other, BiFunction<? super T,? super U,? extends V> fn)
- Specified by:
thenCombineAsync
in interfaceCompletionStage<T>
- Overrides:
thenCombineAsync
in classCompletableFuture<T>
-
thenCombineAsync
public <U,V> CompletableFuture<V> thenCombineAsync(CompletionStage<? extends U> other, BiFunction<? super T,? super U,? extends V> fn, Executor executor)
- Specified by:
thenCombineAsync
in interfaceCompletionStage<T>
- Overrides:
thenCombineAsync
in classCompletableFuture<T>
-
thenAcceptBoth
public <U> CompletableFuture<Void> thenAcceptBoth(CompletionStage<? extends U> other, BiConsumer<? super T,? super U> action)
- Specified by:
thenAcceptBoth
in interfaceCompletionStage<T>
- Overrides:
thenAcceptBoth
in classCompletableFuture<T>
-
thenAcceptBothAsync
public <U> CompletableFuture<Void> thenAcceptBothAsync(CompletionStage<? extends U> other, BiConsumer<? super T,? super U> action)
- Specified by:
thenAcceptBothAsync
in interfaceCompletionStage<T>
- Overrides:
thenAcceptBothAsync
in classCompletableFuture<T>
-
thenAcceptBothAsync
public <U> CompletableFuture<Void> thenAcceptBothAsync(CompletionStage<? extends U> other, BiConsumer<? super T,? super U> action, Executor executor)
- Specified by:
thenAcceptBothAsync
in interfaceCompletionStage<T>
- Overrides:
thenAcceptBothAsync
in classCompletableFuture<T>
-
runAfterBoth
public CompletableFuture<Void> runAfterBoth(CompletionStage<?> other, Runnable action)
- Specified by:
runAfterBoth
in interfaceCompletionStage<T>
- Overrides:
runAfterBoth
in classCompletableFuture<T>
-
runAfterBothAsync
public CompletableFuture<Void> runAfterBothAsync(CompletionStage<?> other, Runnable action)
- Specified by:
runAfterBothAsync
in interfaceCompletionStage<T>
- Overrides:
runAfterBothAsync
in classCompletableFuture<T>
-
runAfterBothAsync
public CompletableFuture<Void> runAfterBothAsync(CompletionStage<?> other, Runnable action, Executor executor)
- Specified by:
runAfterBothAsync
in interfaceCompletionStage<T>
- Overrides:
runAfterBothAsync
in classCompletableFuture<T>
-
applyToEither
public <U> CompletableFuture<U> applyToEither(CompletionStage<? extends T> other, Function<? super T,U> fn)
- Specified by:
applyToEither
in interfaceCompletionStage<T>
- Overrides:
applyToEither
in classCompletableFuture<T>
-
applyToEitherAsync
public <U> CompletableFuture<U> applyToEitherAsync(CompletionStage<? extends T> other, Function<? super T,U> fn)
- Specified by:
applyToEitherAsync
in interfaceCompletionStage<T>
- Overrides:
applyToEitherAsync
in classCompletableFuture<T>
-
applyToEitherAsync
public <U> CompletableFuture<U> applyToEitherAsync(CompletionStage<? extends T> other, Function<? super T,U> fn, Executor executor)
- Specified by:
applyToEitherAsync
in interfaceCompletionStage<T>
- Overrides:
applyToEitherAsync
in classCompletableFuture<T>
-
acceptEither
public CompletableFuture<Void> acceptEither(CompletionStage<? extends T> other, Consumer<? super T> action)
- Specified by:
acceptEither
in interfaceCompletionStage<T>
- Overrides:
acceptEither
in classCompletableFuture<T>
-
acceptEitherAsync
public CompletableFuture<Void> acceptEitherAsync(CompletionStage<? extends T> other, Consumer<? super T> action)
- Specified by:
acceptEitherAsync
in interfaceCompletionStage<T>
- Overrides:
acceptEitherAsync
in classCompletableFuture<T>
-
acceptEitherAsync
public CompletableFuture<Void> acceptEitherAsync(CompletionStage<? extends T> other, Consumer<? super T> action, Executor executor)
- Specified by:
acceptEitherAsync
in interfaceCompletionStage<T>
- Overrides:
acceptEitherAsync
in classCompletableFuture<T>
-
runAfterEither
public CompletableFuture<Void> runAfterEither(CompletionStage<?> other, Runnable action)
- Specified by:
runAfterEither
in interfaceCompletionStage<T>
- Overrides:
runAfterEither
in classCompletableFuture<T>
-
runAfterEitherAsync
public CompletableFuture<Void> runAfterEitherAsync(CompletionStage<?> other, Runnable action)
- Specified by:
runAfterEitherAsync
in interfaceCompletionStage<T>
- Overrides:
runAfterEitherAsync
in classCompletableFuture<T>
-
runAfterEitherAsync
public CompletableFuture<Void> runAfterEitherAsync(CompletionStage<?> other, Runnable action, Executor executor)
- Specified by:
runAfterEitherAsync
in interfaceCompletionStage<T>
- Overrides:
runAfterEitherAsync
in classCompletableFuture<T>
-
thenCompose
public <U> CompletableFuture<U> thenCompose(Function<? super T,? extends CompletionStage<U>> fn)
- Specified by:
thenCompose
in interfaceCompletionStage<T>
- Overrides:
thenCompose
in classCompletableFuture<T>
-
thenComposeAsync
public <U> CompletableFuture<U> thenComposeAsync(Function<? super T,? extends CompletionStage<U>> fn)
- Specified by:
thenComposeAsync
in interfaceCompletionStage<T>
- Overrides:
thenComposeAsync
in classCompletableFuture<T>
-
thenComposeAsync
public <U> CompletableFuture<U> thenComposeAsync(Function<? super T,? extends CompletionStage<U>> fn, Executor executor)
- Specified by:
thenComposeAsync
in interfaceCompletionStage<T>
- Overrides:
thenComposeAsync
in classCompletableFuture<T>
-
whenComplete
public CompletableFuture<T> whenComplete(BiConsumer<? super T,? super Throwable> action)
- Specified by:
whenComplete
in interfaceCompletionStage<T>
- Overrides:
whenComplete
in classCompletableFuture<T>
-
whenCompleteAsync
public CompletableFuture<T> whenCompleteAsync(BiConsumer<? super T,? super Throwable> action)
- Specified by:
whenCompleteAsync
in interfaceCompletionStage<T>
- Overrides:
whenCompleteAsync
in classCompletableFuture<T>
-
whenCompleteAsync
public CompletableFuture<T> whenCompleteAsync(BiConsumer<? super T,? super Throwable> action, Executor executor)
- Specified by:
whenCompleteAsync
in interfaceCompletionStage<T>
- Overrides:
whenCompleteAsync
in classCompletableFuture<T>
-
handle
public <U> CompletableFuture<U> handle(BiFunction<? super T,Throwable,? extends U> fn)
- Specified by:
handle
in interfaceCompletionStage<T>
- Overrides:
handle
in classCompletableFuture<T>
-
handleAsync
public <U> CompletableFuture<U> handleAsync(BiFunction<? super T,Throwable,? extends U> fn)
- Specified by:
handleAsync
in interfaceCompletionStage<T>
- Overrides:
handleAsync
in classCompletableFuture<T>
-
handleAsync
public <U> CompletableFuture<U> handleAsync(BiFunction<? super T,Throwable,? extends U> fn, Executor executor)
- Specified by:
handleAsync
in interfaceCompletionStage<T>
- Overrides:
handleAsync
in classCompletableFuture<T>
-
-