- 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))
+ else if (wait == TIMEOUT)
+ cmp_time = end_time, have_cmp_time = true;
+ else if (!process_skipped && got_some_output > 0
+ && (timeout.tv_sec > 0 || timeout.tv_nsec > 0))
+ {
+ if (!timespec_valid_p (got_output_end_time))
+ break;
+ cmp_time = got_output_end_time, have_cmp_time = true;
+ }
+ if (have_cmp_time)