summaryrefslogtreecommitdiffstats
path: root/generic/tclEvent.c
diff options
context:
space:
mode:
authorandreas_kupries <akupries@shaw.ca>2001-09-24 17:50:52 (GMT)
committerandreas_kupries <akupries@shaw.ca>2001-09-24 17:50:52 (GMT)
commitbb93c0bc5c4d8116d1c04051c5f999615b5f06ff (patch)
tree1ff338fb659dd681db9f85845062cca421abe32f /generic/tclEvent.c
parentc7f7d2d33450e656c0e764a6859c714e6535246b (diff)
downloadtcl-bb93c0bc5c4d8116d1c04051c5f999615b5f06ff.zip
tcl-bb93c0bc5c4d8116d1c04051c5f999615b5f06ff.tar.gz
tcl-bb93c0bc5c4d8116d1c04051c5f999615b5f06ff.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 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.
*/