
On Fri, Apr 06, 2007 at 01:44:01PM -0600, Scott Bell wrote:
Ooops! It seems that this doesn't behave well with a -threaded RTS. I get an EOF on handles that I know for a fact shouldn't be receiving them. It still works well without -threaded, but does anyone know why I'm getting this behavior?
hGetContentsTimeout :: Handle -> Int -> IO String hGetContentsTimeout h t = do hSetBuffering stdin NoBuffering ready <- hWaitForInput h t if (not ready) then return [] else do c <- hGetChar h s <- unsafeInterleaveIO (hGetContentsTimeout h t) return (c:s)
(I did add EOF checking, but all that did was return the end of the list earlier than I wanted)
Have you got a complete (but preferably small) program showing the problem? Thanks Ian