[Python-ideas] Multi-core reference count garbage collection
MRAB
python at mrabarnett.plus.com
Thu Jul 19 11:33:27 EDT 2018
On 2018-07-19 11:53, Jonathan Fine wrote:
> Hi Stephan
>
> Thank you for the extract from the GC Handbook, which I think I may have
> seen before. Yes, it is GOOD that it's an already known idea.
>
> Searching for "buffered reference counting" I found
> https://mail.python.org/pipermail/python-dev/2016-October/146696.html
> in which Larry Hastings says that C-python "plays games with reference
> counts" which makes implementing "buffered reference counting" harder.
> And he gives examples.
>
> Larry also writes [loc cit] about resurrecting objects. I don't know
> what he means by this. It may be something to do with weak references.
> Larry's post gives some details, in which difficulties may lie. In
> particular, he writes
> ===
> https://mail.python.org/pipermail/python-dev/2016-October/146604.html
> It's my contention that this API [for weak references] is simply
> untenable under the
> Gilectomy, and that it needs to change to returning a new (strong)
> reference.
>
[snip]
When an object's refcount drops to 0, the object's __del__ method (if
defined) is called, and then the object's memory can be reclaimed.
But what if the __del__ method creates a new reference to the object?
The object's refcount is no longer 0, so the object is no longer garbage.
That's called "resurrecting an object".
More information about the Python-ideas
mailing list