diff options
author | dgp <dgp@users.sourceforge.net> | 2018-06-26 17:00:29 (GMT) |
---|---|---|
committer | dgp <dgp@users.sourceforge.net> | 2018-06-26 17:00:29 (GMT) |
commit | 9da2aebeaebd1ccbfa806b0c3550774abc7ad778 (patch) | |
tree | 9dc2e6f4d73f15267c13a65293fa65fdf60f8c11 /generic/tclThreadTest.c | |
parent | ed5ed756bc5993edb110e13b90028646b413e92d (diff) | |
download | tcl-9da2aebeaebd1ccbfa806b0c3550774abc7ad778.zip tcl-9da2aebeaebd1ccbfa806b0c3550774abc7ad778.tar.gz tcl-9da2aebeaebd1ccbfa806b0c3550774abc7ad778.tar.bz2 |
Use a thread exit handler, and not a custom exit proc for package cleanup.
Diffstat (limited to 'generic/tclThreadTest.c')
-rw-r--r-- | generic/tclThreadTest.c | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/generic/tclThreadTest.c b/generic/tclThreadTest.c index 92cfa13..35b3fc3 100644 --- a/generic/tclThreadTest.c +++ b/generic/tclThreadTest.c @@ -174,15 +174,6 @@ TclThread_Init( Tcl_CreateObjCommand(interp, "testthread", ThreadObjCmd, NULL, NULL); return TCL_OK; } - - -void TclThreadTestFinalize() { - if (errorProcString != NULL) { - ckfree(errorProcString); - errorProcString= NULL; - } - return; -} /* *---------------------------------------------------------------------- @@ -1166,6 +1157,14 @@ ThreadExitProc( Tcl_MutexLock(&threadMutex); + if (self == errorThreadId) { + if (errorProcString) { /* Extra safety */ + ckfree(errorProcString); + errorProcString = NULL; + } + errorThreadId = 0; + } + if (threadEvalScript) { ckfree(threadEvalScript); threadEvalScript = NULL; |