On Tue, Apr 17, 2012 at 8:30 PM, Antoine Pitrou <solip...@pitrou.net> wrote:
> On Tue, 17 Apr 2012 17:22:57 +0000 > Kristján Valur Jónsson <krist...@ccpgames.com> wrote: > > > > > > We are all consenting adults. Everything is allowed - you just have to > live with > > > the consequences. > > > > Well, we specifically decided that objects with __del__ methods that are > part of a cycle cannot be run. > > The same reasoning was applied to generators, if they are in a certain > state. > > What makes iobase so special that its 'close' method can be run even if > it is part of a cycle? > > The reason is that making file objects uncollectable when they are part > of a reference cycle would be a PITA and a serious regression for many > applications, I think. > > > Why not allow it for all objects, then? > > I'm not the author of the original GC design. Perhaps it was > deliberately conservative at the time? I think PyPy has a more tolerant > solution for finalizers in reference cycles, perhaps they can explain it > here. > > Regards > > Antoine. PyPy breaks cycles randomly. I think a pretty comprehensive description of what happens is here: http://morepypy.blogspot.com/2008/02/python-finalizers-semantics-part-1.html http://morepypy.blogspot.com/2008/02/python-finalizers-semantics-part-2.html Cheers, fijal
_______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com