]> code.delx.au - gnu-emacs/blobdiff - src/atimer.c
(get_adstyle_property): Fix previous change.
[gnu-emacs] / src / atimer.c
index 916c965de9204fde6623354419e04d68f019e16a..e7b23f21b749fe78e6f4db71a08c977c14104905 100644 (file)
@@ -1,6 +1,6 @@
 /* Asynchronous timers.
    Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005,
-                 2006, 2007, 2008  Free Software Foundation, Inc.
+                 2006, 2007, 2008, 2009  Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
@@ -384,8 +384,21 @@ run_timers ()
       EMACS_GET_TIME (now);
     }
 
+  if (! atimers)
+    pending_atimers = 0;
+
+#ifdef SYNC_INPUT
+  if (pending_atimers)
+    pending_signals = 1;
+  else
+    {
+      pending_signals = interrupt_input_pending;
+      set_alarm ();
+    }
+#else
   if (! pending_atimers)
     set_alarm ();
+#endif
 }
 
 
@@ -397,7 +410,9 @@ alarm_signal_handler (signo)
      int signo;
 {
   pending_atimers = 1;
-#ifndef SYNC_INPUT
+#ifdef SYNC_INPUT
+  pending_signals = 1;
+#else
   run_timers ();
 #endif
 }
@@ -439,6 +454,7 @@ init_atimer ()
 {
   free_atimers = atimers = NULL;
   pending_atimers = 0;
+  /* pending_signals is initialized in init_keyboard.*/
   signal (SIGALRM, alarm_signal_handler);
 }