https://github.com/python/cpython/commit/9ee0214b5dd982ac9fbe18dcce0e8787456e29af
commit: 9ee0214b5dd982ac9fbe18dcce0e8787456e29af
branch: main
author: PrinceNaroliya <[email protected]>
committer: ZeroIntensity <[email protected]>
date: 2025-08-25T10:53:26-04:00
summary:

gh-138098: Clarify strong references in `PyDict_Next` docs on the free-threaded 
build (GH-138106)

files:
M Doc/c-api/dict.rst

diff --git a/Doc/c-api/dict.rst b/Doc/c-api/dict.rst
index e55c5c80cb83c0..0fbe26b56c0a7c 100644
--- a/Doc/c-api/dict.rst
+++ b/Doc/c-api/dict.rst
@@ -301,6 +301,15 @@ Dictionary Objects
       }
       Py_END_CRITICAL_SECTION();
 
+   .. note::
+
+      On the free-threaded build, this function can be used safely inside a
+      critical section. However, the references returned for *pkey* and 
*pvalue*
+      are :term:`borrowed <borrowed reference>` and are only valid while the
+      critical section is held. If you need to use these objects outside the
+      critical section or when the critical section can be suspended, create a
+      :term:`strong reference <strong reference>` (for example, using
+      :c:func:`Py_NewRef`).
 
 .. c:function:: int PyDict_Merge(PyObject *a, PyObject *b, int override)
 

_______________________________________________
Python-checkins mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3//lists/python-checkins.python.org
Member address: [email protected]

Reply via email to