
16 Jul
2007
16 Jul
'07
3 p.m.
The problem is that you're closing the file twice. When you call any function of the getContents family, you assign to that function the responsibility to close the file, no sooner than it is no longer needed. Don't call hClose yourself, Bad Things will happen.
If you close the file, the stream will suddenly end. I believe silent data corruption is worse than a crash :) (currently, hGetContents also truncates on I/O error, but that's much less common and syslog will tell you about it anyway)
Why can't hClose be more... um... lazy?
Stefan
Tim Newsham http://www.thenewsh.com/~newsham/