in src/main/java/com/twitter/whiskey/futures/ReactiveFuture.java [112:135]
public boolean fail(final Throwable throwable) {
if (super.fail(throwable)) {
synchronized(this) {
error = throwable;
for (final Observer<E> observer : observers) {
observer.getExecutor().execute(new Runnable() {
@Override
public void run() {
observer.onError(throwable);
}
});
}
for (final StreamingIterator iterator : iterators) {
iterator.queue(SENTINEL);
}
return true;
}
}
return false;
}