
do print ("READ START",x) ; res <- readFile x ; print ("READ STOP",x) ; return res
Unless you've defined your own version of 'readFile', to mean read entire file now, the first 'print' is optimistic and the second 'print' is a lie.
readFile calls openFile >>= hGetContents. It's the openFile that causes the problem, so READ START happens before openFile and READ STOP happens after openFile. The lazy semantics of the actual reading don't seem to have an effect.
Just want to make sure that it isn't the latent hClose from readFile. Once upon a time, I spend a lot of time figuring out why nhc98 wouldn't work on windows, until I noticed that its code used to rely on unixy file system tricks like readFile followed by removeFile, followed by looking at the contents. main = do writeFile "data" "file contents" r <- readFile "data" writeFile "data" "different contents" print r *Main> main *** Exception: data: openFile: permission denied (Permission denied)
I did try changing to the strict bytestring file read, and that gave exactly the same error - apart from openBinaryFile was crashing rather than openFile.
Weren't there versions of bytestring that didn't close the file early enough? Just checking, Claus
Thanks
Neil
do print ("WRITE START",x); writeFile x src ; print ("WRITE STOP",x)
I then get on the console:
WRITE START foo WRITE STOP foo READ START foo openFile doesn't have permission to open foo.
The writeFile/readFile are happening in different threads, and they usually succeed - but not always. The bug seems to go away when I add performGC just after writeFile. My guess is that something in the openFile/hClose pair isn't really closed until a garbage collection happens. All this is using GHC 6.10.2 on XP through Cygwin.
I'm happy to supply more details if you can think of anything that will help,
Thanks
Neil _______________________________________________ Glasgow-haskell-users mailing list Glasgow-haskell-users@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-users
_______________________________________________ Glasgow-haskell-users mailing list Glasgow-haskell-users@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-users