/guava/guava/src/com/google/common/util/concurrent/AbstractFuture.java
next = next;
next = next.next;
} future.afterDone(); next = future.clearListeners(next); future = null; while (next != null) { Listener curr = next; <extra_id_0> Runnable task = requireNonNull(curr.task); if (task instanceof SetFuture) { SetFuture<?> setFuture = (SetFuture<?>) task; future = setFuture.owner; if (future.value == setFuture) { Object valueToSet = getFutureValue(setFuture.future);