diff options
author | Janak Ramakrishnan <janakr@google.com> | 2015-06-27 02:09:22 +0000 |
---|---|---|
committer | Damien Martin-Guillerez <dmarting@google.com> | 2015-06-29 16:39:22 +0000 |
commit | ca763a66230e84671c1f8c277d3d0fdb425d3149 (patch) | |
tree | da4dfe5b118a50c8182953b6f7f34e0395d498ab /src/main/java/com/google/devtools/build/skyframe/InvalidatingNodeVisitor.java | |
parent | 9eb1cf05fa1db8d7052db366d9d8c93637bfd77a (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.java | 8 |
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); |