summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorandreas_kupries <akupries@shaw.ca>2006-07-14 18:24:09 (GMT)
committerandreas_kupries <akupries@shaw.ca>2006-07-14 18:24:09 (GMT)
commit995232e2ed50f06ad6981b713d300a8a6531571a (patch)
treeb8ef9aedb5e83513b8c3c741838f2180de78673f
parent4991daebd930c8ef877ae5f3508cfa6bd9161193 (diff)
downloadtk-995232e2ed50f06ad6981b713d300a8a6531571a.zip
tk-995232e2ed50f06ad6981b713d300a8a6531571a.tar.gz
tk-995232e2ed50f06ad6981b713d300a8a6531571a.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.c10
2 files changed, 15 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index adfb9d9..1c27ae9 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 d3e38c4..266ebeb 100644
--- a/generic/tkWindow.c
+++ b/generic/tkWindow.c
@@ -12,7 +12,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.56.2.9 2006/05/25 23:51:02 hobbs Exp $
+ * RCS: @(#) $Id: tkWindow.c,v 1.56.2.10 2006/07/14 18:24:09 andreas_kupries Exp $
*/
#include "tkPort.h"
@@ -3159,9 +3159,15 @@ 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.
*/
- code = TkpInit(interp);
+ Tcl_MutexUnlock(&windowMutex);
+ if (argv != NULL) {
+ ckfree((char *) argv);
+ }
+ return TkpInit(interp);
done:
Tcl_MutexUnlock(&windowMutex);