aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/skyframe/ActionTemplateExpansionFunction.java
diff options
context:
space:
mode:
authorGravatar tomlu <tomlu@google.com>2017-11-29 14:01:21 -0800
committerGravatar Copybara-Service <copybara-piper@google.com>2017-11-29 14:03:30 -0800
commit3d1a194ff9e76f25f1a7242ff2d021523ba8e4a0 (patch)
tree9fec583a59b8ee6ee0f4fac513d5471956dfe1d3 /src/main/java/com/google/devtools/build/lib/skyframe/ActionTemplateExpansionFunction.java
parent8f8b8859fc7d85feee97481443fb11c0b7ae03ce (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.java11
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(