diff options
-rw-r--r-- | src/output/plugins/FifoOutputPlugin.cxx | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/output/plugins/FifoOutputPlugin.cxx b/src/output/plugins/FifoOutputPlugin.cxx index d425ce85d..aa2b74bc2 100644 --- a/src/output/plugins/FifoOutputPlugin.cxx +++ b/src/output/plugins/FifoOutputPlugin.cxx @@ -227,12 +227,13 @@ inline void FifoOutput::Cancel() { char buf[FIFO_BUFFER_SIZE]; - int bytes = 1; + int bytes; timer->Reset(); - while (bytes > 0 && errno != EINTR) + do { bytes = read(input, buf, FIFO_BUFFER_SIZE); + } while (bytes > 0 && errno != EINTR); if (bytes < 0 && errno != EAGAIN) { FormatErrno(fifo_output_domain, |