summaryrefslogtreecommitdiffstats
path: root/generic/tclThreadTest.c
diff options
context:
space:
mode:
authordgp <dgp@users.sourceforge.net>2018-06-26 17:00:29 (GMT)
committerdgp <dgp@users.sourceforge.net>2018-06-26 17:00:29 (GMT)
commit9da2aebeaebd1ccbfa806b0c3550774abc7ad778 (patch)
tree9dc2e6f4d73f15267c13a65293fa65fdf60f8c11 /generic/tclThreadTest.c
parented5ed756bc5993edb110e13b90028646b413e92d (diff)
downloadtcl-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.c17
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;