Prefetch children of node being checked for cycles, in case graph implementation caches batched results.
--
MOS_MIGRATED_REVID=101961270
diff --git a/src/main/java/com/google/devtools/build/skyframe/ParallelEvaluator.java b/src/main/java/com/google/devtools/build/skyframe/ParallelEvaluator.java
index 2a5a8c8..6ddd647 100644
--- a/src/main/java/com/google/devtools/build/skyframe/ParallelEvaluator.java
+++ b/src/main/java/com/google/devtools/build/skyframe/ParallelEvaluator.java
@@ -1505,10 +1505,12 @@
}
// This node is not yet known to be in a cycle. So process its children.
- Iterable<? extends SkyKey> children = entry.getTemporaryDirectDeps();
+ Iterable<SkyKey> children = entry.getTemporaryDirectDeps();
if (Iterables.isEmpty(children)) {
continue;
}
+ // Prefetch all children, in case our graph performs better with a primed cache.
+ graph.getBatch(children);
// This marker flag will tell us when all this node's children have been processed.
toVisit.push(CHILDREN_FINISHED);