From ce0d739141770f885527a9f1a2db8ff79599ae11 Mon Sep 17 00:00:00 2001 From: Christer Ekholm Date: Sun, 26 Jun 2016 01:53:42 +0200 Subject: [PATCH] Fix condition for return from waiting for process output. * src/process.c (wait_reading_process_output): Move the test for process output to outside setting of cmp_time, so that we don't miss to exit if we have output, but got_output_end_time is not valid. --- src/process.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/process.c b/src/process.c index ed0c529..23e2c52 100644 --- a/src/process.c +++ b/src/process.c @@ -5271,12 +5271,13 @@ wait_reading_process_output (intmax_t time_limit, int nsecs, int read_kbd, timers. */ if (wait < TIMEOUT) break; + if (!process_skipped && got_some_output > 0 + && (!timespec_valid_p (got_output_end_time) + || (timeout.tv_sec > 0 || timeout.tv_nsec > 0))) + break; struct timespec cmp_time = (wait == TIMEOUT ? end_time - : (!process_skipped && got_some_output > 0 - && (timeout.tv_sec > 0 || timeout.tv_nsec > 0)) - ? got_output_end_time : invalid_timespec ()); if (timespec_valid_p (cmp_time)) { -- 2.9.0