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'.
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;