summaryrefslogtreecommitdiffstats
path: root/Doc/c-api
diff options
context:
space:
mode:
authorEric Snow <ericsnowcurrently@gmail.com>2022-07-29 01:23:47 (GMT)
committerGitHub <noreply@github.com>2022-07-29 01:23:47 (GMT)
commit3e7cad3bca64ab213c66e2bd41c9d1cf1d057526 (patch)
treedef84e7995f73122d158470f8f178d38726a981c /Doc/c-api
parent6e44bf9558dbcaffd78b7c4fc7f6b474388b4a9a (diff)
downloadcpython-3e7cad3bca64ab213c66e2bd41c9d1cf1d057526.zip
cpython-3e7cad3bca64ab213c66e2bd41c9d1cf1d057526.tar.gz
cpython-3e7cad3bca64ab213c66e2bd41c9d1cf1d057526.tar.bz2
gh-94673: Add Per-Interpreter tp_weaklist for Static Builtin Types (#95302)
* Store tp_weaklist on the interpreter state for static builtin types. * Factor out _PyStaticType_GET_WEAKREFS_LISTPTR(). * Add _PyStaticType_ClearWeakRefs(). * Add a comment about how _PyStaticType_ClearWeakRefs() loops. * Document the change. * Update Doc/whatsnew/3.12.rst * Fix a typo.
Diffstat (limited to 'Doc/c-api')
-rw-r--r--Doc/c-api/typeobj.rst7
1 files changed, 7 insertions, 0 deletions
diff --git a/Doc/c-api/typeobj.rst b/Doc/c-api/typeobj.rst
index a331e9c..7514801 100644
--- a/Doc/c-api/typeobj.rst
+++ b/Doc/c-api/typeobj.rst
@@ -1942,6 +1942,13 @@ and :c:type:`PyType_Type` effectively act as defaults.)
Weak reference list head, for weak references to this type object. Not
inherited. Internal use only.
+ .. versionchanged:: 3.12
+
+ Internals detail: For the static builtin types this is always ``NULL``,
+ even if weakrefs are added. Instead, the weakrefs for each are stored
+ on ``PyInterpreterState``. Use the public C-API or the internal
+ ``_PyObject_GET_WEAKREFS_LISTPTR()`` macro to avoid the distinction.
+
**Inheritance:**
This field is not inherited.