From 5becf564cc065f5753e80042445d4217582b7860 Mon Sep 17 00:00:00 2001 From: hobbs Date: Wed, 3 Oct 2001 18:28:05 +0000 Subject: * generic/tclEvent.c (Tcl_FinalizeThread): moved freeing of tclLibraryPath to before the thread exit handlers are called. Slight modification to change on 2001-09-24. --- ChangeLog | 6 ++++++ generic/tclEvent.c | 23 ++++++++++++----------- 2 files changed, 18 insertions(+), 11 deletions(-) diff --git a/ChangeLog b/ChangeLog index 21574e3..989dbbd 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2001-10-03 Jeff Hobbs + + * generic/tclEvent.c (Tcl_FinalizeThread): moved freeing of + tclLibraryPath to before the thread exit handlers are called. + Slight modification to change on 2001-09-24. + 2001-10-01 Jeff Hobbs * win/configure: regen'ed diff --git a/generic/tclEvent.c b/generic/tclEvent.c index 54516e7..3ad7234 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.14 2001/09/24 17:50:53 andreas_kupries Exp $ + * RCS: @(#) $Id: tclEvent.c,v 1.15 2001/10/03 18:28:05 hobbs Exp $ */ #include "tclInt.h" @@ -884,6 +884,17 @@ Tcl_FinalizeThread() */ tsdPtr->inExit = 1; + + /* + * Clean up the library path now, before we invalidate thread-local + * storage or calling thread exit handlers. + */ + + if (tsdPtr->tclLibraryPath != NULL) { + Tcl_DecrRefCount(tsdPtr->tclLibraryPath); + tsdPtr->tclLibraryPath = NULL; + } + for (exitPtr = tsdPtr->firstExitPtr; exitPtr != NULL; exitPtr = tsdPtr->firstExitPtr) { /* @@ -901,16 +912,6 @@ 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. */ -- cgit v0.12