logo       

ghc's hPutBuf doesn't obey the buffering mode: msg#00067

lang.haskell.glasgow.bugs

Subject: ghc's hPutBuf doesn't obey the buffering mode


If I run this program:

--------------------------------------------------
import System.Cmd (system)
import Foreign.C.String (castCharToCChar)
import Foreign.Marshal.Array (newArray)
import System.IO (hSetBinaryMode, hPutBuf, stdout, hSetBuffering,
BufferMode(..))

main = do hSetBinaryMode stdout True
hSetBuffering stdout LineBuffering
p <- newArray (map castCharToCChar "foo\n")
hPutBuf stdout p 4
system "sleep 5"
putStr "bar\n"
--------------------------------------------------

compiled by GHC then it waits 5 seconds and then prints foo and bar
together.

With hugs, foo is printed and then 5 seconds later bar is printed, as I
would expect.


Thanks
Ian


<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

News | FAQ | advertise