in src/main/java/com/twitter/whiskey/futures/CompletableFuture.java [54:75]
public boolean fail(final Throwable throwable) {
if (done) return false;
synchronized(this) {
if (done) return false;
error = throwable;
done = true;
for (final Listener<T> listener : listeners) {
listener.getExecutor().execute(new Runnable() {
@Override
public void run() {
listener.onError(error);
}
});
}
notifyAll();
return true;
}
}