Mercurial > emacs
diff src/process.c @ 14404:cba05f90ee57
(wait_reading_process_input): Call timer_check
and shorten the inner delay if appropriate.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Mon, 29 Jan 1996 04:50:16 +0000 |
parents | 3562c5f43780 |
children | 4aa693528ee3 |
line wrap: on
line diff
--- a/src/process.c Mon Jan 29 02:26:52 1996 +0000 +++ b/src/process.c Mon Jan 29 04:50:16 1996 +0000 @@ -249,6 +249,8 @@ static Lisp_Object get_process (); +extern EMACS_TIME timer_check (); + /* Maximum number of bytes to send to a pty without an eof. */ static int pty_max_bytes; @@ -2053,6 +2055,22 @@ EMACS_SET_SECS_USECS (timeout, 100000, 0); } + /* If our caller will not immediately handle keyboard events, + run timer events directly. + (Callers that will immediately read keyboard events + call timer_delay on their own.) */ + if (read_kbd >= 0) + { + EMACS_TIME timer_delay = timer_check (1); + if (! EMACS_TIME_NEG_P (timer_delay)) + { + EMACS_TIME difference; + EMACS_SUB_TIME (difference, timer_delay, timeout); + if (EMACS_TIME_NEG_P (difference)) + timeout = timer_delay; + } + } + /* Cause C-g and alarm signals to take immediate action, and cause input available signals to zero out timeout.