diff --git a/Doc/api/newtypes.tex b/Doc/api/newtypes.tex index 038cce9280b..5b2e6cf7877 100644 --- a/Doc/api/newtypes.tex +++ b/Doc/api/newtypes.tex @@ -1389,6 +1389,16 @@ inherited by subtypes. field. \end{cmemberdesc} +Also, note that, in a garbage collected Python, tp_dealloc may be +called from any Python thread, not just the thread which created the +object (if the object becomes part of a refcount cycle, that cycle +might be collected by a garbage collection on any thread). This is +not a problem for Python API calls, since the thread on which +tp_dealloc is called will own the Global Interpreter Lock (GIL). +However, if the object being destroyed in turn destroys objects from +some other C or C++ library, care should be taken to ensure that +destroying those objects on the thread which called tp_dealloc will +not violate any assumptions of the library. \section{Mapping Object Structures \label{mapping-structs}}