diff options
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/skyframe/SkyframeActionExecutor.java')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/skyframe/SkyframeActionExecutor.java | 19 |
1 files changed, 5 insertions, 14 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeActionExecutor.java b/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeActionExecutor.java index 0e009cd78b..a415e4859f 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeActionExecutor.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeActionExecutor.java @@ -51,7 +51,6 @@ import com.google.devtools.build.lib.actions.Actions; import com.google.devtools.build.lib.actions.AlreadyReportedActionExecutionException; import com.google.devtools.build.lib.actions.Artifact; import com.google.devtools.build.lib.actions.Artifact.ArtifactExpander; -import com.google.devtools.build.lib.actions.Artifact.OwnerlessArtifactWrapper; import com.google.devtools.build.lib.actions.ArtifactPathResolver; import com.google.devtools.build.lib.actions.ArtifactPrefixConflictException; import com.google.devtools.build.lib.actions.CachedActionEvent; @@ -146,8 +145,7 @@ public final class SkyframeActionExecutor { // We don't want to execute the action again on the second entry to the SkyFunction. // In both cases, we store the already-computed ActionExecutionValue to avoid having to compute it // again. - private ConcurrentMap< - OwnerlessArtifactWrapper, Pair<ActionLookupData, FutureTask<ActionExecutionValue>>> + private ConcurrentMap<Artifact, Pair<ActionLookupData, FutureTask<ActionExecutionValue>>> buildActionMap; // Errors found when examining all actions in the graph are stored here, so that they can be @@ -404,16 +402,13 @@ public final class SkyframeActionExecutor { } boolean probeActionExecution(Action action) { - return buildActionMap.containsKey(new OwnerlessArtifactWrapper(action.getPrimaryOutput())); + return buildActionMap.containsKey(action.getPrimaryOutput()); } private boolean actionReallyExecuted(Action action, ActionLookupData actionLookupData) { Pair<ActionLookupData, ?> cachedRun = Preconditions.checkNotNull( - buildActionMap.get(new OwnerlessArtifactWrapper(action.getPrimaryOutput())), - "%s %s", - action, - actionLookupData); + buildActionMap.get(action.getPrimaryOutput()), "%s %s", action, actionLookupData); return actionLookupData.equals(cachedRun.getFirst()); } @@ -453,8 +448,7 @@ public final class SkyframeActionExecutor { actionLookupData)); // Check to see if another action is already executing/has executed this value. Pair<ActionLookupData, FutureTask<ActionExecutionValue>> oldAction = - buildActionMap.putIfAbsent( - new OwnerlessArtifactWrapper(primaryOutput), Pair.of(actionLookupData, actionTask)); + buildActionMap.putIfAbsent(primaryOutput, Pair.of(actionLookupData, actionTask)); // true if this is a non-shared action or it's shared and to be executed. boolean isPrimaryActionForTheValue = oldAction == null; @@ -465,10 +459,7 @@ public final class SkyframeActionExecutor { actionTask = oldAction.second; } try { - ActionExecutionValue value = actionTask.get(); - return isPrimaryActionForTheValue - ? value - : value.transformForSharedAction(action.getOutputs()); + return actionTask.get(); } catch (ExecutionException e) { Throwables.propagateIfPossible(e.getCause(), ActionExecutionException.class, InterruptedException.class); |