diff options
author | Jeremy Harris <jgh146exb@wizmail.org> | 2019-12-17 20:35:28 +0000 |
---|---|---|
committer | Jeremy Harris <jgh146exb@wizmail.org> | 2019-12-18 00:07:22 +0000 |
commit | 2791749f220602482c2cce772e6520c54218c0dd (patch) | |
tree | 63f24cfce6199d0ced7bfe06f1456a797c3b1760 /src/src/queue.c | |
parent | f8f40a64d41c4d47b974810320ab257e2eac0cf3 (diff) | |
download | exim4-2791749f220602482c2cce772e6520c54218c0dd.tar.gz |
GNU/Hurd: retry EINTR returns from pipe I/O
Replaces: a76f64c3d4
Diffstat (limited to 'src/src/queue.c')
-rw-r--r-- | src/src/queue.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/src/queue.c b/src/src/queue.c index a57801426..061743323 100644 --- a/src/src/queue.c +++ b/src/src/queue.c @@ -653,9 +653,10 @@ for (int i = queue_run_in_order ? -1 : 0; the mere fact that read() unblocks is enough. */ set_process_info("running queue: waiting for children of %d", pid); - if ((status = read(pfd[pipe_read], buffer, sizeof(buffer))) != 0) - log_write(0, LOG_MAIN|LOG_PANIC, status > 0 ? - "queue run: unexpected data on pipe" : "queue run: error on pipe: %s", + if ((status = os_pipe_read(pfd[pipe_read], buffer, sizeof(buffer))) != 0) + log_write(0, LOG_MAIN|LOG_PANIC, status > 0 + ? "queue run: unexpected data on pipe" + : "queue run: error on pipe read: %s", strerror(errno)); (void)close(pfd[pipe_read]); set_process_info("running queue"); |