diff options
author | andreas_kupries <andreas_kupries@noemail.net> | 2001-09-24 17:50:51 (GMT) |
---|---|---|
committer | andreas_kupries <andreas_kupries@noemail.net> | 2001-09-24 17:50:51 (GMT) |
commit | 7e905b929f0d0d6cb0a39d8b0a82c550f6954e04 (patch) | |
tree | 1ff338fb659dd681db9f85845062cca421abe32f /generic | |
parent | d50299265abe057069156837201630eb357d16fa (diff) | |
download | tcl-7e905b929f0d0d6cb0a39d8b0a82c550f6954e04.zip tcl-7e905b929f0d0d6cb0a39d8b0a82c550f6954e04.tar.gz tcl-7e905b929f0d0d6cb0a39d8b0a82c550f6954e04.tar.bz2 |
* The change below fixes [Bug #464380]. The bug was reported by
Ronnie Brunner <rbrunner@users.sourceforge.net>. He also
provided the patch.
* generic/tclEvent.c (Tcl_Finalize): Moved release of
'tclLibraryPath' to Tcl_FinalizeThread.
(Tcl_FinalizeThread): See above, new place for release of
'tclLibraryPath'.
FossilOrigin-Name: c461a8422553ce387496d4a4684f5b94939847a2
Diffstat (limited to 'generic')
-rw-r--r-- | generic/tclEvent.c | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/generic/tclEvent.c b/generic/tclEvent.c index 5b9250e..54516e7 100644 --- a/generic/tclEvent.c +++ b/generic/tclEvent.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: tclEvent.c,v 1.13 2001/09/11 01:31:24 hobbs Exp $ + * RCS: @(#) $Id: tclEvent.c,v 1.14 2001/09/24 17:50:53 andreas_kupries Exp $ */ #include "tclInt.h" @@ -795,15 +795,6 @@ Tcl_Finalize() Tcl_MutexUnlock(&exitMutex); /* - * Clean up the library path now, before we invalidate thread-local - * storage. - */ - if (tsdPtr->tclLibraryPath != NULL) { - Tcl_DecrRefCount(tsdPtr->tclLibraryPath); - tsdPtr->tclLibraryPath = NULL; - } - - /* * Clean up after the current thread now, after exit handlers. * In particular, the testexithandler command sets up something * that writes to standard output, which gets closed. @@ -910,6 +901,16 @@ Tcl_FinalizeThread() TclFinalizeAsync(); /* + * Clean up the library path now, before we invalidate thread-local + * storage. + */ + + if (tsdPtr->tclLibraryPath != NULL) { + Tcl_DecrRefCount(tsdPtr->tclLibraryPath); + tsdPtr->tclLibraryPath = NULL; + } + + /* * Blow away all thread local storage blocks. */ |