From ead8b7ab3008bda9b6a50d6d9d02ed68dab3b0fd Mon Sep 17 00:00:00 2001 From: Tim Peters Date: Sat, 30 Oct 2004 23:09:22 +0000 Subject: SF 1055820: weakref callback vs gc vs threads In cyclic gc, clear weakrefs to unreachable objects before allowing any Python code (weakref callbacks or __del__ methods) to run. This is a critical bugfix, affecting all versions of Python since weakrefs were introduced. I'll backport to 2.3. --- Objects/weakrefobject.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'Objects/weakrefobject.c') diff --git a/Objects/weakrefobject.c b/Objects/weakrefobject.c index 6da8192da2..02370c4a7a 100644 --- a/Objects/weakrefobject.c +++ b/Objects/weakrefobject.c @@ -850,7 +850,9 @@ PyWeakref_GetObject(PyObject *ref) return PyWeakref_GET_OBJECT(ref); } - +/* Note that there's an inlined copy-paste of handle_callback() in gcmodule.c's + * handle_weakrefs(). + */ static void handle_callback(PyWeakReference *ref, PyObject *callback) { -- cgit v1.2.1