From a38c47a22c63b0e31874138548e45b58bfb636bf Mon Sep 17 00:00:00 2001 From: Markus Armbruster Date: Sun, 21 Feb 2010 18:44:16 +0100 Subject: [PATCH] Generation numbers didn't catch all potential yields on output io_output_if_queue_long() called ef_make_stale() only for long queues. Missed in commit 2fa5f652, v4.3.24. --- src/lib/empthread/io.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/lib/empthread/io.c b/src/lib/empthread/io.c index 5f3202597..67c605206 100644 --- a/src/lib/empthread/io.c +++ b/src/lib/empthread/io.c @@ -250,8 +250,11 @@ io_output_if_queue_long(struct iop *iop, int wait) if (CANT_HAPPEN(iop->last_out > len)) iop->last_out = 0; - if (len - iop->last_out < iop->bufsize) + if (len - iop->last_out < iop->bufsize) { + if (wait) + ef_make_stale(); return 0; + } return io_output(iop, wait); } -- 2.43.0