]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
gh-116946: partial revert gh-139073 for thread handle type (#139474)
authorKumar Aditya <kumaraditya@python.org>
Wed, 1 Oct 2025 17:49:31 +0000 (23:19 +0530)
committerGitHub <noreply@github.com>
Wed, 1 Oct 2025 17:49:31 +0000 (17:49 +0000)
Modules/_threadmodule.c

index b43bf5e97d81a6e605824f931f9415364a45ad89..cc8277c578385874a8e01147aa71a0a17c8808ef 100644 (file)
@@ -660,6 +660,7 @@ static void
 PyThreadHandleObject_dealloc(PyObject *op)
 {
     PyThreadHandleObject *self = PyThreadHandleObject_CAST(op);
+    PyObject_GC_UnTrack(self);
     PyTypeObject *tp = Py_TYPE(self);
     ThreadHandle_decref(self->handle);
     tp->tp_free(self);
@@ -747,6 +748,7 @@ static PyType_Slot ThreadHandle_Type_slots[] = {
     {Py_tp_dealloc, PyThreadHandleObject_dealloc},
     {Py_tp_repr, PyThreadHandleObject_repr},
     {Py_tp_getset, ThreadHandle_getsetlist},
+    {Py_tp_traverse, _PyObject_VisitType},
     {Py_tp_methods, ThreadHandle_methods},
     {Py_tp_new, PyThreadHandleObject_tp_new},
     {0, 0}
@@ -756,7 +758,7 @@ static PyType_Spec ThreadHandle_Type_spec = {
     "_thread._ThreadHandle",
     sizeof(PyThreadHandleObject),
     0,
-    Py_TPFLAGS_DEFAULT | Py_TPFLAGS_IMMUTABLETYPE,
+    Py_TPFLAGS_DEFAULT | Py_TPFLAGS_IMMUTABLETYPE | Py_TPFLAGS_HAVE_GC,
     ThreadHandle_Type_slots,
 };