-- test for bug #4078 import System.IO import Control.Concurrent import System.Exit main = do m <- newEmptyMVar forkIO $ do threadDelay 500000; putMVar m Nothing forkIO $ do hReady stdin >>= putMVar m . Just takeMVar m >>= print