
On Nov 6, 2007 11:21 PM, Spencer Janssen
Sadly, SIGCHLD doesn't seem to be a good solution here. Certain parts of xmonad collect child processes with waitForProcess, which throws an exception if the process has already been collected.
Good point. One of those places is in Main.hs, which waits for the ghc process to recompile .xmonad/xmonad.hs. That doesn't seem very elegant, since the window manager is frozen until ghc finishes. Seems like that ought to be multithreaded, so the window manager can keep responding during the compile. There's still the previous version of this patch, that puts a getAnyProcessStatus in the main loop in Core.hs. It's not clear if that method has a performance impact. Another possible solution would be to have a child thread that does blocking getAnyProcessStatus forever.