summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorandreas_kupries <akupries@shaw.ca>2006-07-14 18:25:14 (GMT)
committerandreas_kupries <akupries@shaw.ca>2006-07-14 18:25:14 (GMT)
commitbdce7878d48dd817db9215c36c9c4794740d4bfb (patch)
treec21363bada41705b4ede22861a494c2cc48ee11d
parent28fcbab330752d2af110e2e46c3be6c1da51cfeb (diff)
downloadtk-bdce7878d48dd817db9215c36c9c4794740d4bfb.zip
tk-bdce7878d48dd817db9215c36c9c4794740d4bfb.tar.gz
tk-bdce7878d48dd817db9215c36c9c4794740d4bfb.tar.bz2
* generic/tkWindow.c (Initialize): Modify change of 2006-05-25
(jeffh). Release mutex a bit earlier, to prevent lock when OS X creates its console windows (recursively enters Tk_Init). Patch by JeffH.
-rw-r--r--ChangeLog7
-rw-r--r--generic/tkWindow.c9
2 files changed, 15 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index e62c232..415a0f6 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2006-07-14 Andreas Kupries <andreask@activestate.com>
+
+ * generic/tkWindow.c (Initialize): Modify change of 2006-05-25
+ (jeffh). Release mutex a bit earlier, to prevent lock when OS X
+ creates its console windows (recursively enters Tk_Init). Patch
+ by JeffH.
+
2006-07-06 Jeff Hobbs <jeffh@ActiveState.com>
* library/tkfbox.tcl: catch scrollbar use of highlightthickness
diff --git a/generic/tkWindow.c b/generic/tkWindow.c
index de9553c..324ed0c 100644
--- a/generic/tkWindow.c
+++ b/generic/tkWindow.c
@@ -11,7 +11,7 @@
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
- * RCS: @(#) $Id: tkWindow.c,v 1.74 2006/05/25 23:49:48 hobbs Exp $
+ * RCS: @(#) $Id: tkWindow.c,v 1.75 2006/07/14 18:25:14 andreas_kupries Exp $
*/
#include "tkPort.h"
@@ -3128,8 +3128,14 @@ Initialize(interp)
/*
* Invoke platform-specific initialization.
+ * Unlock mutex before entering TkpInit, as that may run through the
+ * Tk_Init routine again for the console window interpreter.
*/
+ Tcl_MutexUnlock(&windowMutex);
+ if (argv != NULL) {
+ ckfree((char *) argv);
+ }
code = TkpInit(interp);
if (code == TCL_OK) {
/*
@@ -3140,6 +3146,7 @@ Initialize(interp)
TkCreateThreadExitHandler(DeleteWindowsExitProc, (ClientData) tsdPtr);
}
+ return code;
done:
Tcl_MutexUnlock(&windowMutex);