Subject: Re: bug#48406: 28.0.50; Emacs stuck in infinite loop in wait_reading_process_output when opening in fullscreen (NS)

From: Alan Third <[email-masked]>
Date: Sat, 15 May 2021 23:47:18 +0100

On Sat, May 15, 2021 at 10:44:28PM +0300, Andrii Kolomoiets wrote:
> Alan Third <[email-masked]> writes:
> 
> > Now I've dug out my Mac I can confirm I see this hang as well.
> >
> > The problem is that we never reach the NS run loop and therefore
> > windowDidEnterFullScreen is never called.
> >
> > This fixes it for me, but whether it's a good idea or not I don't know:
> >
> > -      wait_reading_process_output (0, 300000000, 0, 1, Qnil, NULL, 0);
> > +      [NSApp run];
> 
> I really like this change.  Using `wait_reading_process_output` to wait
> for NS event was a bad idea.
> 
> Though I don't understand why my setup isn't affected by this bug.

I can only guess that for some reason your setup doesn't have these
pending inputs that block ns_select. But even so I don't really
understand what's going on as I thought if there were pending inputs
then ns_read_socket would be called and clear them...

> Alan, please install your patch.

You know, I'm probably being stupid, but I can't for the life of me
remember why we need to wait for the fullscreen transition to
complete. I *thought* it was because we had a crash if we didn't, but
if I remove the wait it all works just fine...

It could be that it's pure chance I'm not seeing any problems, or that
some other fix has fixed the crash, or that the older drawing scheme
used before 10.14 has a problem and the new one doesn't... Or
something else. Do you have any idea?

I *do* remember that there was a pause required for the non-native
fullscreen due to a crash, and I don't think that will have changed,
except that I don't think I've heard from anyone still using 10.6 for
a couple of years now.
-- 
Alan Third