changeset 14890:71c2cf461805

(wait_reading_process_input_1): New (empty) function. (wait_reading_process_input): Call wait_reading_process_input_1. If timer_check runs some timers, retry it.
author Richard M. Stallman <rms@gnu.org>
date Wed, 27 Mar 1996 02:35:15 +0000
parents acc4f62dbeb0
children 20e6d2a56aab
files src/process.c
diffstat 1 files changed, 22 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/process.c	Wed Mar 27 00:14:20 1996 +0000
+++ b/src/process.c	Wed Mar 27 02:35:15 1996 +0000
@@ -1959,6 +1959,12 @@
    when not inside wait_reading_process_input.  */
 static int waiting_for_user_input_p;
 
+/* This is here so breakpoints can be put on it.  */
+static
+wait_reading_process_input_1 ()
+{
+}
+
 /* Read and dispose of subprocess output while waiting for timeout to
    elapse and/or keyboard input to be available.
 
@@ -2079,10 +2085,19 @@
       if (1)
 	{
 	  EMACS_TIME timer_delay;
-	  int old_timers_run = timers_run;
+	  int old_timers_run;
+
+	retry:
+	  old_timers_run = timers_run;
 	  timer_delay = timer_check (1);
 	  if (timers_run != old_timers_run && do_display)
-	    redisplay_preserve_echo_area ();
+	    {
+	      redisplay_preserve_echo_area ();
+	      /* We must retry, since a timer may have requeued itself
+		 and that could alter the time_delay.  */
+	      goto retry;
+	    }
+
 	  if (! EMACS_TIME_NEG_P (timer_delay) && time_limit != -1)
 	    {
 	      EMACS_TIME difference;
@@ -2093,6 +2108,11 @@
 		  timeout_reduced_for_timers = 1;
 		}
 	    }
+	  else
+	    {
+	      /* This is so a breakpoint can be put here.  */
+	      wait_reading_process_input_1 ();
+	    }
 	}
 
       /* Cause C-g and alarm signals to take immediate action,