diff options
author | 2016-07-15 22:23:37 +0000 | |
---|---|---|
committer | 2016-07-18 10:44:37 +0000 | |
commit | bfd4e2461556a67502c80c84c0228b8c91955623 (patch) | |
tree | 554c56e1e90f9c6b93bdec7a3b10ec5629c7693f /src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java | |
parent | a66a56b108c04f05efcb9b965361d692435acc59 (diff) |
Model the TopLevelArtifactContext as an argument to the CompletionFunction rather than a PRECOMPUTED value.
Having a stale TopLevelArtifactContext leads to invalidation of all the top level target nodes, causing time wasted due to a lot of cache hits for a null build.
--
MOS_MIGRATED_REVID=127585059
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java | 18 |
1 files changed, 7 insertions, 11 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java b/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java index 4168ef143f..f9426d1b70 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java @@ -633,13 +633,6 @@ public abstract class SkyframeExecutor implements WalkableGraphFactory { PrecomputedValue.DEFAULTS_PACKAGE_CONTENTS.set(injectable(), defaultsPackageContents); } - /** - * Injects the top-level artifact options. - */ - public void injectTopLevelContext(TopLevelArtifactContext options) { - PrecomputedValue.TOP_LEVEL_CONTEXT.set(injectable(), options); - } - public void injectWorkspaceStatusData() { PrecomputedValue.WORKSPACE_STATUS_KEY.set(injectable(), workspaceStatusActionFactory.createWorkspaceStatusAction( @@ -1083,7 +1076,8 @@ public abstract class SkyframeExecutor implements WalkableGraphFactory { boolean finalizeActionsToOutputService, int numJobs, ActionCacheChecker actionCacheChecker, - @Nullable EvaluationProgressReceiver executionProgressReceiver) + @Nullable EvaluationProgressReceiver executionProgressReceiver, + TopLevelArtifactContext topLevelArtifactContext) throws InterruptedException { checkActive(); Preconditions.checkState(actionLogBufferPathGenerator != null); @@ -1096,9 +1090,11 @@ public abstract class SkyframeExecutor implements WalkableGraphFactory { try { progressReceiver.executionProgressReceiver = executionProgressReceiver; Iterable<SkyKey> artifactKeys = ArtifactValue.mandatoryKeys(artifactsToBuild); - Iterable<SkyKey> targetKeys = TargetCompletionValue.keys(targetsToBuild); - Iterable<SkyKey> aspectKeys = AspectCompletionValue.keys(aspects); - Iterable<SkyKey> testKeys = TestCompletionValue.keys(targetsToTest, exclusiveTesting); + Iterable<SkyKey> targetKeys = + TargetCompletionValue.keys(targetsToBuild, topLevelArtifactContext); + Iterable<SkyKey> aspectKeys = AspectCompletionValue.keys(aspects, topLevelArtifactContext); + Iterable<SkyKey> testKeys = + TestCompletionValue.keys(targetsToTest, topLevelArtifactContext, exclusiveTesting); return buildDriver.evaluate( Iterables.concat(artifactKeys, targetKeys, aspectKeys, testKeys), keepGoing, |