On Mon, Apr 04, 2011 at 12:58:36AM +0200, Matthias Kilian wrote:
> I thought the zombie problems in xmonad I observed during my tests
> with ghc-7.0.2rc1 back in january were caused by ghc. But I was
> wrong. The problem happens with ghc-6.12.3, too.
[...]

I'm stupid and missed the fact that installSignalHandlers in
xmonad-0.9.2 reaps child processes only once, instead of doing it
on every SIGCLD. Here's a better diff (again relative to ports/x11)
for xmonad and hs-xmonad contrib that works fine with ghc-6.12.3.

I'll commit this later today.

Ciao,
        Kili

Index: xmonad/Makefile
===================================================================
RCS file: /cvs/ports/x11/xmonad/Makefile,v
retrieving revision 1.24
diff -u -p -r1.24 Makefile
--- xmonad/Makefile     4 Dec 2010 11:53:57 -0000       1.24
+++ xmonad/Makefile     4 Apr 2011 09:00:00 -0000
@@ -3,11 +3,9 @@
 COMMENT-main =         tiling window manager
 COMMENT-lib =          libraries for runtime configuration
 
-DISTNAME =             xmonad-0.9.1
+DISTNAME =             xmonad-0.9.2
 PKGNAME-main =         ${DISTNAME}
 PKGNAME-lib =          ${DISTNAME:S,-,-lib-,}
-REVISION-main =                4
-REVISION-lib =         7
 CATEGORIES =           x11
 HOMEPAGE =             http://www.xmonad.org/
 
@@ -23,7 +21,9 @@ WANTLIB-main =                ${WANTLIB} X11 Xext Xine
 WANTLIB-lib =
 
 MODULES =              lang/ghc converters/libiconv
-MODGHC_BUILD =         cabal hackage haddock register
+# No documentation for now (haddock thinks that module `xmonad-0.9.2:Main'
+# is defined in multiple files).
+MODGHC_BUILD =         cabal hackage register
 
 .if defined (SUBPACKAGE) && ${SUBPACKAGE:M-main}
 MODGHC_BUILD +=                nort
Index: xmonad/distinfo
===================================================================
RCS file: /cvs/ports/x11/xmonad/distinfo,v
retrieving revision 1.8
diff -u -p -r1.8 distinfo
--- xmonad/distinfo     22 Apr 2010 22:00:45 -0000      1.8
+++ xmonad/distinfo     4 Apr 2011 09:00:00 -0000
@@ -1,5 +1,5 @@
-MD5 (xmonad-0.9.1.tar.gz) = PQ3Vz3d2ixDht/OkfjKwng==
-RMD160 (xmonad-0.9.1.tar.gz) = u7So2QntMviN1POHGhm52FiSOF4=
-SHA1 (xmonad-0.9.1.tar.gz) = CrYS91PJdCDpKQXQqAD9Ki5agko=
-SHA256 (xmonad-0.9.1.tar.gz) = AUIBIA6KUh7joNjAcnOSkWp1SSB7kQZPtFb4xmBgmSc=
-SIZE (xmonad-0.9.1.tar.gz) = 56974
+MD5 (xmonad-0.9.2.tar.gz) = WkEX95hmTXctKoNOpskPHA==
+RMD160 (xmonad-0.9.2.tar.gz) = TY5vAFeDNpWodurYdr68Thh48Xs=
+SHA1 (xmonad-0.9.2.tar.gz) = bwUkgiX15v/Xd4DOHCwqETAOC3s=
+SHA256 (xmonad-0.9.2.tar.gz) = rc2j9beln7H6T39I6MTrBZlkLn0hWwE/sHL5iu+YhR8=
+SIZE (xmonad-0.9.2.tar.gz) = 56974
Index: xmonad/patches/patch-XMonad_Core_hs
===================================================================
RCS file: /cvs/ports/x11/xmonad/patches/patch-XMonad_Core_hs,v
retrieving revision 1.1
diff -u -p -r1.1 patch-XMonad_Core_hs
--- xmonad/patches/patch-XMonad_Core_hs 22 Apr 2010 22:00:45 -0000      1.1
+++ xmonad/patches/patch-XMonad_Core_hs 4 Apr 2011 09:00:00 -0000
@@ -2,29 +2,18 @@ $OpenBSD: patch-XMonad_Core_hs,v 1.1 201
 
 From Tomas Janousek.
 
