summaryrefslogtreecommitdiffstats
path: root/unix/tkUnixEvent.c
diff options
context:
space:
mode:
Diffstat (limited to 'unix/tkUnixEvent.c')
-rw-r--r--unix/tkUnixEvent.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/unix/tkUnixEvent.c b/unix/tkUnixEvent.c
index 9b32502..b7f8f75 100644
--- a/unix/tkUnixEvent.c
+++ b/unix/tkUnixEvent.c
@@ -128,7 +128,7 @@ TkpOpenDisplay(
int minor = 0;
int reason = 0;
unsigned int use_xkb = 0;
-#ifdef TCL_THREADS
+#if defined(XKEYCODETOKEYSYM_IS_DEPRECATED) && defined(TCL_THREADS)
static int xinited = 0;
TCL_DECLARE_MUTEX(xinitMutex);
@@ -137,8 +137,12 @@ TkpOpenDisplay(
if (!xinited) {
/* Necessary for threaded apps, of no consequence otherwise */
/* need only be called once, but must be called before *any* */
- /* Xlib call is made. */
- XInitThreads();
+ /* Xlib call is made. If xinitMutex is still NULL after the */
+ /* Tcl_MutexLock call, Tcl was compiled without threads so */
+ /* we cannot use XInitThreads() either. */
+ if (xinitMutex != NULL){
+ XInitThreads();
+ }
xinited = 1;
}
Tcl_MutexUnlock(&xinitMutex);