MCPcopy Create free account
hub / github.com/traneio/future / JoinPromise

Class JoinPromise

future-java/src/main/java/io/trane/future/Future.java:643–667  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

641}
642
643final class JoinPromise<T> extends Promise<Void> implements Responder<T> {
644 private final AtomicInteger count;
645 private final List<? extends Future<T>> list;
646
647 public JoinPromise(final List<? extends Future<T>> list) {
648 this.list = list;
649 this.count = new AtomicInteger(list.size());
650 }
651
652 @Override
653 public final void onException(final Throwable ex) {
654 setException(ex);
655 }
656
657 @Override
658 public final void onValue(final T value) {
659 if (count.decrementAndGet() == 0)
660 become(Future.VOID);
661 }
662
663 @Override
664 protected InterruptHandler getInterruptHandler() {
665 return InterruptHandler.apply(list);
666 }
667}
668
669final class FirstCompletedOfPromise<T> extends Promise<T> implements Responder<T> {
670

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…