---- XMonad/Core.hs.orig        Thu Dec 17 00:25:04 2009
-+++ XMonad/Core.hs     Mon Apr 12 02:12:43 2010
-@@ -465,14 +465,18 @@ trace = io . hPutStrLn stderr
+--- XMonad/Core.hs.orig        Fri Dec 24 01:42:54 2010
++++ XMonad/Core.hs     Mon Apr  4 10:45:53 2011
+@@ -465,7 +465,11 @@ trace = io . hPutStrLn stderr
  installSignalHandlers :: MonadIO m => m ()
  installSignalHandlers = io $ do
      installHandler openEndedPipe Ignore Nothing
 -    installHandler sigCHLD Ignore Nothing
--    try $ fix $ \more -> do
--        x <- getAnyProcessStatus False False
--        when (isJust x) more
--    return ()
 +    installHandler sigCHLD (Catch cleanZombies) Nothing
 +    cleanZombies
- 
- uninstallSignalHandlers :: MonadIO m => m ()
- uninstallSignalHandlers = io $ do
-     installHandler openEndedPipe Default Nothing
-     installHandler sigCHLD Default Nothing
-+    return ()
 +
 +cleanZombies :: IO ()
 +cleanZombies = do
-+    try $ fix $ \more -> do
-+        x <- getAnyProcessStatus False False
-+        when (isJust x) more
-     return ()
+     (try :: IO a -> IO (Either SomeException a))
+       $ fix $ \more -> do
+         x <- getAnyProcessStatus False False
Index: xmonad/pkg/PLIST-lib
===================================================================
RCS file: /cvs/ports/x11/xmonad/pkg/PLIST-lib,v
retrieving revision 1.5
diff -u -p -r1.5 PLIST-lib
--- xmonad/pkg/PLIST-lib        28 Oct 2010 13:55:21 -0000      1.5
+++ xmonad/pkg/PLIST-lib        4 Apr 2011 09:00:00 -0000
@@ -19,62 +19,4 @@ lib/ghc/${DISTNAME}/unregister.sh
 share/doc/hs-${DISTNAME}/
 share/doc/hs-${DISTNAME}/CONFIG
 share/doc/hs-${DISTNAME}/LICENSE
-share/doc/hs-${DISTNAME}/html/
-share/doc/hs-${DISTNAME}/html/XMonad-Config.html
-share/doc/hs-${DISTNAME}/html/XMonad-Core.html
-share/doc/hs-${DISTNAME}/html/XMonad-Layout.html
-share/doc/hs-${DISTNAME}/html/XMonad-Main.html
-share/doc/hs-${DISTNAME}/html/XMonad-ManageHook.html
-share/doc/hs-${DISTNAME}/html/XMonad-Operations.html
-share/doc/hs-${DISTNAME}/html/XMonad-StackSet.html
-share/doc/hs-${DISTNAME}/html/XMonad.html
-share/doc/hs-${DISTNAME}/html/doc-index-124.html
-share/doc/hs-${DISTNAME}/html/doc-index-45.html
-share/doc/hs-${DISTNAME}/html/doc-index-46.html
-share/doc/hs-${DISTNAME}/html/doc-index-60.html
-share/doc/hs-${DISTNAME}/html/doc-index-61.html
-share/doc/hs-${DISTNAME}/html/doc-index-95.html
-share/doc/hs-${DISTNAME}/html/doc-index-A.html
-share/doc/hs-${DISTNAME}/html/doc-index-B.html
-share/doc/hs-${DISTNAME}/html/doc-index-C.html
-share/doc/hs-${DISTNAME}/html/doc-index-D.html
-share/doc/hs-${DISTNAME}/html/doc-index-E.html
-share/doc/hs-${DISTNAME}/html/doc-index-F.html
-share/doc/hs-${DISTNAME}/html/doc-index-G.html
-share/doc/hs-${DISTNAME}/html/doc-index-H.html
-share/doc/hs-${DISTNAME}/html/doc-index-I.html
-share/doc/hs-${DISTNAME}/html/doc-index-J.html
-share/doc/hs-${DISTNAME}/html/doc-index-K.html
-share/doc/hs-${DISTNAME}/html/doc-index-L.html
-share/doc/hs-${DISTNAME}/html/doc-index-M.html
-share/doc/hs-${DISTNAME}/html/doc-index-N.html
-share/doc/hs-${DISTNAME}/html/doc-index-O.html
-share/doc/hs-${DISTNAME}/html/doc-index-P.html
-share/doc/hs-${DISTNAME}/html/doc-index-Q.html
-share/doc/hs-${DISTNAME}/html/doc-index-R.html
-share/doc/hs-${DISTNAME}/html/doc-index-S.html
-share/doc/hs-${DISTNAME}/html/doc-index-T.html
-share/doc/hs-${DISTNAME}/html/doc-index-U.html
-share/doc/hs-${DISTNAME}/html/doc-index-V.html
-share/doc/hs-${DISTNAME}/html/doc-index-W.html
-share/doc/hs-${DISTNAME}/html/doc-index-X.html
-share/doc/hs-${DISTNAME}/html/doc-index-Z.html
-share/doc/hs-${DISTNAME}/html/doc-index.html
-share/doc/hs-${DISTNAME}/html/frames.html
-share/doc/hs-${DISTNAME}/html/haddock-util.js
-share/doc/hs-${DISTNAME}/html/haddock.css
-share/doc/hs-${DISTNAME}/html/haskell_icon.gif
-share/doc/hs-${DISTNAME}/html/index-frames.html
-share/doc/hs-${DISTNAME}/html/index.html
-share/doc/hs-${DISTNAME}/html/mini_XMonad-Config.html
-share/doc/hs-${DISTNAME}/html/mini_XMonad-Core.html
-share/doc/hs-${DISTNAME}/html/mini_XMonad-Layout.html
-share/doc/hs-${DISTNAME}/html/mini_XMonad-Main.html
-share/doc/hs-${DISTNAME}/html/mini_XMonad-ManageHook.html
-share/doc/hs-${DISTNAME}/html/mini_XMonad-Operations.html
-share/doc/hs-${DISTNAME}/html/mini_XMonad-StackSet.html
-share/doc/hs-${DISTNAME}/html/mini_XMonad.html
-share/doc/hs-${DISTNAME}/html/minus.gif
-share/doc/hs-${DISTNAME}/html/plus.gif
-share/doc/hs-${DISTNAME}/html/xmonad.haddock
 share/doc/hs-${DISTNAME}/xmonad.hs
