aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/worker
diff options
context:
space:
mode:
authorGravatar ulfjack <ulfjack@google.com>2017-11-28 01:14:34 -0800
committerGravatar Copybara-Service <copybara-piper@google.com>2017-11-28 01:16:40 -0800
commit32e7a1c55289ff286d5a6f0dea41d76fdf48582b (patch)
tree6189098c9f8d40967e6f78d0bfa015b0b820af66 /src/main/java/com/google/devtools/build/lib/worker
parent25eab014b36753d3b959f4f5f883d0c6ea2ccaad (diff)
Simplify SpawnRunner interface
It turns out that the SUCCESS status is often misunderstood to mean "zero exit", even though this is clearly documented. I've decided to add another status for non-zero exit, and use success only for zero exit to avoid this pitfall. Also, many of the status codes are set, but never used. I decided to reduce the number of status codes to only those that are actually relevant, which simplifies further processing. Instead, we should add a string message for the error case when we need one - we're not using it right now, so I decided not to add that yet. PiperOrigin-RevId: 177129441
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/worker')
-rw-r--r--src/main/java/com/google/devtools/build/lib/worker/WorkerSpawnRunner.java5
1 files changed, 3 insertions, 2 deletions
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 f7853c936d..31e68be8f8 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
@@ -159,9 +159,10 @@ final class WorkerSpawnRunner implements SpawnRunner {
FileOutErr outErr = policy.getFileOutErr();
response.getOutputBytes().writeTo(outErr.getErrorStream());
+ int exitCode = response.getExitCode();
return new SpawnResult.Builder()
- .setExitCode(response.getExitCode())
- .setStatus(SpawnResult.Status.SUCCESS)
+ .setExitCode(exitCode)
+ .setStatus(exitCode == 0 ? SpawnResult.Status.SUCCESS : SpawnResult.Status.NON_ZERO_EXIT)
.setWallTime(wallTime)
.build();
}