On Fri, 18 Feb 2011 20:49:09 -0800, Chris Rebert wrote: > And following the pointer to gc.garbage's docs: > http://docs.python.org/library/gc.html#gc.garbage : "Objects that have > __del__() methods and are part of a reference cycle ***cause the entire > reference cycle to be uncollectable*** [...] Python doesn’t collect such > cycles automatically because, in general, it isn’t possible for Python > to guess a safe order in which to run the __del__() methods. [...] It’s > generally better to avoid the issue by not creating cycles containing > objects with __del__() methods"
Another solution is to manually break the cycle, perhaps by providing a "close" method, and requiring the caller to use it. -- Steven -- http://mail.python.org/mailman/listinfo/python-list