Index: hs-xmonad-contrib/Makefile
===================================================================
RCS file: /cvs/ports/x11/hs-xmonad-contrib/Makefile,v
retrieving revision 1.11
diff -u -p -r1.11 Makefile
--- hs-xmonad-contrib/Makefile  22 Nov 2010 08:36:59 -0000      1.11
+++ hs-xmonad-contrib/Makefile  4 Apr 2011 09:00:00 -0000
@@ -2,8 +2,7 @@
 
 COMMENT =              third party xmonad extensions
 
-DISTNAME =             xmonad-contrib-0.9.1
-REVISION =             8
+DISTNAME =             xmonad-contrib-0.9.2
 CATEGORIES =           x11
 HOMEPAGE =             http://www.xmonad.org/
 
@@ -23,5 +22,7 @@ RUN_DEPENDS =         ${LIB_DEPENDS} \
                        shells/bash
 
 NO_REGRESS =           Yes
+
+VMEM_WARNING =         Yes
 
 .include <bsd.port.mk>
Index: hs-xmonad-contrib/distinfo
===================================================================
RCS file: /cvs/ports/x11/hs-xmonad-contrib/distinfo,v
retrieving revision 1.1.1.1
diff -u -p -r1.1.1.1 distinfo
--- hs-xmonad-contrib/distinfo  10 May 2010 08:05:08 -0000      1.1.1.1
+++ hs-xmonad-contrib/distinfo  4 Apr 2011 09:00:00 -0000
@@ -1,5 +1,5 @@
-MD5 (xmonad-contrib-0.9.1.tar.gz) = CablFzh41DufPd0Ts+yVWw==
-RMD160 (xmonad-contrib-0.9.1.tar.gz) = oOLb6kmsM9/CMbGa1JDoLz8VbbM=
-SHA1 (xmonad-contrib-0.9.1.tar.gz) = tuGIZCCzI0fLID8neiGbF3LyqV0=
-SHA256 (xmonad-contrib-0.9.1.tar.gz) = 
tModcdEpA752GHzliJhpcIbnrz73NGiYfLfvA7B27Ec=
-SIZE (xmonad-contrib-0.9.1.tar.gz) = 291348
+MD5 (xmonad-contrib-0.9.2.tar.gz) = YWy8Yyu95c1M22Q+5H500g==
+RMD160 (xmonad-contrib-0.9.2.tar.gz) = ZeqEEPD5OTgw/nNKpqOMS2kMyZo=
+SHA1 (xmonad-contrib-0.9.2.tar.gz) = GfY7AX54eq1ihq5rwkk7gEsVmNo=
+SHA256 (xmonad-contrib-0.9.2.tar.gz) = 
t8DAATtTMjQIi6sNCCHtLcXF+mEEP+8rF+ZHxIksDxo=
+SIZE (xmonad-contrib-0.9.2.tar.gz) = 292481

Reply via email to