[Haskell-cafe] Re: `Expect'-like lazy reading/Parsec matching on TCP sockets

Scott Bell sebell at gmail.com
Fri Apr 6 15:44:01 EDT 2007

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)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.haskell.org/pipermail/haskell-cafe/attachments/20070406/aeb83051/attachment.htm

More information about the Haskell-Cafe mailing list