* src/process.c (wait_reading_process_output): Handle pty disconnect
by refraining from sending oneself a SIGCHLD. Fixes: debbugs:10933
This commit is contained in:
parent
005a89ffd3
commit
5063c0e1a2
2 changed files with 20 additions and 10 deletions
|
@ -1,8 +1,13 @@
|
|||
2012-03-23 Troels Nielsen <bn.troels@gmail.com> (tiny change)
|
||||
|
||||
* process.c (wait_reading_process_output): Handle pty disconnect
|
||||
by refraining from sending oneself a SIGCHLD (bug#10933).
|
||||
|
||||
2012-03-22 Chong Yidong <cyd@gnu.org>
|
||||
|
||||
* dispextern.h (struct it): New member string_from_prefix_prop_p.
|
||||
|
||||
* xdisp.c (push_prefix_prop): Renamed from push_display_prop.
|
||||
* xdisp.c (push_prefix_prop): Rename from push_display_prop.
|
||||
Mark string as coming from a prefix property.
|
||||
(handle_face_prop): Use default face for prefix strings (Bug#4281).
|
||||
(pop_it, reseat_1): Save and restore string_from_prefix_prop_p.
|
||||
|
@ -14,8 +19,8 @@
|
|||
2012-03-20 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* w32proc.c (Fw32_set_console_codepage)
|
||||
(Fw32_set_console_output_codepage, Fw32_get_codepage_charset): Doc
|
||||
fixes.
|
||||
(Fw32_set_console_output_codepage, Fw32_get_codepage_charset):
|
||||
Doc fixes.
|
||||
|
||||
2012-03-20 Chong Yidong <cyd@gnu.org>
|
||||
|
||||
|
|
|
@ -4888,15 +4888,20 @@ wait_reading_process_output (int time_limit, int microsecs, int read_kbd,
|
|||
It can't hurt. */
|
||||
else if (nread == -1 && errno == EIO)
|
||||
{
|
||||
/* Clear the descriptor now, so we only raise the signal once. */
|
||||
FD_CLR (channel, &input_wait_mask);
|
||||
FD_CLR (channel, &non_keyboard_wait_mask);
|
||||
|
||||
kill (getpid (), SIGCHLD);
|
||||
/* Don't do anything if only a pty, with no associated
|
||||
process (bug#10933). */
|
||||
if (XPROCESS (proc)->pid != -2) {
|
||||
/* Clear the descriptor now, so we only raise the signal
|
||||
once. */
|
||||
FD_CLR (channel, &input_wait_mask);
|
||||
FD_CLR (channel, &non_keyboard_wait_mask);
|
||||
|
||||
kill (getpid (), SIGCHLD);
|
||||
}
|
||||
}
|
||||
#endif /* HAVE_PTYS */
|
||||
/* If we can detect process termination, don't consider the process
|
||||
gone just because its pipe is closed. */
|
||||
/* If we can detect process termination, don't consider the
|
||||
process gone just because its pipe is closed. */
|
||||
#ifdef SIGCHLD
|
||||
else if (nread == 0 && !NETCONN_P (proc) && !SERIALCONN_P (proc))
|
||||
;
|
||||
|
|
Loading…
Add table
Reference in a new issue