+2015-03-12 Takashi Yano <takashi.yano@nifty.ne.jp>
+
+ * fhandler_tty.cc (fhandler_pty_master::close): Add code to make slave
+ detect closure of master. Fix typo in error message.
+
2015-03-11 Corinna Vinschen <corinna@vinschen.de>
* include/cygwin/types.h: Include <sys/_timespec.h>
}
}
+ fhandler_pty_common::close ();
+
+ /* Check if the last master handle has been closed. If so, set
+ input_available_event to wake up potentially waiting slaves. */
+ if (!PeekNamedPipe (from_master, NULL, 0, NULL, NULL, NULL)
+ && GetLastError () == ERROR_BROKEN_PIPE)
+ SetEvent (input_available_event);
+
if (!ForceCloseHandle (from_master))
termios_printf ("error closing from_master %p, %E", from_master);
if (!ForceCloseHandle (to_master))
- termios_printf ("error closing from_master %p, %E", to_master);
+ termios_printf ("error closing to_master %p, %E", to_master);
from_master = to_master = NULL;
ForceCloseHandle (echo_r);
ForceCloseHandle (echo_w);
echo_r = echo_w = NULL;
- fhandler_pty_common::close ();
-
if (have_execed || get_ttyp ()->master_pid != myself->pid)
termios_printf ("not clearing: %d, master_pid %d", have_execed, get_ttyp ()->master_pid);
if (!ForceCloseHandle (input_available_event))