summaryrefslogtreecommitdiffstats
path: root/generic/tclEvent.c
diff options
context:
space:
mode:
authorandreas_kupries <akupries@shaw.ca>2001-09-24 17:54:54 (GMT)
committerandreas_kupries <akupries@shaw.ca>2001-09-24 17:54:54 (GMT)
commit138bca983ef2dd1ca1e49200560c31f184d53bd6 (patch)
tree6635956e4bdb4e4ce9a3952bdf46562514800df4 /generic/tclEvent.c
parentc9fcc4aacc643d65d7d4c56fe8b44f51f6c52f46 (diff)
downloadtcl-138bca983ef2dd1ca1e49200560c31f184d53bd6.zip
tcl-138bca983ef2dd1ca1e49200560c31f184d53bd6.tar.gz
tcl-138bca983ef2dd1ca1e49200560c31f184d53bd6.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'.
Diffstat (limited to 'generic/tclEvent.c')
-rw-r--r--generic/tclEvent.c21
1 files changed, 11 insertions, 10 deletions
diff --git a/generic/tclEvent.c b/generic/tclEvent.c
index 7e7ddfb..b9c3337 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.8.2.3 2001/09/11 01:31:43 hobbs Exp $
+ * RCS: @(#) $Id: tclEvent.c,v 1.8.2.4 2001/09/24 17:54:54 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.
*/