bpo-42208: Call GC collect earlier in PyInterpreterState_Clear() (GH-23044)

The last GC collection is now done before clearing builtins and sys
dictionaries. Add also assertions to ensure that gc.collect() is no
longer called after _PyGC_Fini().

Pass also the tstate to PyInterpreterState_Clear() to pass the
correct tstate to _PyGC_CollectNoFail() and _PyGC_Fini().
This commit is contained in:
Victor Stinner 2020-10-30 22:51:02 +01:00 • committed by GitHub
parent 4fe72090de
commit eba5bf2f56
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 35 additions and 15 deletions

View file

@ -267,6 +267,7 @@ extern PyStatus _PyInterpreterState_SetConfig(
PyInterpreterState *interp,
const PyConfig *config);
extern void _PyInterpreterState_Clear(PyThreadState *tstate);
/* cross-interpreter data registry */