Subject: Re: bug#25247: 26.0.50; Concurrency crashes with XLib

From: Elias Mårtenson <[email-masked]>
Date: Sun, 1 Jan 2017 01:28:10 +0800

On 1 January 2017 at 01:18, Eli Zaretskii <[email-masked]> wrote:

I don't understand what you are saying here; it sounds like a
> contradiction: the file on disk is updated (with presumably the next
> Foo:%d strings), but the "buffer content isn't refreshed"?  Maybe by
> "buffer content" you mean its display on the screen?  Because if the
> file is updated, the buffer's content must also be updated, as that's
> what gets written to the file.  Right?
>

That is correct. I meant that the screen has not been updated to reflect
the buffer content.

> The display on the screen will only change if Emacs enters redisplay.
> If you see the file's contents change, but the display on the screen
> doesn't reflect that, it means Emacs does not get a chance to perform
> redisplay, because it doesn't become idle in any of the threads that
> are active.  Which could be the case, since every time a running
> thread is about to become idle, there's another thread ready to run.
>

I'm not sure exactly what you refer to when you say "ready to run". There
are of course more threads, but none of them should be "ready to run".
They're all sitting in 'sleep-for' already.

> > Interestingly enough, the minibuffer message does get updated.
>
> Displaying minibuffer messages uses a separate entry to redisplay, and
> that entry only displays the echo area, unless it needs to resize the
> mini-window.
>

I see. I did notice that calling 'redisplay' after the 'insert' makes
everything work exactly the way I'd expect it to.

I guess doing that is perfectly acceptable and understandable once one has
had the benefit of someone explaining it to him, like in this case. That
said, it would be nice if I didn' thave to.

Thanks,
Elias