Subject: Re: bug#17392: 24.3.90; cursor blinks faster and faster

From: Michael Heerdegen <[email-masked]>
Date: Sat, 10 May 2014 13:40:26 +0200

Eli Zaretskii <[email-masked]> writes:

> See how timers are run by keyboard.c: we first make a copy of the
> timers' list, and then work on that copy.  The comment there says:
>
>   /* We use copies of the timers' lists to allow a timer to add itself
>      again, without locking up Emacs if the newly added timer is
>      already ripe when added.  */
>
> Can this implementation detail explain what you see?

I seems related.

> Btw, I don't understand what you say here, it sounds a contradiction:
>
> > So an idle blinking timer not in timer-idle-list is called from C
> > with timer-event-handler.  At this point, there is already another
> > blinking timer in timer-idle-list.
>
> So is there a blinking time in timer-idle-list, or isn't there?

There is one blinking timer in timer-idle-list.  But timer-event-handler
is called with a different blinking timer that is not memq in
timer-idle-list.

It seems that the implementation detail you cited leads in our case to
the revival of canceled timers although there haven't been activated
from LISP?

Michael.