bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#17392: 24.3.90; cursor blinks faster and faster


From: Michael Heerdegen
Subject: bug#17392: 24.3.90; cursor blinks faster and faster
Date: Wed, 14 May 2014 17:36:46 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3.90 (gnu/linux)

Eli Zaretskii <eliz@gnu.org> writes:

> Actually, this is inaccurate: blink-cursor-timer-function, which runs
> off a regular (non-idle) timer, sometimes calls blink-cursor-suspend,
> which cancels the blink-cursor-idle-timer.
>
> But this looks perfectly normal, and indeed if Michael's advice runs
> when the idle timer expired, it might find that the idle timer that
> runs was already deleted from timer-idle-list, because we invoke the
> timers from a copy of the list.  If this is what happens, then what
> Michael's code reveals is an artifact of a perfectly normal and
> expected operation.


Could something the following happen?

1.  blink-cursor-idle-timer is bound to the only idle blink timer,
    everything is fine.

2.  timer-idle-list is `copy-sequenc'ed.

3.  The idle timer is canceled.  `blink-cursor-idle-timer' is now bound
to nil.

4.  The old timer from 2. is called with timer-event-handler.
Note that as a side effect, the timer is pushed back to timer-idle-list,
but `blink-cursor-idle-timer' is still bound to nil.

5.  `blink-cursor-check' is run.  It sees that `blink-cursor-idle-timer'
is nil and starts another idle timer.


Michael.





reply via email to

[Prev in Thread] Current Thread [Next in Thread]