[Python-checkins] bpo-1635741: Explict GC collect after PyInterpreterState_Clear() (GH-21902)

Hai Shi webhook-mailer at python.org
Mon Aug 17 16:36:27 EDT 2020

commit: 8aa163eea6b0fb4693f6c0a314d4f2ccada51d70
branch: master
author: Hai Shi <shihai1992 at gmail.com>
committer: GitHub <noreply at github.com>
date: 2020-08-17T22:36:19+02:00

bpo-1635741: Explict GC collect after PyInterpreterState_Clear() (GH-21902)

Fix a reference cycle by triggering an explicit GC collection
after calling PyInterpreterState_Clear().

M Python/pylifecycle.c

diff --git a/Python/pylifecycle.c b/Python/pylifecycle.c
index 2d219a4a3a8b0..ab5a6767864dc 100644
--- a/Python/pylifecycle.c
+++ b/Python/pylifecycle.c
@@ -1286,10 +1286,8 @@ finalize_interp_clear(PyThreadState *tstate)
     /* Clear interpreter state and all thread states */
-    /* Trigger a GC collection on subinterpreters*/
-    if (!is_main_interp) {
-        _PyGC_CollectNoFail();
-    }
+    /* Last explicit GC collection */
+    _PyGC_CollectNoFail();
     /* Clear all loghooks */
     /* Both _PySys_Audit function and users still need PyObject, such as tuple.

More information about the Python-checkins mailing list