summaryrefslogtreecommitdiffstats
path: root/Python
diff options
context:
space:
mode:
authorHai Shi <shihai1992@gmail.com>2020-08-17 20:36:19 (GMT)
committerGitHub <noreply@github.com>2020-08-17 20:36:19 (GMT)
commit8aa163eea6b0fb4693f6c0a314d4f2ccada51d70 (patch)
tree0ad0e0b954fa815da8fecb1be32e34e8daf939fd /Python
parent29f84294d88ec493c2de9d6e8dbc12fae3778771 (diff)
downloadcpython-8aa163eea6b0fb4693f6c0a314d4f2ccada51d70.zip
cpython-8aa163eea6b0fb4693f6c0a314d4f2ccada51d70.tar.gz
cpython-8aa163eea6b0fb4693f6c0a314d4f2ccada51d70.tar.bz2
bpo-1635741: Explict GC collect after PyInterpreterState_Clear() (GH-21902)
Fix a reference cycle by triggering an explicit GC collection after calling PyInterpreterState_Clear().
Diffstat (limited to 'Python')
-rw-r--r--Python/pylifecycle.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/Python/pylifecycle.c b/Python/pylifecycle.c
index 2d219a4..ab5a676 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.