From 2503c8b1aee911d3a53a7950e39eab34c05192fb Mon Sep 17 00:00:00 2001 From: Gerd Moellmann Date: Thu, 17 Feb 2000 13:15:26 +0000 Subject: [PATCH] (stop_other_atimers): Don't call cancel_atimer because that unblocks alarms. --- src/ChangeLog | 3 +++ src/atimer.c | 22 +++++++++++++++++----- 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index c9edb3660b9..36092bdbe61 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,5 +1,8 @@ 2000-02-17 Gerd Moellmann + * 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'. diff --git a/src/atimer.c b/src/atimer.c index 9dc4f508f8b..279c5f9eba1 100644 --- a/src/atimer.c +++ b/src/atimer.c @@ -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; -- 2.39.5