Make child signal read pipe non-blocking.

Otherwise Emacs might hang when trying to read the pipe twice in a
row.  This is consistent with the other file descriptors we pass to
'pselect'.

* src/process.c (child_signal_init): Make read end of pipe
non-blocking.
This commit is contained in:
Philipp Stephani 2021-01-19 21:35:06 +01:00
parent 8725f7690a
commit 8ed97a8d54

View file

@ -7179,6 +7179,8 @@ child_signal_init (void)
exits. */
eassert (0 <= fds[0]);
eassert (0 <= fds[1]);
if (fcntl (fds[0], F_SETFL, O_NONBLOCK) != 0)
emacs_perror ("fcntl");
add_read_fd (fds[0], child_signal_read, NULL);
fd_callback_info[fds[0]].flags &= ~KEYBOARD_FD;
child_signal_read_fd = fds[0];