public void process(OutputBuffer delegate) { if (futureResult.isDone()) { return; } try { ListenableFuture<BufferResult> result = delegate.get(bufferId, startingSequenceId, maxSize); futureResult.setAsync(result); } catch (Exception e) { futureResult.setException(e); } } }
/** * Creates a future that completes when the first future completes either normally * or exceptionally. Cancellation of the future propagates to the supplied futures. */ public static <V> ListenableFuture<V> whenAnyComplete(Iterable<? extends ListenableFuture<? extends V>> futures) { requireNonNull(futures, "futures is null"); checkArgument(!isEmpty(futures), "futures is empty"); ExtendedSettableFuture<V> firstCompletedFuture = ExtendedSettableFuture.create(); for (ListenableFuture<? extends V> future : futures) { firstCompletedFuture.setAsync(future); } return firstCompletedFuture; }
/** * Creates a future that completes when the first future completes either normally * or exceptionally. Cancellation of the future propagates to the supplied futures. */ public static <V> ListenableFuture<V> whenAnyComplete(Iterable<? extends ListenableFuture<? extends V>> futures) { requireNonNull(futures, "futures is null"); checkArgument(!isEmpty(futures), "futures is empty"); ExtendedSettableFuture<V> firstCompletedFuture = ExtendedSettableFuture.create(); for (ListenableFuture<? extends V> future : futures) { firstCompletedFuture.setAsync(future); } return firstCompletedFuture; }
public void process(OutputBuffer delegate) { if (futureResult.isDone()) { return; } try { ListenableFuture<BufferResult> result = delegate.get(bufferId, startingSequenceId, maxSize); futureResult.setAsync(result); } catch (Exception e) { futureResult.setException(e); } } }
public void process(OutputBuffer delegate) { if (futureResult.isDone()) { return; } try { ListenableFuture<BufferResult> result = delegate.get(bufferId, startingSequenceId, maxSize); futureResult.setAsync(result); } catch (Exception e) { futureResult.setException(e); } } }
toFuture.setAsync(fromFuture); fromFuture.set("abc"); assertEquals(toFuture.get(), "abc"); toFuture.setAsync(fromFuture); fromFuture.setException(new RuntimeException()); assertThrows(ExecutionException.class, toFuture::get); toFuture.setAsync(fromFuture); toFuture.cancel(false); toFuture.setAsync(fromFuture); toFuture.cancel(true);
toFuture.setAsync(fromFuture); fromFuture.set("abc"); assertEquals(toFuture.get(), "abc"); toFuture.setAsync(fromFuture); fromFuture.setException(new RuntimeException()); assertThrows(ExecutionException.class, toFuture::get); toFuture.setAsync(fromFuture); toFuture.cancel(false); toFuture.setAsync(fromFuture); toFuture.cancel(true);