diff options
author | Victor Stinner <vstinner@redhat.com> | 2019-03-19 13:53:58 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-03-19 13:53:58 (GMT) |
commit | f5f336a819a3d881bb217bf8f9b5cacba03a4e45 (patch) | |
tree | a5673005a042063677a7eb14763cfa6e1d9a6d41 | |
parent | fecc4f2b474f16062514e95a67e66080fd626e14 (diff) | |
download | cpython-f5f336a819a3d881bb217bf8f9b5cacba03a4e45.zip cpython-f5f336a819a3d881bb217bf8f9b5cacba03a4e45.tar.gz cpython-f5f336a819a3d881bb217bf8f9b5cacba03a4e45.tar.bz2 |
bpo-36356: pymain_free() calls _PyRuntime_Finalize() (GH-12435)
Ensure that _PyRuntime_Finalize() is always call. This change fix a
few memory leaks when running "python3 -V".
-rw-r--r-- | Include/internal/pycore_pystate.h | 2 | ||||
-rw-r--r-- | Modules/main.c | 1 |
2 files changed, 3 insertions, 0 deletions
diff --git a/Include/internal/pycore_pystate.h b/Include/internal/pycore_pystate.h index 703a85b..7c9d11a 100644 --- a/Include/internal/pycore_pystate.h +++ b/Include/internal/pycore_pystate.h @@ -184,6 +184,8 @@ PyAPI_FUNC(void) _PyRuntimeState_ReInitThreads(void); Return NULL on success, or return an error message on failure. */ PyAPI_FUNC(_PyInitError) _PyRuntime_Initialize(void); +PyAPI_FUNC(void) _PyRuntime_Finalize(void); + #define _Py_CURRENTLY_FINALIZING(tstate) \ (_PyRuntime.finalizing == tstate) diff --git a/Modules/main.c b/Modules/main.c index 8f7a1bf..99396b7 100644 --- a/Modules/main.c +++ b/Modules/main.c @@ -839,6 +839,7 @@ pymain_free(void) _PyPathConfig_ClearGlobal(); _Py_ClearStandardStreamEncoding(); _Py_ClearArgcArgv(); + _PyRuntime_Finalize(); } |