"Fredrik Lundh" <[EMAIL PROTECTED]> writes: > Benjamin Rutt wrote: > >> If I did the following in an infinite loop, would the host system/user >> account soon run out of file descriptors? (I'm thinking no, since I'd >> imagine that a file object has a __del__-like method that will call >> close() automatically since it goes out of scope): >> >> open('/home/rutt/.bashrc,'r').read() > > under CPython, this is not a problem (the reference counting system will > make sure that file handles are reclaimed as fast as new ones are opened).
It would be reclaimed immediately, correct? (As opposed to waiting for the next file-open call or some later time). In my understanding of CPython gc and reference counting, only the cyclical objects will be lazily/periodically reclaimed in a scheduled fashion, while all non-cyclical objects are reclaimed immediately when their last incoming reference decrements the count to 0. > under an arbitrary Python implementation, it may be a problem, > especially if the implementation doesn't trigger a collection if it > runs out of handles (that can be seen as a bug, though...). OK, makes sense, thank you. -- Benjamin Rutt -- http://mail.python.org/mailman/listinfo/python-list