Subject: Re: bug#43886: 28.0.50; daemon segfaults when loading theme as second emacsclient connects

From: Eli Zaretskii <[email-masked]>
Date: Sat, 10 Oct 2020 11:17:10 +0300

> Date: Sat, 10 Oct 2020 10:21:44 +0300
> From: Eli Zaretskii <[email-masked]>
> Cc: [email-masked]
> 
> > However - even removing that hook - it is now impossible to
> > load a theme when a client is suspended (which is basically always for
> > me - I'll have half a dozen or more clients open at any time, one of
> > them will be suspended).
> 
> It is indeed impossible/unsafe to load a theme when some frame is
> suspended, because suspending a frame makes it unable to handle the
> change of the faces.  I don't see any way around that, because
> skipping such a frame when a theme is enabled would mean that frame's
> faces are not recalculated to obey the theme, which is a subtler and
> nastier bug, IMO.
> 
> You will have to unsuspend the frames when you load a theme.

Upon further thought, I found a simpler, nicer solution for this
conundrum, and pushed it to the emacs-27 branch.