Ben Hoyt added the comment:

I'm not sure this is actually a leak, because (looking at the code) 
ScandirIterator_close() is called not just in the destructor, but also at the 
end of iterating, just before raising StopIteration. Is the issue that if an 
exception is raised or you stop iterating before the end, then it's less 
determined when the destructor/close is called?

I think we could fairly easily add an explicit close method to the iterator and 
make it a context manager (add __enter__ and __exit__ methods to the iterator). 
Is this what you're thinking of:

    # manual close
    it = scandir.scandir(path)
    first_entry = next(it)
    it.close()

    with scandir.scandir(path) as it:
        first_entry = next(it)

----------

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue25994>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to