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.