[Haskell-cafe] Re: How do I get this done in constant mem?
ben.franksen at online.de
Sun Oct 11 08:17:57 EDT 2009
mf-hcafe-15c311f0c at etc-network.de wrote:
> On Sat, Oct 10, 2009 at 11:11:24PM +0200, Daniel Fischer wrote:
>> No, readFile reads the file lazily.
> hm? oh, you are right, now that i fixed all the other problems in my
> code readFile isn't a problem any more either... (-:
> (but then how does it know when to close the handle? gotta go read
> the code i guess.)
It is somewhat documented, see
or http://www.haskell.org/onlinelibrary/io.html, section 21.2.2 Semi-Closed
"[...] A semi-closed handle becomes closed:
* if hClose is applied to it;
* if an I/O error occurs when reading an item from the handle;
* or once the entire contents of the handle has been read."
It is not stated here that the file /immediately/ gets closed after the last
byte has been read. Does that mean implementations are free to postpone
closing (e.g. until the next GC cycle)?
More information about the Haskell-Cafe