aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/skyframe/ActionExecutionFunction.java
diff options
context:
space:
mode:
authorGravatar Janak Ramakrishnan <janakr@google.com>2015-04-03 23:06:31 +0000
committerGravatar John Field <jfield@google.com>2015-04-06 18:48:15 +0000
commita5c1f969d33a8e3e552ee300d23d2e5a458b3794 (patch)
tree9f93f69f29a081e8b156d771ec463b39f01f07ab /src/main/java/com/google/devtools/build/lib/skyframe/ActionExecutionFunction.java
parenta8371e252367be958b72d312add5ce2fa963c209 (diff)
Split FileAndMetadataCache into two classes, since most of the shared functionality is gone.
-- MOS_MIGRATED_REVID=90289916
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/skyframe/ActionExecutionFunction.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/ActionExecutionFunction.java48
1 files changed, 20 insertions, 28 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/ActionExecutionFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/ActionExecutionFunction.java
index 9861aa1831..cf153439f3 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/ActionExecutionFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/ActionExecutionFunction.java
@@ -278,29 +278,28 @@ public class ActionExecutionFunction implements SkyFunction, CompletionReceiver
return skyframeActionExecutor.executeAction(action, null, -1, null);
}
// This may be recreated if we discover inputs.
- FileAndMetadataCache fileAndMetadataCache = new FileAndMetadataCache(
- state.inputArtifactData,
- state.expandedMiddlemen,
- skyframeActionExecutor.getExecRoot(),
- action.getOutputs(),
- tsgm);
+ ActionMetadataHandler metadataHandler = new ActionMetadataHandler(state.inputArtifactData,
+ action.getOutputs(), tsgm);
long actionStartTime = System.nanoTime();
// We only need to check the action cache if we haven't done it on a previous run.
if (!state.hasCheckedActionCache()) {
- state.token = skyframeActionExecutor.checkActionCache(action, fileAndMetadataCache,
+ state.token = skyframeActionExecutor.checkActionCache(action, metadataHandler,
actionStartTime, state.allInputs.actionCacheInputs);
}
if (state.token == null) {
// We got a hit from the action cache -- no need to execute.
return new ActionExecutionValue(
- fileAndMetadataCache.getOutputData(),
- fileAndMetadataCache.getAdditionalOutputData());
+ metadataHandler.getOutputData(),
+ metadataHandler.getAdditionalOutputData());
}
// This may be recreated if we discover inputs.
+ PerActionFileCache perActionFileCache =
+ new PerActionFileCache(state.inputArtifactData, skyframeActionExecutor.getExecRoot());
ActionExecutionContext actionExecutionContext =
- skyframeActionExecutor.constructActionExecutionContext(fileAndMetadataCache);
+ skyframeActionExecutor.constructActionExecutionContext(perActionFileCache,
+ metadataHandler, state.expandedMiddlemen);
boolean inputsDiscoveredDuringActionExecution = false;
Map<Artifact, FileArtifactValue> metadataFoundDuringActionExecution = null;
try {
@@ -324,20 +323,18 @@ public class ActionExecutionFunction implements SkyFunction, CompletionReceiver
return null;
}
state.inputArtifactData = inputArtifactData;
- fileAndMetadataCache = new FileAndMetadataCache(
- state.inputArtifactData,
- state.expandedMiddlemen,
- skyframeActionExecutor.getExecRoot(),
- action.getOutputs(),
- tsgm
- );
+ perActionFileCache =
+ new PerActionFileCache(state.inputArtifactData, skyframeActionExecutor.getExecRoot());
+ metadataHandler =
+ new ActionMetadataHandler(state.inputArtifactData, action.getOutputs(), tsgm);
actionExecutionContext =
- skyframeActionExecutor.constructActionExecutionContext(fileAndMetadataCache);
+ skyframeActionExecutor.constructActionExecutionContext(perActionFileCache,
+ metadataHandler, state.expandedMiddlemen);
}
}
if (!state.hasExecutedAction()) {
state.value = skyframeActionExecutor.executeAction(action,
- fileAndMetadataCache, actionStartTime, actionExecutionContext);
+ metadataHandler, actionStartTime, actionExecutionContext);
}
} finally {
try {
@@ -362,15 +359,10 @@ public class ActionExecutionFunction implements SkyFunction, CompletionReceiver
inputArtifactData.putAll(state.inputArtifactData);
inputArtifactData.putAll(metadataFoundDuringActionExecution);
state.inputArtifactData = inputArtifactData;
- fileAndMetadataCache = new FileAndMetadataCache(
- state.inputArtifactData,
- state.expandedMiddlemen,
- skyframeActionExecutor.getExecRoot(),
- action.getOutputs(),
- tsgm
- );
- }
- skyframeActionExecutor.afterExecution(action, fileAndMetadataCache, state.token);
+ metadataHandler =
+ new ActionMetadataHandler(state.inputArtifactData, action.getOutputs(), tsgm);
+ }
+ skyframeActionExecutor.afterExecution(action, metadataHandler, state.token);
return state.value;
}