From: Victor Stinner Date: Wed, 16 Mar 2016 22:19:15 +0000 (+0100) Subject: Py_FatalError: disable faulthandler earlier X-Git-Tag: v3.6.0a1~453^2 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=a2e5e044af21e55e51a0cd50f8197fdca2d0cf8b;p=python Py_FatalError: disable faulthandler earlier Issue #26563: Py_FatalError: disable faulthandler before trying to flush sys.stdout and sys.stderr. --- diff --git a/Python/pylifecycle.c b/Python/pylifecycle.c index c4a6d7c955..35ca88fd3b 100644 --- a/Python/pylifecycle.c +++ b/Python/pylifecycle.c @@ -1354,17 +1354,17 @@ Py_FatalError(const char *msg) if (!_Py_FatalError_PrintExc(fd)) _Py_FatalError_DumpTracebacks(fd); + /* The main purpose of faulthandler is to display the traceback. We already + * did our best to display it. So faulthandler can now be disabled. + * (Don't trigger it on abort().) */ + _PyFaulthandler_Fini(); + /* Check if the current Python thread hold the GIL */ if (PyThreadState_GET() != NULL) { /* Flush sys.stdout and sys.stderr */ flush_std_files(); } - /* The main purpose of faulthandler is to display the traceback. We already - * did our best to display it. So faulthandler can now be disabled. - * (Don't trigger it on abort().) */ - _PyFaulthandler_Fini(); - #ifdef MS_WINDOWS len = strlen(msg);