aboutsummaryrefslogtreecommitdiff
path: root/caliper/src/main/java/com/google/caliper/runner/ExperimentingCaliperRun.java
diff options
context:
space:
mode:
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.java11
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;
}