[Zope-dev] cPickleCache endless loop...

Jeremy Hylton jeremy at zope.com
Fri Jan 23 12:12:55 EST 2004


On Fri, 23 Jan 2004 10:31:59 -0500
 Chris McDonough <chrism at plope.com> wrote:
> Defining __del__ on a persistent object has unknown
> effects, FWIW.  A
> persistent object's __del__ method may be called many
> times during its
> lifetime.  See
>
http://zope.org/Wikis/ZODB/FrontPage/guide/node3.html#SECTION000360000000000000000
> for more info.
> 

In fact, the original poster points out a very real problem
with __del__.  If the __del__ function access any attribute
of the object, it will put the object back in the cache.  I
hadn't thought of that before, but it's obvious now that it
would work this way. 

The only useful answer is to avoid using __del__ on
persistent objects.  If there are resources that really
need  to be finalized whenever the object is ghosted, you
can put them in a non-persistent sub-object that does have
an __del__.

Jeremy



More information about the Zope-Dev mailing list