A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://mail.python.org/pipermail/python-dev/2001-March/013867.html below:

[Python-Dev] RE: CVS Python is unstable

[Python-Dev] RE: CVS Python is unstableNeil Schemenauer nas@arctrix.com
Fri, 23 Mar 2001 06:08:24 -0800
On Fri, Mar 23, 2001 at 01:50:21AM -0500, Fred L. Drake, Jr. wrote:
> The change that's been identified as causing the problem was
> trying to remove the weak ref from the cycle detectors set of
> known containers as soon as the ref object was no longer a
> container.

I'm not sure what you mean by "no longer a container".  If the
object defines the GC type flag the GC thinks its a container.

> When this is done by the tp_clear handler may be the problem;
> the GC machinery is removing the object from the list, and
> calls gc_list_remove() assuming that the object is still in the
> list, but after the tp_clear handler has been called.

I believe your problems are deeper than this.  If
PyObject_IS_GC(op) is true and op is reachable from other objects
known to the GC then op must be in the linked list.  I haven't
tracked down all the locations in gcmodule where this assumption
is made but visit_reachable is one example.

We could remove this restriction if we were willing to accept
some slowdown.  One way would be to add the invariant
(gc_next == NULL) if the object is not in the GC list.  PyObject_Init
and gc_list_remove would have to set this pointer.  Is it worth
doing?

  Neil



RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4