Specializes the getBatchAsync method for dep prefetching.
PiperOrigin-RevId: 213183365
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 4a1a31a..e196d0c 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 @@
return InterruptibleSupplier.Memoize.of(() -> getBatch(requestor, reason, keys));
}
+ /** Optimistically prefetches dependencies. */
+ default void prefetchDeps(@Nullable SkyKey requestor, Iterable<? extends SkyKey> 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 9b99377..d7a086a 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 @@
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<SkyKey, ? extends NodeEntry> batchMap =