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. */

Reply via email to