From 791587eebf6d9bd552262845aaa191b8523e5ac9 Mon Sep 17 00:00:00 2001 From: Karl Heuer Date: Wed, 20 Apr 1994 00:24:59 +0000 Subject: [PATCH 1/1] (read_avail_input): Don't retry read. --- src/keyboard.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/keyboard.c b/src/keyboard.c index 753ba028b4..0c025d6b62 100644 --- a/src/keyboard.c +++ b/src/keyboard.c @@ -3355,16 +3355,25 @@ read_avail_input (expected) if (nread == 0) kill (0, SIGHUP); #endif - /* Retry the read if it was interrupted. */ } - while (nread < 0 && (errno == EINTR + while ( + /* We used to retry the read if it was interrupted. + But this does the wrong thing when O_NDELAY causes + an EAGAIN error. Does anybody know of a situation + where a retry is actually needed? */ +#if 0 + nread < 0 && (errno == EAGAIN #ifdef EFAULT || errno == EFAULT #endif #ifdef EBADSLT || errno == EBADSLT #endif - )); + ) +#else + 0 +#endif + ); #ifndef FIONREAD #if defined (USG) || defined (DGUX) -- 2.20.1