* bug#8467: Bug#611591: emacs23: hangs while waiting for child on hurd-i386
[not found] <20110131001335.GA30106@const.famille.thibault.fr>
@ 2011-04-10 15:05 ` Rob Browning
2011-04-10 22:05 ` Chong Yidong
0 siblings, 1 reply; 2+ messages in thread
From: Rob Browning @ 2011-04-10 15:05 UTC (permalink / raw)
To: 8467; +Cc: 611591, 611591-forwarded, Samuel Thibault
[-- Attachment #1: Type: text/plain, Size: 500 bytes --]
(If possible, please preserve the 611591-forwarded address in any replies.)
It looks like there may be a problem with wait_for_termination() on
GNU/Hurd systems.
Samuel Thibault <sthibault@debian.org> writes:
> emacs23 would sometimes hang while waiting for a child. This is because
> wait_for_termination assumes that on all BSD-like systems kill() returns
> -1 on zombies. It happens that GNU/Hurd is a BSD-like system, but its
> kill() returns 0 on zombies.
>
> The attached patch fixes that.
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: fix-wait-for-termination-on-hurd.patch --]
[-- Type: text/x-diff, Size: 482 bytes --]
--- a/src/sysdep.c 2011-01-31 01:10:24.000000000 +0100
+++ b/src/sysdep.c 2011-01-31 01:10:47.000000000 +0100
@@ -411,7 +411,7 @@
while (1)
{
#ifdef subprocesses
-#if defined (BSD_SYSTEM) || defined (HPUX)
+#if (defined (BSD_SYSTEM) || defined (HPUX)) && !defined(__GNU__)
/* Note that kill returns -1 even if the process is just a zombie now.
But inevitably a SIGCHLD interrupt should be generated
and child_sig will do wait3 and make the process go away. */
[-- Attachment #3: Type: text/plain, Size: 127 bytes --]
--
Rob Browning
rlb @defaultvalue.org and @debian.org
GPG as of 2002-11-03 14DD 432F AE39 534D B592 F9A0 25C8 D377 8C7E 73A4
^ permalink raw reply [flat|nested] 2+ messages in thread