[Date Prev][Date Next][Thread Prev][Thread Next]
- Subject: Re: Is breaking out of io.lines(file) safe?
- From: Duncan Cross <duncan.cross@...>
- Date: Fri, 18 Mar 2011 22:15:11 +0000
On Fri, Mar 18, 2011 at 10:04 PM, mitchell <email@example.com> wrote:
> I want to iterate over the lines in a file, but break out if a certain
> condition is true. The documentation says the EOF is detected and the file
> is closed. If I break before the EOF is detected, is the file not closed? I
> don't want to leave open file references in my Lua state.
> for line in io.lines(filename) do
> if condition then break end
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.