summaryrefslogtreecommitdiffstats
path: root/Python/pylifecycle.c
diff options
context:
space:
mode:
authorVictor Stinner <vstinner@python.org>2025-01-24 13:29:36 (GMT)
committerGitHub <noreply@github.com>2025-01-24 13:29:36 (GMT)
commitfc6bc1e4e30c8995cc4f68e56e70686d84495048 (patch)
tree2dafbcbcdd55b8aa16d177895461343ffecb888a /Python/pylifecycle.c
parent233fd00f0a19d33932e35f2fb6794ecae745b780 (diff)
downloadcpython-fc6bc1e4e30c8995cc4f68e56e70686d84495048.zip
cpython-fc6bc1e4e30c8995cc4f68e56e70686d84495048.tar.gz
cpython-fc6bc1e4e30c8995cc4f68e56e70686d84495048.tar.bz2
gh-129185: Simplify PyTraceMalloc_Track() (#129256)
Since tracemalloc uses PyMutex, it becomes safe to use TABLES_LOCK() even after _PyTraceMalloc_Fini(): remove the "pre-check" in PyTraceMalloc_Track() and PyTraceMalloc_Untrack(). PyTraceMalloc_Untrack() no longer needs to acquire the GIL. _PyTraceMalloc_Fini() can be called earlier during Python finalization.
Diffstat (limited to 'Python/pylifecycle.c')
-rw-r--r--Python/pylifecycle.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/Python/pylifecycle.c b/Python/pylifecycle.c
index 52890cf..f357ddf 100644
--- a/Python/pylifecycle.c
+++ b/Python/pylifecycle.c
@@ -2113,7 +2113,7 @@ _Py_Finalize(_PyRuntimeState *runtime)
/* Disable tracemalloc after all Python objects have been destroyed,
so it is possible to use tracemalloc in objects destructor. */
- _PyTraceMalloc_Stop();
+ _PyTraceMalloc_Fini();
/* Finalize any remaining import state */
// XXX Move these up to where finalize_modules() is currently.
@@ -2166,7 +2166,6 @@ _Py_Finalize(_PyRuntimeState *runtime)
finalize_interp_clear(tstate);
- _PyTraceMalloc_Fini();
#ifdef Py_TRACE_REFS
/* Display addresses (& refcnts) of all objects still alive.