[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#17392: 24.3.90; cursor blinks faster and faster
From: |
Eli Zaretskii |
Subject: |
bug#17392: 24.3.90; cursor blinks faster and faster |
Date: |
Sat, 10 May 2014 14:06:38 +0300 |
> From: Michael Heerdegen <michael_heerdegen@web.de>
> Date: Sat, 10 May 2014 12:34:09 +0200
> Cc: 17392@debbugs.gnu.org
>
> In emacs -Q, I did
>
> --8<---------------cut here---------------start------------->8---
> (progn
> (advice-add 'timer-event-handler :before
> (lambda (timer)
> (unless (or (memq timer timer-list)
> (memq timer timer-idle-list))
> (message "This should not happen"))))
> (defun provoke (&rest _)
> (run-with-idle-timer .001 nil
> (lambda () (sit-for 2.))))
> (defadvice handle-switch-frame (after provoke activate)
> (provoke)))
> --8<---------------cut here---------------end--------------->8---
>
> After switching frames a bit, I get "This should not happen". 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. timer-event-handler pushes the zombie timer
> to timer-idle-list as well, so then we have two of them there etc.
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?
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? The
first sentence seems to say there isn't, but then the next sentence
says there is.
- bug#17392: 24.3.90; cursor blinks faster and faster, (continued)
- bug#17392: 24.3.90; cursor blinks faster and faster, Michael Heerdegen, 2014/05/06
- bug#17392: 24.3.90; cursor blinks faster and faster, Stefan Monnier, 2014/05/06
- bug#17392: 24.3.90; cursor blinks faster and faster, Michael Heerdegen, 2014/05/06
- bug#17392: 24.3.90; cursor blinks faster and faster, Stefan Monnier, 2014/05/07
- bug#17392: 24.3.90; cursor blinks faster and faster, Michael Heerdegen, 2014/05/08
- bug#17392: 24.3.90; cursor blinks faster and faster, Eli Zaretskii, 2014/05/08
- bug#17392: 24.3.90; cursor blinks faster and faster, Lennart Borgman, 2014/05/08
- bug#17392: 24.3.90; cursor blinks faster and faster, Michael Heerdegen, 2014/05/08
- bug#17392: 24.3.90; cursor blinks faster and faster, Lennart Borgman, 2014/05/08
- bug#17392: 24.3.90; cursor blinks faster and faster, Michael Heerdegen, 2014/05/10
- bug#17392: 24.3.90; cursor blinks faster and faster,
Eli Zaretskii <=
- bug#17392: 24.3.90; cursor blinks faster and faster, Michael Heerdegen, 2014/05/10
- bug#17392: 24.3.90; cursor blinks faster and faster, Eli Zaretskii, 2014/05/10
- bug#17392: 24.3.90; cursor blinks faster and faster, Eli Zaretskii, 2014/05/10
- bug#17392: 24.3.90; cursor blinks faster and faster, Michael Heerdegen, 2014/05/11
- bug#17392: 24.3.90; cursor blinks faster and faster, Eli Zaretskii, 2014/05/11
- bug#17392: 24.3.90; cursor blinks faster and faster, Michael Heerdegen, 2014/05/13
- bug#17392: 24.3.90; cursor blinks faster and faster, Eli Zaretskii, 2014/05/13
- bug#17392: 24.3.90; cursor blinks faster and faster, Lennart Borgman, 2014/05/13
- bug#17392: 24.3.90; cursor blinks faster and faster, Eli Zaretskii, 2014/05/13
- bug#17392: 24.3.90; cursor blinks faster and faster, Lennart Borgman, 2014/05/13