changeset 18405:4eaaff49a24e

(read_avail_input): Check for failure with EIO.
author Richard M. Stallman <rms@gnu.org>
date Mon, 23 Jun 1997 02:39:44 +0000
parents 2af2dc0cd97f
children 5c2e5ccd0acb
files src/keyboard.c
diffstat 1 files changed, 7 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/keyboard.c	Mon Jun 23 02:30:36 1997 +0000
+++ b/src/keyboard.c	Mon Jun 23 02:39:44 1997 +0000
@@ -4924,6 +4924,13 @@
 #else
 	  nread = read (input_fd, cbuf, n_to_read);
 #endif
+	  /* POSIX infers that processes which are not in the session leader's
+	     process group won't get SIGHUP's at logout time.  BSDI adheres to
+	     this part standard and returns -1 from read(0) with errno==EIO
+	     when the control tty is taken away.
+	     Jeffrey Honig <jch@bsdi.com> says this is generally safe.  */
+	  if (nread == -1 && errno == EIO)
+	    kill (0, SIGHUP);
 #if defined (AIX) && (! defined (aix386) && defined (_BSD))
 	  /* The kernel sometimes fails to deliver SIGHUP for ptys.
 	     This looks incorrect, but it isn't, because _BSD causes