[Date Prev][Date Next][Thread Prev][Thread Next]
- Subject: Re: Is breaking out of io.lines(file) safe?
- From: Matthew Wild <mwild1@...>
- Date: Sun, 20 Mar 2011 18:59:50 +0000
On 20 March 2011 17:41, Matthias Kluwe <firstname.lastname@example.org> wrote:
> 2011/3/19 Roberto Ierusalimschy <email@example.com>:
>>> Yes, the file handle will still be open, at least until the file
>>> object is garbage collected. There is no way for an iterator to detect
>>> a broken loop and run cleanup code, so you will need to make sure the
>>> handle is closed explicitly.
>> Or simply leave it to the garbage collection. (More often than not there
>> is no hurry to close the file.)
> Hmm, until now it bit me twice not doing so
I too have been bitten by this a number of times.
> Look at the following simple example:
> local function f( ... )
> local of = io.open( 'x.txt', 'w' )
> of:write( ... )
I think it's especially wise to be careful when dealing with files
opened with "w".