Issue #3835: Refuse to use unthreaded Tcl in threaded Python.
Patch by Guilherme Polo and Andrew Svetlov.
diff --git a/Misc/NEWS b/Misc/NEWS
index 8e7ef6f..6d51cba 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -24,6 +24,8 @@
Library
-------
+- Issue #3835: Refuse to use unthreaded Tcl in threaded Python.
+
- Issue #2843: Add new Tk API to Tkinter.
- Issue #14184: Increase the default stack size for secondary threads on
diff --git a/Modules/_tkinter.c b/Modules/_tkinter.c
index abbe0ec..94ae48d 100644
--- a/Modules/_tkinter.c
+++ b/Modules/_tkinter.c
@@ -613,6 +613,13 @@
}
#endif
#ifdef WITH_THREAD
+ if (!(v->threaded)) {
+ PyErr_SetString(PyExc_RuntimeError,
+ "Tcl/Tk was not compiled with --enable-threads but "
+ "Python has threads enabled");
+ Py_DECREF(v);
+ return 0;
+ }
if (v->threaded && tcl_lock) {
/* If Tcl is threaded, we don't need the lock. */
PyThread_free_lock(tcl_lock);