Mercurial > emacs
changeset 18328:0295bbed3c39
(Fprocess_send_eof): Use shutdown, if it's a socket.
Don't close the output descriptor if that is also the input descriptor.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Thu, 19 Jun 1997 03:03:08 +0000 |
parents | 9963d76b1017 |
children | ddaafa596bf5 |
files | src/process.c |
diffstat | 1 files changed, 10 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/src/process.c Thu Jun 19 02:59:08 1997 +0000 +++ b/src/process.c Thu Jun 19 03:03:08 1997 +0000 @@ -3618,7 +3618,16 @@ send_process (proc, "\004", 1, Qnil); else { - close (XINT (XPROCESS (proc)->outfd)); + /* If this is a network connection, or socketpair is used + for communication with the subprocess, call shutdown to cause EOF. + (In some old system, shutdown to socketpair doesn't work. + Then we just can't win.) */ + if (NILP (XPROCESS (proc)->pid) + || XINT (XPROCESS (proc)->outfd) == XINT (XPROCESS (proc)->infd)) + shutdown (XINT (XPROCESS (proc)->outfd), 1); + /* In case of socketpair, outfd == infd, so don't close it. */ + if (XINT (XPROCESS (proc)->outfd) != XINT (XPROCESS (proc)->infd)) + close (XINT (XPROCESS (proc)->outfd)); XSETINT (XPROCESS (proc)->outfd, open (NULL_DEVICE, O_WRONLY)); } #endif /* VMS */