]> code.delx.au - gnu-emacs/blobdiff - src/atimer.c
(main): Change `#ifdef HAVE_CARBON' to `#if defined (MAC_OSX) &&
[gnu-emacs] / src / atimer.c
index 7e78bdad9c0edb30a34f61dc559bb53b21d585ab..ff5b8faaf36e864abb16877469442a58022af251 100644 (file)
@@ -364,6 +364,8 @@ alarm_signal_handler (signo)
 {
   EMACS_TIME now;
 
+  SIGNAL_THREAD_CHECK (signo);
+
   EMACS_GET_TIME (now);
   pending_atimers = 0;
 
@@ -375,7 +377,9 @@ alarm_signal_handler (signo)
 
       t = atimers;
       atimers = atimers->next;
+#ifndef MAC_OSX
       t->fn (t);
+#endif
 
       if (t->type == ATIMER_CONTINUOUS)
        {
@@ -387,11 +391,16 @@ alarm_signal_handler (signo)
          t->next = free_atimers;
          free_atimers = t;
        }
+#ifdef MAC_OSX
+      /* Fix for Ctrl-G.  Perhaps this should apply to all platforms. */
+      t->fn (t); 
+#endif
 
       EMACS_GET_TIME (now);
     }
 
-  set_alarm ();
+  if (! pending_atimers)
+    set_alarm ();
 }