summaryrefslogtreecommitdiffstats
path: root/Python/pythonrun.c
diff options
context:
space:
mode:
authorVictor Stinner <victor.stinner@gmail.com>2013-12-01 09:03:26 (GMT)
committerVictor Stinner <victor.stinner@gmail.com>2013-12-01 09:03:26 (GMT)
commitbe0708f06634ae4426ca9032314be4b8902d6008 (patch)
treee9b48e4c87ed3b07bdf1237d3df57282bcbf5123 /Python/pythonrun.c
parent54532c9742523814bbc43ccbd1a4560ec3d449d3 (diff)
downloadcpython-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/pythonrun.c')
-rw-r--r--Python/pythonrun.c5
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();