summaryrefslogtreecommitdiffstats
path: root/Python
diff options
context:
space:
mode:
Diffstat (limited to 'Python')
-rw-r--r--Python/pythonrun.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/Python/pythonrun.c b/Python/pythonrun.c
index a84186c..4cfb664 100644
--- a/Python/pythonrun.c
+++ b/Python/pythonrun.c
@@ -255,9 +255,17 @@ Py_Finalize(void)
Py_XDECREF(PyModule_WarningsModule);
PyModule_WarningsModule = NULL;
+ /* Collect garbage. This may call finalizers; it's nice to call these
+ before all modules are destroyed. */
+ PyGC_Collect();
+
/* Destroy all modules */
PyImport_Cleanup();
+ /* Collect final garbage. This disposes of cycles created by
+ new-style class definitions, for example. */
+ PyGC_Collect();
+
/* Destroy the database used by _PyImport_{Fixup,Find}Extension */
_PyImport_Fini();