Subject: bug#48629: 28.0.50; GUI emacsclient frames stop accepting keyboard input around recv

From: Eli Zaretskii <[email-masked]>
Date: Wed, 26 May 2021 20:24:21 +0300

> From: "Basil L. Contovounesios" <[email-masked]>
> Cc: Eli Zaretskii <[email-masked]>,  [email-masked]
> Date: Wed, 26 May 2021 16:58:17 +0100
> 
> Thread 1 (Thread 0x7fb2f78e9040 (LWP 46955) "emacs"):
> #0  0x00007fb2fa7ae9c6 in __pselect (nfds=24, readfds=0x7ffc492342e0, writefds=0x7ffc49234360, exceptfds=0x0, timeout=<optimized out>, sigmask=0x7ffc49234130) at ../sysdeps/unix/sysv/linux/pselect.c:48
>         resultvar = 18446744073709551102
>         sc_cancel_oldtype = 0
>         tval = {tv_sec = 14, tv_nsec = 461936780}
>         data = {ss = 0, ss_len = 8}
> #1  0x000055dfc63615b6 in really_call_select ()
> #2  0x000055dfc6362320 in thread_select ()
> #3  0x000055dfc637ef58 in xg_select ()
> #4  0x000055dfc633f89d in wait_reading_process_output ()
> #5  0x000055dfc62843e8 in read_char ()
> #6  0x000055dfc6286822 in read_key_sequence ()
> #7  0x000055dfc628822c in command_loop_1 ()

This is slightly more interesting, because it shows that timeout for
pselect was 14 sec plus change.  So the interesting question is what
happens after the timeout expires?

IOW, when you find Emacs stuck in pselect, type "finish" and let Emacs
exit the pselect call.  Then step through the code and see what it
does and why it doesn't respond to keyboard input.  Is the keyboard
descriptor in the set of descriptors pselect waits for?