[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Timer out of nowhere
From: |
Michael Heerdegen |
Subject: |
Re: Timer out of nowhere |
Date: |
Wed, 13 Feb 2013 20:43:29 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (gnu/linux) |
Lluís <address@hidden> writes:
> Every once in a while, I get this error:
>
> Debugger entered--Lisp error: (error "Selecting deleted buffer")
> adict-guess-dictionary-maybe(#<killed buffer>)
> apply(adict-guess-dictionary-maybe #<killed buffer>)
> byte-code("r\301\302H\303H\"\210)\301\207" [timer apply 5 6] 4)
> timer-event-handler([t 0 2 0 t adict-guess-dictionary-maybe
> (#<killed buffer>) idle 0])
>
> This is from [1].
Yes, I see the same since I've upgraded my emacs.
> The strange part is that I just killed every possible buffer (in case
> it was a local timer on any of them), and `timer-list' shows
> absolutely no entry with `adict-guess-dictionary-maybe'.
It's in `timer-idle-list'.
> Any ideas on how to track this problem?
It's a bug in auto-dictionary. I guess that in prior Emacs version, the
problem was also there, but just no message was raised.
Anyway, once `auto-dictionary-mode' calls `run-with-idle-timer', the
timer stays in `timer-idle-list' even after its buffer has been killed.
I think this is not hard to fix. The timer runs
`adict-guess-dictionary-maybe'. This function should just check if the
BUFFER argument is `buffer-live-p'. If it is not, it just has to cancel
`adict-timer'.
Regards,
Michael.