Issue SpawnExecutedEvent in WorkerSpawnRunner
RELNOTES: None.
PiperOrigin-RevId: 301575119
diff --git a/src/main/java/com/google/devtools/build/lib/worker/WorkerSpawnRunner.java b/src/main/java/com/google/devtools/build/lib/worker/WorkerSpawnRunner.java
index 2499ebd..244d321 100644
--- a/src/main/java/com/google/devtools/build/lib/worker/WorkerSpawnRunner.java
+++ b/src/main/java/com/google/devtools/build/lib/worker/WorkerSpawnRunner.java
@@ -30,11 +30,12 @@
import com.google.devtools.build.lib.actions.ResourceManager;
import com.google.devtools.build.lib.actions.ResourceManager.ResourceHandle;
import com.google.devtools.build.lib.actions.Spawn;
+import com.google.devtools.build.lib.actions.SpawnExecutedEvent;
import com.google.devtools.build.lib.actions.SpawnResult;
import com.google.devtools.build.lib.actions.Spawns;
import com.google.devtools.build.lib.actions.UserExecException;
import com.google.devtools.build.lib.events.Event;
-import com.google.devtools.build.lib.events.EventHandler;
+import com.google.devtools.build.lib.events.ExtendedEventHandler;
import com.google.devtools.build.lib.exec.BinTools;
import com.google.devtools.build.lib.exec.RunfilesTreeUpdater;
import com.google.devtools.build.lib.exec.SpawnRunner;
@@ -52,6 +53,7 @@
import java.nio.file.Files;
import java.nio.file.Paths;
import java.time.Duration;
+import java.time.Instant;
import java.util.ArrayList;
import java.util.List;
import java.util.SortedMap;
@@ -76,7 +78,7 @@
private final Path execRoot;
private final WorkerPool workers;
private final Multimap<String, String> extraFlags;
- private final EventHandler reporter;
+ private final ExtendedEventHandler reporter;
private final SpawnRunner fallbackRunner;
private final LocalEnvProvider localEnvProvider;
private final boolean sandboxUsesExpandedTreeArtifactsInRunfiles;
@@ -88,7 +90,7 @@
Path execRoot,
WorkerPool workers,
Multimap<String, String> extraFlags,
- EventHandler reporter,
+ ExtendedEventHandler reporter,
SpawnRunner fallbackRunner,
LocalEnvProvider localEnvProvider,
boolean sandboxUsesExpandedTreeArtifactsInRunfiles,
@@ -187,21 +189,25 @@
context.speculating(),
Spawns.supportsMultiplexWorkers(spawn));
- long startTime = System.currentTimeMillis();
+ Instant startTime = Instant.now();
WorkResponse response =
execInWorker(spawn, key, context, inputFiles, outputs, flagFiles, inputFileCache);
- Duration wallTime = Duration.ofMillis(System.currentTimeMillis() - startTime);
+ Duration wallTime = Duration.between(Instant.now(), startTime);
FileOutErr outErr = context.getFileOutErr();
response.getOutputBytes().writeTo(outErr.getErrorStream());
int exitCode = response.getExitCode();
- return new SpawnResult.Builder()
- .setRunnerName(getName())
- .setExitCode(exitCode)
- .setStatus(exitCode == 0 ? SpawnResult.Status.SUCCESS : SpawnResult.Status.NON_ZERO_EXIT)
- .setWallTime(wallTime)
- .build();
+ SpawnResult result =
+ new SpawnResult.Builder()
+ .setRunnerName(getName())
+ .setExitCode(exitCode)
+ .setStatus(
+ exitCode == 0 ? SpawnResult.Status.SUCCESS : SpawnResult.Status.NON_ZERO_EXIT)
+ .setWallTime(wallTime)
+ .build();
+ reporter.post(new SpawnExecutedEvent(spawn, result, startTime));
+ return result;
}
/**