/guava/guava/src/com/google/common/util/concurrent/ExecutionSequencer.java
outputFuture.addListener ( listener, directExecutor ( ) ) ; taskFuture.addListener ( listener, directExecutor ( ) ) ;
if (taskFuture.isDone()) { newFuture.setFuture(oldFuture); } else if (outputFuture.isCancelled() && taskExecutor.trySetCancelled()) { taskFuture.cancel(false); } }; <extra_id_0> return outputFuture; } enum RunningState { NOT_RUN, CANCELLED, STARTED,