Package: emacs23
Version: 23.2+1-7
Severity: normal
Tags: patch
Hello,
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.
Samuel
-- System Information:
Debian Release: 6.0
APT prefers testing
APT policy: (990, 'testing'), (500, 'unstable'), (500, 'stable'), (1,
'experimental')
Architecture: amd64 (x86_64)
Kernel: Linux 2.6.37 (SMP w/2 CPU cores)
Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash
--
Samuel Thibault <[email protected]>
<y> la vraie vie, c'est quand le prompt passe de $ à #
--- src/sysdep.c.original 2011-01-31 01:10:24.000000000 +0100
+++ 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. */