Subject: Re: bug#25172: 26.0.50; Concurrency feature, sit-for doesn't work (crashing and unexpected behaviour)

From: Elias Mårtenson <[email-masked]>
Date: Fri, 16 Dec 2016 00:28:03 +0800

On 16 Dec 2016 12:24 am, "Eli Zaretskii" <[email-masked]> wrote:

> From: Elias Mårtenson <[email-masked]>
> Date: Thu, 15 Dec 2016 11:30:54 +0800
> Cc: Clément Pit--Claudel <[email-masked]>,
>       [email-masked]
>
>  After applying that patch, it hasn't crashed yet. So either it fixes the
problem, or it's simply buch harder to
>  reproduce. So far so good. Thanks a lot!
>
> I want to note that the thing that seems to fix it is the application of
the most recent suggestion.

Thanks, I pushed it now.

> In other words, if I roll back the application of the previous
> suggestion (removing the calls to clock_input ()/unblock_input()) it
> still seems to be stable.

Yes, it turns out acquiring Glib context is thread-safe (it uses a
mutex internally), so only one thread can ever acquire it.  Not
calling Glib functions when we failed to acquire context avoids both
the crashes in Glib and calling block_input/unblock_input from more
than one thread.

I guess we can now close this bug?

Yes, I think so.

Thanks so much for your help in debugging this.

I'm happy it was resolved. ☺️