From: Guido van Rossum Date: Tue, 14 Jul 1998 18:02:13 +0000 (+0000) Subject: Temporarily get rid of the registration of Tcl_Finalize() as a X-Git-Tag: v1.5.2a1~303 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=43ff8683fe68424b9c179ee4970bb865e11036d6;p=python Temporarily get rid of the registration of Tcl_Finalize() as a low-level Python exit handler. This can attempt to call Python code at a point that the interpreter and thread state have already been destroyed, causing a Bus Error. Given the intended use of Py_AtExit(), I'm not convinced that it's a good idea to call it earlier during Python's finalization sequence... (Although this is the only use for it in the entire distribution.) --- diff --git a/Modules/_tkinter.c b/Modules/_tkinter.c index fc526577c0..e1b2b18896 100644 --- a/Modules/_tkinter.c +++ b/Modules/_tkinter.c @@ -2030,9 +2030,14 @@ init_tkinter() if (PyErr_Occurred()) return; +#if 0 + /* This was not a good idea; through bindings, + Tcl_Finalize() may invoke Python code but at that point the + interpreter and thread state have already been destroyed! */ #if TKMAJORMINOR >= 8000 Py_AtExit(Tcl_Finalize); #endif +#endif #ifdef macintosh /*