It seems obvious that when Py_Finalize() decides that there's nothing
to do, it should not call sys.exitfunc either...
diff --git a/Python/pythonrun.c b/Python/pythonrun.c
index e574281..1007860 100644
--- a/Python/pythonrun.c
+++ b/Python/pythonrun.c
@@ -179,12 +179,12 @@
PyInterpreterState *interp;
PyThreadState *tstate;
- call_sys_exitfunc();
-
if (!initialized)
return;
initialized = 0;
+ call_sys_exitfunc();
+
/* Get current thread state and interpreter pointer */
tstate = PyThreadState_Get();
interp = tstate->interp;