[Python-Dev] tp_finalize vs tp_del sematics
Armin Rigo
arigo at tunes.org
Sun Aug 23 14:14:54 CEST 2015
Hi Valentine,
On 19 August 2015 at 09:53, Valentine Sinitsyn
<valentine.sinitsyn at gmail.com> wrote:
> why it wasn't possible to
> implement proposed CI disposal scheme on top of tp_del?
I'm replying here as best as I understand the situation, which might
be incomplete or wrong.
>From the point of view of someone writing a C extension module, both
tp_del and tp_finalize are called with the same guarantee that the
object is still valid at that point. The difference is only that the
presence of tp_del prevents the object from being collected at all if
it is part of a cycle. Maybe the same could have been done without
duplicating the function pointer (tp_del + tp_finalize) with a
Py_TPFLAGS_DEL_EVEN_IN_A_CYCLE.
A bientôt,
Armin.
More information about the Python-Dev
mailing list