diff options
Diffstat (limited to 'caliper/src/main/java/com/google/caliper/runner/ExperimentingCaliperRun.java')
-rw-r--r-- | caliper/src/main/java/com/google/caliper/runner/ExperimentingCaliperRun.java | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/caliper/src/main/java/com/google/caliper/runner/ExperimentingCaliperRun.java b/caliper/src/main/java/com/google/caliper/runner/ExperimentingCaliperRun.java index 5214193..e57e1b0 100644 --- a/caliper/src/main/java/com/google/caliper/runner/ExperimentingCaliperRun.java +++ b/caliper/src/main/java/com/google/caliper/runner/ExperimentingCaliperRun.java @@ -30,7 +30,6 @@ import com.google.common.collect.ImmutableSet; import com.google.common.collect.Lists; import com.google.common.collect.Queues; import com.google.common.util.concurrent.AsyncFunction; -import com.google.common.util.concurrent.FutureFallback; import com.google.common.util.concurrent.Futures; import com.google.common.util.concurrent.ListenableFuture; import com.google.common.util.concurrent.ListeningExecutorService; @@ -58,9 +57,9 @@ public final class ExperimentingCaliperRun implements CaliperRun { private static final Logger logger = Logger.getLogger(ExperimentingCaliperRun.class.getName()); - private static final FutureFallback<Object> FALLBACK_TO_NULL = new FutureFallback<Object>() { + private static final AsyncFunction<Throwable, Object> FALLBACK_TO_NULL = new AsyncFunction<Throwable, Object>() { final ListenableFuture<Object> nullFuture = Futures.immediateFuture(null); - @Override public ListenableFuture<Object> create(Throwable t) throws Exception { + @Override public ListenableFuture<Object> apply(Throwable t) throws Exception { return nullFuture; } }; @@ -220,16 +219,16 @@ public final class ExperimentingCaliperRun implements CaliperRun { // each of these trials can only start after all prior trials have finished, so we use // Futures.transform to force the sequencing. ListenableFuture<TrialResult> current = - Futures.transform( + Futures.transformAsync( previous, new AsyncFunction<Object, TrialResult>() { @Override public ListenableFuture<TrialResult> apply(Object ignored) { return executor.submit(scheduledTrial.trialTask()); } - }); + }, MoreExecutors.directExecutor()); pendingTrials.add(current); // ignore failure of the prior task. - previous = Futures.withFallback(current, FALLBACK_TO_NULL); + previous = Futures.catchingAsync(current, Throwable.class, FALLBACK_TO_NULL, MoreExecutors.directExecutor()); } return pendingTrials; } |