aboutsummaryrefslogtreecommitdiffstats
path: root/executor
diff options
context:
space:
mode:
Diffstat (limited to 'executor')
-rw-r--r--executor/executor_runner.h6
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;