https://github.com/python/cpython/commit/21e43d5e8343f356f12d6450a00b3c1e66f66bab
commit: 21e43d5e8343f356f12d6450a00b3c1e66f66bab
branch: 3.14
author: Sergey Miryanov <[email protected]>
committer: ZeroIntensity <[email protected]>
date: 2025-11-15T13:56:52-05:00
summary:

[3.14] GH-141509: Fix warning about remaining subinterpreters (GH-141528) 
(GH-141566)

(cherry picked from commit fa245df4a0848c15cf8d907c10fc92819994b866)

Co-authored-by: Peter Bierma <[email protected]>

files:
A 
Misc/NEWS.d/next/Core_and_Builtins/2025-11-14-00-19-45.gh-issue-141528.VWdax1.rst
M Lib/test/test_interpreters/test_api.py
M Python/pylifecycle.c

diff --git a/Lib/test/test_interpreters/test_api.py 
b/Lib/test/test_interpreters/test_api.py
index c5a1743e7fdedf..e88fd399dfba38 100644
--- a/Lib/test/test_interpreters/test_api.py
+++ b/Lib/test/test_interpreters/test_api.py
@@ -431,6 +431,7 @@ def test_cleanup_in_repl(self):
         exit()"""
         stdout, stderr = repl.communicate(script)
         self.assertIsNone(stderr)
+        self.assertIn(b"Interpreter.close()", stdout)
         self.assertNotIn(b"Traceback", stdout)
 
 
diff --git 
a/Misc/NEWS.d/next/Core_and_Builtins/2025-11-14-00-19-45.gh-issue-141528.VWdax1.rst
 
b/Misc/NEWS.d/next/Core_and_Builtins/2025-11-14-00-19-45.gh-issue-141528.VWdax1.rst
new file mode 100644
index 00000000000000..a51aa49522866b
--- /dev/null
+++ 
b/Misc/NEWS.d/next/Core_and_Builtins/2025-11-14-00-19-45.gh-issue-141528.VWdax1.rst
@@ -0,0 +1,3 @@
+Suggest using :meth:`concurrent.interpreters.Interpreter.close` instead of the
+private ``_interpreters.destroy`` function when warning about remaining 
subinterpreters.
+Patch by Sergey Miryanov.
diff --git a/Python/pylifecycle.c b/Python/pylifecycle.c
index 5b9ce617a48676..f5fbdeedac34ad 100644
--- a/Python/pylifecycle.c
+++ b/Python/pylifecycle.c
@@ -2517,7 +2517,7 @@ finalize_subinterpreters(void)
     (void)PyErr_WarnEx(
             PyExc_RuntimeWarning,
             "remaining subinterpreters; "
-            "destroy them with _interpreters.destroy()",
+            "close them with Interpreter.close()",
             0);
 
     /* Swap out the current tstate, which we know must belong

_______________________________________________
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