From 9446e9b55e01aee0425a1f21b47b98df55043c6f Mon Sep 17 00:00:00 2001 From: Philipp Wollermann Date: Wed, 3 Feb 2016 13:18:26 +0000 Subject: Make The Build Faster: Drop the describeStrategy() and strategyLocality() methods, as we can simply pass an ActionStatusMessage to the EventBus instead. All SpawnActionContexts now send an appropriate message when they execute a Spawn. This also gets rid of the idiom that an Action knows which strategy will be used to execute it - this decision and knowledge belongs to the executor, not the action. -- MOS_MIGRATED_REVID=113731846 --- .../build/lib/sandbox/LinuxSandboxedStrategy.java | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) (limited to 'src/main/java/com/google/devtools/build/lib/sandbox') diff --git a/src/main/java/com/google/devtools/build/lib/sandbox/LinuxSandboxedStrategy.java b/src/main/java/com/google/devtools/build/lib/sandbox/LinuxSandboxedStrategy.java index b15744955d..9148014a5e 100644 --- a/src/main/java/com/google/devtools/build/lib/sandbox/LinuxSandboxedStrategy.java +++ b/src/main/java/com/google/devtools/build/lib/sandbox/LinuxSandboxedStrategy.java @@ -22,6 +22,7 @@ import com.google.devtools.build.lib.Constants; import com.google.devtools.build.lib.actions.ActionExecutionContext; import com.google.devtools.build.lib.actions.ActionInput; import com.google.devtools.build.lib.actions.ActionInputHelper; +import com.google.devtools.build.lib.actions.ActionStatusMessage; import com.google.devtools.build.lib.actions.Artifact; import com.google.devtools.build.lib.actions.EnvironmentalExecException; import com.google.devtools.build.lib.actions.ExecException; @@ -95,20 +96,24 @@ public class LinuxSandboxedStrategy implements SpawnActionContext { @Override public void exec(Spawn spawn, ActionExecutionContext actionExecutionContext) throws ExecException { - Executor executor = actionExecutionContext.getExecutor(); - // Certain actions can't run remotely or in a sandbox - pass them on to the standalone strategy. if (!spawn.isRemotable()) { standaloneStrategy.exec(spawn, actionExecutionContext); return; } + Executor executor = actionExecutionContext.getExecutor(); + if (executor.reportsSubcommands()) { executor.reportSubcommand( Label.print(spawn.getOwner().getLabel()) + " [" + spawn.getResourceOwner().prettyPrint() + "]", spawn.asShellCommand(executor.getExecRoot())); } + executor + .getEventBus() + .post(ActionStatusMessage.runningStrategy(spawn.getResourceOwner(), "sandbox")); + FileOutErr outErr = actionExecutionContext.getFileOutErr(); // The execId is a unique ID just for this invocation of "exec". @@ -492,12 +497,12 @@ public class LinuxSandboxedStrategy implements SpawnActionContext { } @Override - public String strategyLocality(String mnemonic, boolean remotable) { - return "linux-sandboxing"; + public boolean isRemotable(String mnemonic, boolean remotable) { + return false; } @Override - public boolean isRemotable(String mnemonic, boolean remotable) { - return false; + public String toString() { + return "sandboxed"; } } -- cgit v1.2.3