diff options
author | 2015-04-03 23:06:31 +0000 | |
---|---|---|
committer | 2015-04-06 18:48:15 +0000 | |
commit | a5c1f969d33a8e3e552ee300d23d2e5a458b3794 (patch) | |
tree | 9f93f69f29a081e8b156d771ec463b39f01f07ab /src/main/java/com/google/devtools/build/lib/skyframe/ActionExecutionFunction.java | |
parent | a8371e252367be958b72d312add5ce2fa963c209 (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.java | 48 |
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; } |