diff options
author | Victor Stinner <victor.stinner@gmail.com> | 2013-12-01 09:03:26 (GMT) |
---|---|---|
committer | Victor Stinner <victor.stinner@gmail.com> | 2013-12-01 09:03:26 (GMT) |
commit | be0708f06634ae4426ca9032314be4b8902d6008 (patch) | |
tree | e9b48e4c87ed3b07bdf1237d3df57282bcbf5123 /Python | |
parent | 54532c9742523814bbc43ccbd1a4560ec3d449d3 (diff) | |
download | cpython-be0708f06634ae4426ca9032314be4b8902d6008.zip cpython-be0708f06634ae4426ca9032314be4b8902d6008.tar.gz cpython-be0708f06634ae4426ca9032314be4b8902d6008.tar.bz2 |
Closes #19831: Stop tracemalloc later at Python shutdown to be able to use
tracemalloc in objects destructor
Replace atexit handler with an harcoded C function _PyTraceMalloc_Fini().
Diffstat (limited to 'Python')
-rw-r--r-- | Python/pythonrun.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/Python/pythonrun.c b/Python/pythonrun.c index 3adbbd7..ccf82af 100644 --- a/Python/pythonrun.c +++ b/Python/pythonrun.c @@ -106,6 +106,7 @@ extern int _PyFaulthandler_Init(void); extern void _PyFaulthandler_Fini(void); extern void _PyHash_Fini(void); extern int _PyTraceMalloc_Init(void); +extern int _PyTraceMalloc_Fini(void); #ifdef WITH_THREAD extern void _PyGILState_Init(PyInterpreterState *, PyThreadState *); @@ -642,6 +643,10 @@ Py_Finalize(void) PyGC_Collect(); #endif + /* Disable tracemalloc after all Python objects have been destroyed, + so it is possible to use tracemalloc in objects destructor. */ + _PyTraceMalloc_Fini(); + /* Destroy the database used by _PyImport_{Fixup,Find}Extension */ _PyImport_Fini(); |