diff options
Diffstat (limited to 'executor')
| -rw-r--r-- | executor/executor_runner.h | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/executor/executor_runner.h b/executor/executor_runner.h index a688fa5e1..2ace905a7 100644 --- a/executor/executor_runner.h +++ b/executor/executor_runner.h @@ -403,7 +403,11 @@ private: bool ReadResponse(bool out_of_requests) { uint32 status; - ssize_t n = read(resp_pipe_, &status, sizeof(status)); + ssize_t n; + while ((n = read(resp_pipe_, &status, sizeof(status))) == -1) { + if (errno != EINTR && errno != EAGAIN) + break; + } if (n == 0) { debug("proc %d: response pipe EOF\n", id_); return false; |
