From 5233993771085a4cb4b8fa7bece5275eb714e563 Mon Sep 17 00:00:00 2001 From: shahan Date: Sun, 16 Sep 2018 10:33:59 -0700 Subject: [PATCH] Specializes the getBatchAsync method for dep prefetching. PiperOrigin-RevId: 213183365 --- .../com/google/devtools/build/skyframe/QueryableGraph.java | 6 ++++++ .../devtools/build/skyframe/SkyFunctionEnvironment.java | 6 ++---- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/google/devtools/build/skyframe/QueryableGraph.java b/src/main/java/com/google/devtools/build/skyframe/QueryableGraph.java index 4a1a31a4f5018d..e196d0cdc8e738 100644 --- a/src/main/java/com/google/devtools/build/skyframe/QueryableGraph.java +++ b/src/main/java/com/google/devtools/build/skyframe/QueryableGraph.java @@ -60,6 +60,12 @@ public interface QueryableGraph { return InterruptibleSupplier.Memoize.of(() -> getBatch(requestor, reason, keys)); } + /** Optimistically prefetches dependencies. */ + default void prefetchDeps(@Nullable SkyKey requestor, Iterable depKeys) + throws InterruptedException { + getBatchAsync(requestor, Reason.PREFETCH, depKeys); + } + /** * Examines all the given keys. Returns an iterable of keys whose corresponding nodes are * currently available to be fetched. diff --git a/src/main/java/com/google/devtools/build/skyframe/SkyFunctionEnvironment.java b/src/main/java/com/google/devtools/build/skyframe/SkyFunctionEnvironment.java index 9b99377cac677c..d7a086a72fb7ab 100644 --- a/src/main/java/com/google/devtools/build/skyframe/SkyFunctionEnvironment.java +++ b/src/main/java/com/google/devtools/build/skyframe/SkyFunctionEnvironment.java @@ -212,10 +212,8 @@ private Map batchPrefetch( depKeysAsSet = depKeys.toSet(); evaluatorContext .getGraph() - .getBatchAsync( - requestor, - Reason.PREFETCH, - Iterables.filter(oldDeps, Predicates.not(Predicates.in(depKeysAsSet)))); + .prefetchDeps( + requestor, Iterables.filter(oldDeps, Predicates.not(Predicates.in(depKeysAsSet)))); } } Map batchMap =