summaryrefslogtreecommitdiff
path: root/Python/pylifecycle.c
diff options
context:
space:
mode:
authorEric Snow <ericsnowcurrently@gmail.com>2017-09-14 00:35:58 -0700
committerGitHub <noreply@github.com>2017-09-14 00:35:58 -0700
commitdae0276bb6bc7281d59fb0b8f1aab31634ee80dc (patch)
treed36e7b49ee6ef1cdb2a2384be568c8d28a7b0bb0 /Python/pylifecycle.c
parent93c92f7d1dbb6e7e472f1d0444c6968858113de2 (diff)
downloadcpython-git-dae0276bb6bc7281d59fb0b8f1aab31634ee80dc.tar.gz
bpo-30860: Fix a refleak. (#3567)
Resolves bpo-31420. (This was accidentally reverted when in #3565.)
Diffstat (limited to 'Python/pylifecycle.c')
-rw-r--r--Python/pylifecycle.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/Python/pylifecycle.c b/Python/pylifecycle.c
index 0700569ac5..2aac901ad1 100644
--- a/Python/pylifecycle.c
+++ b/Python/pylifecycle.c
@@ -1011,6 +1011,11 @@ Py_FinalizeEx(void)
while (_PyGC_CollectIfEnabled() > 0)
/* nothing */;
#endif
+
+#ifdef Py_REF_DEBUG
+ PyObject *showrefcount = _PyDebug_XOptionShowRefCount();
+#endif
+
/* Destroy all modules */
PyImport_Cleanup();
@@ -1058,7 +1063,10 @@ Py_FinalizeEx(void)
/* dump hash stats */
_PyHash_Fini();
- _PY_DEBUG_PRINT_TOTAL_REFS();
+#ifdef Py_REF_DEBUG
+ if (showrefcount == Py_True)
+ _PyDebug_PrintTotalRefs();
+#endif
#ifdef Py_TRACE_REFS
/* Display all objects still alive -- this can invoke arbitrary