| Index: runtime/bin/process_linux.cc
|
| diff --git a/runtime/bin/process_linux.cc b/runtime/bin/process_linux.cc
|
| index 838dc27a75b7aa23aff65aa67dddc2992a2468c6..e55cb5d029e9bab776550aefa4924ae00f46f622 100644
|
| --- a/runtime/bin/process_linux.cc
|
| +++ b/runtime/bin/process_linux.cc
|
| @@ -534,6 +534,14 @@ int Process::Start(const char* path,
|
| TEMP_FAILURE_RETRY(close(read_err[1]));
|
| TEMP_FAILURE_RETRY(close(write_out[0]));
|
| TEMP_FAILURE_RETRY(close(write_out[1]));
|
| +
|
| + // Since exec() failed, we're not interested in the exit code.
|
| + // We close the reading side of the exit code pipe here.
|
| + // GetProcessExitCodes will get a broken pipe error when it tries to write
|
| + // to the writing side of the pipe and it will ignore the error.
|
| + TEMP_FAILURE_RETRY(close(*exit_event));
|
| + *exit_event = -1;
|
| +
|
| if (bytes_read == -1) {
|
| return errno; // Read failed.
|
| } else {
|
|
|