514 |
|
} |
515 |
|
}, |
516 |
|
|
517 |
– |
// /** Experimental way to do more testing */ |
518 |
– |
// REVERSE_DEFAULT { |
519 |
– |
// public <T,U> CompletableFuture<Void> runAfterBoth |
520 |
– |
// (CompletableFuture<T> f, CompletableFuture<U> g, Runnable a) { |
521 |
– |
// return g.runAfterBoth(f, a); |
522 |
– |
// } |
523 |
– |
// public <T,U> CompletableFuture<Void> thenAcceptBoth |
524 |
– |
// (CompletableFuture<T> f, |
525 |
– |
// CompletionStage<? extends U> g, |
526 |
– |
// BiConsumer<? super T,? super U> a) { |
527 |
– |
// return DEFAULT.thenAcceptBoth(f, g, a); |
528 |
– |
// } |
529 |
– |
// }, |
530 |
– |
|
517 |
|
DEFAULT_ASYNC { |
518 |
|
public <T,U> CompletableFuture<Void> runAfterBoth |
519 |
|
(CompletableFuture<T> f, CompletableFuture<U> g, Runnable a) { |
561 |
|
} |
562 |
|
}, |
563 |
|
|
578 |
– |
// REVERSE_DEFAULT_ASYNC { |
579 |
– |
// public <T,U> CompletableFuture<Void> runAfterBoth |
580 |
– |
// (CompletableFuture<T> f, CompletableFuture<U> g, Runnable a) { |
581 |
– |
// return f.runAfterBothAsync(g, a); |
582 |
– |
// } |
583 |
– |
// public <T,U> CompletableFuture<Void> thenAcceptBoth |
584 |
– |
// (CompletableFuture<T> f, |
585 |
– |
// CompletionStage<? extends U> g, |
586 |
– |
// BiConsumer<? super T,? super U> a) { |
587 |
– |
// return DEFAULT_ASYNC.thenAcceptBoth(f, g, a); |
588 |
– |
// } |
589 |
– |
// }, |
590 |
– |
|
564 |
|
EXECUTOR { |
565 |
|
public <T,U> CompletableFuture<Void> runAfterBoth |
566 |
|
(CompletableFuture<T> f, CompletableFuture<U> g, Runnable a) { |