diff options
author | Martin Panter <vadmium+py@gmail.com> | 2015-11-30 03:18:29 (GMT) |
---|---|---|
committer | Martin Panter <vadmium+py@gmail.com> | 2015-11-30 03:18:29 (GMT) |
commit | b4ce1fc31be5614d527d77c55018281ebbcd70ab (patch) | |
tree | 8f51eb2efd5191ae1284be5d82b5d84f4bf6a424 /Modules/main.c | |
parent | 92d5fbaf8f6c3c3c8ab0c83be848fcc206f02b22 (diff) | |
download | cpython-b4ce1fc31be5614d527d77c55018281ebbcd70ab.zip cpython-b4ce1fc31be5614d527d77c55018281ebbcd70ab.tar.gz cpython-b4ce1fc31be5614d527d77c55018281ebbcd70ab.tar.bz2 |
Issue #5319: New Py_FinalizeEx() API to exit with status 120 on failure
Diffstat (limited to 'Modules/main.c')
-rw-r--r-- | Modules/main.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/Modules/main.c b/Modules/main.c index 2a9ea28..0fbdb69 100644 --- a/Modules/main.c +++ b/Modules/main.c @@ -654,7 +654,7 @@ Py_Main(int argc, wchar_t **argv) Py_SetProgramName(wbuf); /* Don't free wbuf, the argument to Py_SetProgramName - * must remain valid until the Py_Finalize is called. + * must remain valid until Py_FinalizeEx is called. */ } else { Py_SetProgramName(argv[0]); @@ -785,7 +785,11 @@ Py_Main(int argc, wchar_t **argv) sts = PyRun_AnyFileFlags(stdin, "<stdin>", &cf) != 0; } - Py_Finalize(); + if (Py_FinalizeEx() < 0) { + /* Value unlikely to be confused with a non-error exit status or + other special meaning */ + sts = 120; + } #ifdef __INSURE__ /* Insure++ is a memory analysis tool that aids in discovering |