
Bulat: I haven't tried moving to Posix calls, I'll try that next - although I was hoping the application wouldn't be posix dependent.
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.
Yeah, I've done that before! It seems to be the writeFile that isn't closing, not the readFile - hence my surprise.
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?
I only used bytestring for reading, so it shouldn't have made any difference. Thanks Neil