Skip to content
Merged
13 changes: 12 additions & 1 deletion Doc/c-api/dict.rst
Original file line number Diff line number Diff line change
Expand Up @@ -258,6 +258,17 @@ Dictionary Objects
value represents offsets within the internal dictionary structure, and
since the structure is sparse, the offsets are not consecutive.

.. 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`).


For example::

PyObject *key, *value;
Expand Down Expand Up @@ -297,7 +308,7 @@ Dictionary Objects

Py_BEGIN_CRITICAL_SECTION(self->dict);
while (PyDict_Next(self->dict, &pos, &key, &value)) {
...
...
}
Py_END_CRITICAL_SECTION();

Expand Down
Loading