From 42e26cac36242b129c037dc8f1e7787f583e614a Mon Sep 17 00:00:00 2001 From: Gerd Moellmann Date: Tue, 6 Mar 2001 19:50:08 +0000 Subject: (XTflash): Make the timeout of select shorter, and call select repeatedly until the desired time expires. --- src/xterm.c | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/src/xterm.c b/src/xterm.c index fc09897de01..ae786d5058b 100644 --- a/src/xterm.c +++ b/src/xterm.c @@ -5437,18 +5437,23 @@ XTflash (f) wakeup.tv_sec += (wakeup.tv_usec / 1000000); wakeup.tv_usec %= 1000000; - /* Keep waiting until past the time wakeup. */ - while (1) + /* Keep waiting until past the time wakeup or any input gets + available. */ + while (! detect_input_pending ()) { + struct timeval current; struct timeval timeout; - EMACS_GET_TIME (timeout); + EMACS_GET_TIME (current); - /* In effect, timeout = wakeup - timeout. - Break if result would be negative. */ - if (timeval_subtract (&timeout, wakeup, timeout)) + /* Break if result would be negative. */ + if (timeval_subtract (¤t, wakeup, current)) break; + /* How long `select' should wait. */ + timeout.tv_sec = 0; + timeout.tv_usec = 10000; + /* Try to wait that long--but we might wake up sooner. */ select (0, NULL, NULL, NULL, &timeout); } -- cgit v1.2.1