[Cython] PEP 442: safe object finalisation

Torsten Landschoff torsten.landschoff at dynamore.de
Mon Aug 5 10:02:44 CEST 2013


Hi Stefan,

On 08/03/2013 06:24 PM, Stefan Behnel wrote:
> CPython 3.4 will have a new way to handle object finalisation.
>
> http://www.python.org/dev/peps/pep-0442/
>
> I think we should switch the current deallocation code to make use of it.
> That should fix the problem we currently have with user provided
> __dealloc__() code that touches Python objects. It would be Py3.4+
> specific, though.
I read the PEP and was wondering about the performance of this part:

 1. *The CI is traversed again to determine if it is still isolated. If
    it is determined that at least one object in CI is now reachable
    from outside the CI, this collection is aborted and the whole CI is
    resurrected. Otherwise, proceed.*

AFAICT it will not suffice to traverse the CI here. Instead, all active
objects must be traversed which seems to be quite expensive.

Does this mean that you will not pull my gc_no_clear changes from
https://github.com/cython/cython/pull/248 in favor of this better fix?
Or should I update it so that gc_no_clear only has an affect on Python <
3.4?

Greetings, Torsten

-- 
DYNAmore Gesellschaft fuer Ingenieurdienstleistungen mbH
Torsten Landschoff

Office Dresden
Tel: +49-(0)351-312002-10
Fax: +49-(0)351-312002-29

mailto:torsten.landschoff at dynamore.de
http://www.dynamore.de

DYNAmore Gesellschaft für FEM Ingenieurdienstleistungen mbH
Registration court: Stuttgart, HRB 733694
Managing director: Prof. Dr. Karl Schweizerhof, Dipl.-Math. Ulrich Franz

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/cython-devel/attachments/20130805/f831b5df/attachment.html>


More information about the cython-devel mailing list