Ejemplo n.º 1
0
 public <F extends ListenableFuture<? extends I>> F track(final F job) {
   startedCount.incrementAndGet();
   if (!isAcceptingNewJobs()) job.cancel(completionPromise.wasCancelledWithInterruption());
   job.addListener(
       () -> {
         try {
           handleCompletedJob(job);
         } catch (Exception e) {
           abort(FunFuture.unwrapExecutionException(e));
         } finally {
           completedCount.incrementAndGet();
           checkDone();
         }
       },
       jobCompletionExecutor);
   return job;
 }