[Python-Dev] Design question: call __del__ for cyclical garbage?
Fri, 03 Mar 2000 19:30:36 +0100
[Guido about ways to cleanup cyclic garbage]
FYI, I'm using a special protocol for disposing of cyclic
garbage: the __cleanup__ protocol. The purpose of this call
is probably similar to Neil's tp_clear: it is intended to
let objects break possible cycles in their own storage scope,
e.g. instances can delete instance variables which they
know can cause cyclic garbage.
The idea is simple: give all power to the objects rather
than try to solve everything with one magical master plan.
The mxProxy package has details on the protocol. The __cleanup__
method is called by the Proxy when the Proxy is about to be deleted.
If all references to an object go through the Proxy, the
__cleanup__ method call can easily break cycles to have the
refcount reach zero in which case __del__ is called. Since the
object knows about this scheme it can take precautions to
make sure that __del__ still works after __cleanup__ was
Anyway, just a thought... there are probably many ways to do
Python Pages: http://www.lemburg.com/python/