[Python-Dev] PyObject_GC_UnTrack() no longer reliable in 2.7?
Nick Coghlan
ncoghlan at gmail.com
Sun Sep 26 12:54:01 CEST 2010
On Sat, Sep 25, 2010 at 9:20 AM, Tim Peters <tim.peters at gmail.com> wrote:
[MvL]
>> I think it would be possible to have two versions of
>> _PyGC_REFS_UNTRACKED, one being, say, -5.
>> _PyGC_REFS_UNTRACKED_AND_KEEP_IT_THAT_WAY would be what you get
>> when you call PyObject_GC_UnTrack; the code to do automatic
>> tracking/untracking based on contents would use some other
>> new API (which would be non-public in 2.7.x).
>
> Looks like a promising idea! gcmodule.c's IS_TRACKED macro would have
> to change to check both states, and likewise the debug assert in
> visit_reachable().
Given the intent is to restore the 2.6 state, perhaps it is the
"UNTRACK_ALLOW_RETRACK" optimisation that should get the new special
value? Other than that, MvL's suggestion looks like a good idea.
Cheers,
Nick.
--
Nick Coghlan | ncoghlan at gmail.com | Brisbane, Australia
More information about the Python-Dev
mailing list