]> git.eshelyaron.com Git - emacs.git/commitdiff
(stop_other_atimers): Don't call cancel_atimer because
authorGerd Moellmann <gerd@gnu.org>
Thu, 17 Feb 2000 13:15:26 +0000 (13:15 +0000)
committerGerd Moellmann <gerd@gnu.org>
Thu, 17 Feb 2000 13:15:26 +0000 (13:15 +0000)
that unblocks alarms.

src/ChangeLog
src/atimer.c

index c9edb3660b9f571886a01c34d40865a3728e26b3..36092bdbe61ec945f7baada6b19fa350c1f2011a 100644 (file)
@@ -1,5 +1,8 @@
 2000-02-17  Gerd Moellmann  <gerd@gnu.org>
 
+       * atimer.c (stop_other_atimers): Don't call cancel_atimer because
+       that unblocks alarms.
+
        * alloc.c, bytecode.c, data.c, dispnew.c, ecrt0.c, editfns.c,
        emacs.c, floatfns.c, fns.c, lread.c, print.c, config.in, lisp.h,
        Makefile.in: Remove `LISP_FLOAT_TYPE' and `standalone'.
index 9dc4f508f8b7883f76ad81a2e8de6c464568debd..279c5f9eba1faf42905850699991afb37e46e178 100644 (file)
@@ -214,11 +214,23 @@ stop_other_atimers (t)
 
   if (t)
     {
-      cancel_atimer (t);
-      if (free_atimers != t)
-       abort ();
-      free_atimers = free_atimers->next;
-      t->next = NULL;
+      struct atimer *p, *prev;
+      
+      /* See if T is active.  */
+      for (p = atimers, prev = 0; p && p != t; p = p->next)
+       ;
+
+      if (p == t)
+       {
+         if (prev)
+           prev->next = t->next;
+         else
+           atimers = t->next;
+         t->next = NULL;
+       }
+      else
+       /* T is not active.  Let's handle this like T == 0.  */
+       t = NULL;
     }
   
   stopped_atimers = atimers;