diff options
author | Richard M. Stallman <rms@gnu.org> | 1994-02-08 23:57:30 +0000 |
---|---|---|
committer | Richard M. Stallman <rms@gnu.org> | 1994-02-08 23:57:30 +0000 |
commit | 9e3891de7c3886dce11f9d13b7aad2b6ee1eb48b (patch) | |
tree | 129a4c36b81bd153eb9ef1e62fccc5e8bc9fed3e /lib-src | |
parent | 3fa26c50017933e3104e965999b5423c038a4e39 (diff) | |
download | emacs-9e3891de7c3886dce11f9d13b7aad2b6ee1eb48b.tar.gz |
(main) [HAVE_SYSVIPC]: Reverse test of fork value.
Diffstat (limited to 'lib-src')
-rw-r--r-- | lib-src/emacsserver.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/lib-src/emacsserver.c b/lib-src/emacsserver.c index 5e233148851..cf7a6dd78d5 100644 --- a/lib-src/emacsserver.c +++ b/lib-src/emacsserver.c @@ -282,13 +282,15 @@ main () } signal (SIGTERM, msgcatch); signal (SIGINT, msgcatch); - /* If parent goes away, remove message box and exit */ - if (p == 0) + if (p > 0) { + /* This is executed in the original process that did the fork above. */ + /* Get pid of Emacs itself. */ p = getppid (); setpgrp (); /* Gnu kills process group on exit */ while (1) { + /* Is Emacs still alive? */ if (kill (p, 0) < 0) { msgctl (s, IPC_RMID, 0); @@ -298,6 +300,7 @@ main () } } + /* This is executed in the child made by forking above. */ while (1) { if ((fromlen = msgrcv (s, msgp, BUFSIZ - 1, 1, 0)) < 0) |