From 4d20475f6e4250fb181c1f2a8cca265d1d1a3d1e Mon Sep 17 00:00:00 2001 From: Hai Shi Date: Tue, 18 Aug 2020 04:36:19 +0800 Subject: [PATCH] bpo-1635741: Explict GC collect after PyInterpreterState_Clear() (GH-21902) Fix a reference cycle by triggering an explicit GC collection after calling PyInterpreterState_Clear(). --- Python/pylifecycle.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Python/pylifecycle.c b/Python/pylifecycle.c index 2d219a4a3a8b0d..ab5a6767864dc5 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 */ PyInterpreterState_Clear(tstate->interp); - /* 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.