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