From ea36d03763a946add362edce9d078e36a00828bd Mon Sep 17 00:00:00 2001 From: Peter Bierma Date: Thu, 18 Sep 2025 08:10:41 -0400 Subject: [PATCH] Document `Py_AddPendingCall()` change with subinterpreters in 3.12 (GH-139117) Prior to 3.9, Py_AddPendingCall() would always run pending calls in the main interpreter, but then each interpreter got their own ceval state, and they were scheduled for any interpreter. In GH-104813, this was undone, so Py_AddPendingCall() would always schedule for the main interpreter. (cherry picked from commit 89ff88be89328964dbc50a474a84c566fe920b46) Co-authored-by: Peter Bierma --- Doc/c-api/init.rst | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Doc/c-api/init.rst b/Doc/c-api/init.rst index 6a272a4f5fcb87..0473bd0fb549be 100644 --- a/Doc/c-api/init.rst +++ b/Doc/c-api/init.rst @@ -1999,6 +1999,10 @@ pointer and a void pointer argument. called from the main interpreter. Each subinterpreter now has its own list of scheduled calls. + .. versionchanged:: 3.12 + This function now always schedules *func* to be run in the main + interpreter. + .. _profiling: Profiling and Tracing