/guava/guava/src/com/google/common/util/concurrent/AbstractFuture.java
oldHead = oldHead;
oldHead = listeners;
Listener newNode = new Listener(listener, executor); do { newNode.next = oldHead; if (ATOMIC_HELPER.casListeners(this, oldHead, newNode)) { return; } <extra_id_0> } while (oldHead != Listener.TOMBSTONE); } } executeListener(listener, executor); } @CanIgnoreReturnValue