2) If an asynchronous exception was thrown to the
stdout/stderr-read-thread it did not execute the putMVar anymore
resulting in a dead-lock when takeMVar was executed.
Hah. I knew something like this was in there; xmonad is hanging instead of catching an exception or signal when the far end of a pipe (usually xmobar) goes away.
-- brandon s allbery allbery.b@gmail.com wandering unix systems administrator (available) (412) 475-9364 vm/sms