diff options
| author | Gerd Moellmann | 2001-09-21 14:09:22 +0000 |
|---|---|---|
| committer | Gerd Moellmann | 2001-09-21 14:09:22 +0000 |
| commit | 59957f85f46ca1b35a88ca4e8b4c5fe6e0c3d0eb (patch) | |
| tree | 94712ab3da39ed67a9cd604daf75d687c976befe | |
| parent | 6add099cf46826225bf2b45d83fb5b502b604a09 (diff) | |
| download | emacs-59957f85f46ca1b35a88ca4e8b4c5fe6e0c3d0eb.tar.gz emacs-59957f85f46ca1b35a88ca4e8b4c5fe6e0c3d0eb.zip | |
(wait_for_termination) [POSIX_SIGNALS]: Terminate
only if kill returns -1, and errno is ESRCH.
| -rw-r--r-- | src/ChangeLog | 5 | ||||
| -rw-r--r-- | src/sysdep.c | 3 |
2 files changed, 7 insertions, 1 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index 29375b80679..7aae3f9aba3 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,3 +1,8 @@ | |||
| 1 | 2001-09-21 Gerd Moellmann <gerd@gnu.org> | ||
| 2 | |||
| 3 | * sysdep.c (wait_for_termination) [POSIX_SIGNALS]: Terminate | ||
| 4 | only if kill returns -1, and errno is ESRCH. | ||
| 5 | |||
| 1 | 2001-09-21 Markus Rost <rost@math.ohio-state.edu> | 6 | 2001-09-21 Markus Rost <rost@math.ohio-state.edu> |
| 2 | 7 | ||
| 3 | * Makefile.in (shortlisp): Add ../lisp/env.elc. | 8 | * Makefile.in (shortlisp): Add ../lisp/env.elc. |
diff --git a/src/sysdep.c b/src/sysdep.c index 2a0f5df4d90..5f528f0f51c 100644 --- a/src/sysdep.c +++ b/src/sysdep.c | |||
| @@ -480,7 +480,8 @@ wait_for_termination (pid) | |||
| 480 | #else /* neither BSD_SYSTEM nor UNIPLUS: random sysV */ | 480 | #else /* neither BSD_SYSTEM nor UNIPLUS: random sysV */ |
| 481 | #ifdef POSIX_SIGNALS /* would this work for LINUX as well? */ | 481 | #ifdef POSIX_SIGNALS /* would this work for LINUX as well? */ |
| 482 | sigblock (sigmask (SIGCHLD)); | 482 | sigblock (sigmask (SIGCHLD)); |
| 483 | if (0 > kill (pid, 0)) | 483 | errno = 0; |
| 484 | if (kill (pid, 0) == -1 && errno == ESRCH) | ||
| 484 | { | 485 | { |
| 485 | sigunblock (sigmask (SIGCHLD)); | 486 | sigunblock (sigmask (SIGCHLD)); |
| 486 | break; | 487 | break; |