aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/skyframe/InvalidatingNodeVisitor.java
diff options
context:
space:
mode:
authorGravatar Janak Ramakrishnan <janakr@google.com>2015-06-27 02:09:22 +0000
committerGravatar Damien Martin-Guillerez <dmarting@google.com>2015-06-29 16:39:22 +0000
commitca763a66230e84671c1f8c277d3d0fdb425d3149 (patch)
treeda4dfe5b118a50c8182953b6f7f34e0395d498ab /src/main/java/com/google/devtools/build/skyframe/InvalidatingNodeVisitor.java
parent9eb1cf05fa1db8d7052db366d9d8c93637bfd77a (diff)
Batch retrieval of children when removing reverse deps.
-- MOS_MIGRATED_REVID=97022077
Diffstat (limited to 'src/main/java/com/google/devtools/build/skyframe/InvalidatingNodeVisitor.java')
-rw-r--r--src/main/java/com/google/devtools/build/skyframe/InvalidatingNodeVisitor.java8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/main/java/com/google/devtools/build/skyframe/InvalidatingNodeVisitor.java b/src/main/java/com/google/devtools/build/skyframe/InvalidatingNodeVisitor.java
index 7abf6c6f8a..558bbd2593 100644
--- a/src/main/java/com/google/devtools/build/skyframe/InvalidatingNodeVisitor.java
+++ b/src/main/java/com/google/devtools/build/skyframe/InvalidatingNodeVisitor.java
@@ -24,6 +24,7 @@ import com.google.devtools.build.lib.concurrent.AbstractQueueVisitor;
import com.google.devtools.build.lib.concurrent.ThreadSafety.ThreadSafe;
import com.google.devtools.build.lib.util.Pair;
+import java.util.Collection;
import java.util.Set;
import java.util.concurrent.TimeUnit;
@@ -334,8 +335,11 @@ public abstract class InvalidatingNodeVisitor extends AbstractQueueVisitor {
// Remove this node as a reverse dep from its children, since we have reset it and it no
// longer lists its children as direct deps.
- for (SkyKey dep : depsAndValue.first) {
- graph.get(dep).removeReverseDep(key);
+ Collection<NodeEntry> children = graph.getBatch(depsAndValue.first).values();
+ Preconditions.checkState(children.size() == Iterables.size(depsAndValue.first),
+ "%s %s %s %s", key, entry, depsAndValue.first, children);
+ for (NodeEntry child : children) {
+ child.removeReverseDep(key);
}
SkyValue value = ValueWithMetadata.justValue(depsAndValue.second);