diff options
author | 2017-11-29 14:01:21 -0800 | |
---|---|---|
committer | 2017-11-29 14:03:30 -0800 | |
commit | 3d1a194ff9e76f25f1a7242ff2d021523ba8e4a0 (patch) | |
tree | 9fec583a59b8ee6ee0f4fac513d5471956dfe1d3 /src/main/java/com/google/devtools/build/lib/skyframe/ActionTemplateExpansionFunction.java | |
parent | 8f8b8859fc7d85feee97481443fb11c0b7ae03ce (diff) |
Add ActionKeyContext to Action#getKey.
This key context can be used by actions to share partial key computations, for instance when computing MD5s for nested sets.
RELNOTES: None
PiperOrigin-RevId: 177359607
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/skyframe/ActionTemplateExpansionFunction.java')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/skyframe/ActionTemplateExpansionFunction.java | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/ActionTemplateExpansionFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/ActionTemplateExpansionFunction.java index eb7d2675ad..6822dafb59 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/ActionTemplateExpansionFunction.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/ActionTemplateExpansionFunction.java @@ -18,6 +18,7 @@ import com.google.common.base.Supplier; import com.google.common.collect.ImmutableList; import com.google.devtools.build.lib.actions.Action; import com.google.devtools.build.lib.actions.ActionAnalysisMetadata; +import com.google.devtools.build.lib.actions.ActionKeyContext; import com.google.devtools.build.lib.actions.ActionLookupValue; import com.google.devtools.build.lib.actions.Actions; import com.google.devtools.build.lib.actions.Actions.GeneratingActions; @@ -43,9 +44,12 @@ import javax.annotation.Nullable; * input TreeArtifact. */ public class ActionTemplateExpansionFunction implements SkyFunction { + private final ActionKeyContext actionKeyContext; private final Supplier<Boolean> removeActionsAfterEvaluation; - ActionTemplateExpansionFunction(Supplier<Boolean> removeActionsAfterEvaluation) { + ActionTemplateExpansionFunction( + ActionKeyContext actionKeyContext, Supplier<Boolean> removeActionsAfterEvaluation) { + this.actionKeyContext = actionKeyContext; this.removeActionsAfterEvaluation = Preconditions.checkNotNull(removeActionsAfterEvaluation); } @@ -83,7 +87,8 @@ public class ActionTemplateExpansionFunction implements SkyFunction { throw new ActionTemplateExpansionFunctionException(e); } - return new ActionTemplateExpansionValue(expandedActions, removeActionsAfterEvaluation.get()); + return new ActionTemplateExpansionValue( + actionKeyContext, expandedActions, removeActionsAfterEvaluation.get()); } /** Exception thrown by {@link ActionTemplateExpansionFunction}. */ @@ -104,7 +109,7 @@ public class ActionTemplateExpansionFunction implements SkyFunction { private void checkActionAndArtifactConflicts(Iterable<Action> actions) throws ActionConflictException, ArtifactPrefixConflictException { GeneratingActions generatingActions = - Actions.findAndThrowActionConflict(ImmutableList.<ActionAnalysisMetadata>copyOf(actions)); + Actions.findAndThrowActionConflict(actionKeyContext, ImmutableList.copyOf(actions)); Map<ActionAnalysisMetadata, ArtifactPrefixConflictException> artifactPrefixConflictMap = Actions.findArtifactPrefixConflicts( ActionLookupValue.getMapForConsistencyCheck( |