Subject: Re: bug#13999: 24.3.50; rng-validate-while-idle -> (error "Selecting deleted buffer")

From: Carsten Bormann <[email-masked]>
Date: Sat, 23 Mar 2013 08:54:08 +0100

On Mar 23, 2013, at 02:47, Leo Liu <[email-masked]> wrote:

> On 2013-03-23 01:34 +0800, Stefan Monnier wrote:
>> No, I don't understand what problem this is trying to avoid.
>> If noone understands this hack, I suggest to get rid of this
>> let-binding, and if/when the corresponding problem ever appears, we'll
>> see about fixing it some other way.
> 
> I get rid of it for now.
> 
> Carsten, will you be able to test out the new rng-valid.el¹²? Thanks.
> 
> Footnotes: 
> ¹  http://repo.or.cz/w/emacs.git/blob_plain/HEAD:/lisp/nxml/rng-valid.el
> ²  http://repo.or.cz/w/emacs.git/blob_plain/HEAD:/lisp/nxml/rng-nxml.el

Well, how do you test that...
I played around with background-validating an XML file, scrolling while that happens, and that seems to work.
I don't use stealthy jit-lock etc., though, and my XML files are of moderate size (couple hundred kB), so maybe I'm not in the target group addressed by the original hack.

It seems really solving the problem the code was trying to address would require having a priority scheme for idle timer work: Validation happens in idle time but may be higher priority than other idle timer work.  Another way of blocking other idle timer work while doing sit-for/input-pending-p would, of course, also help; this might need exposing the READABLE_EVENTS_DO_TIMERS_NOW flag from input-pending-p and sit-for.

Grüße, Carsten