diff options
| author | jan.nijtmans <nijtmans@users.sourceforge.net> | 2018-10-28 19:26:49 (GMT) |
|---|---|---|
| committer | jan.nijtmans <nijtmans@users.sourceforge.net> | 2018-10-28 19:26:49 (GMT) |
| commit | ccb97d88ffefe602e7eb5a9610bd356d66bc2f20 (patch) | |
| tree | 417cc58c53b8773c08262c85128c46225c4d2ea0 /generic/tclThreadTest.c | |
| parent | 3c4cc0a0013a0552c90518a995ae654571c18a5b (diff) | |
| parent | fd548863930daf0e1bc3d01286f542844b1cc69c (diff) | |
| download | tcl-ccb97d88ffefe602e7eb5a9610bd356d66bc2f20.zip tcl-ccb97d88ffefe602e7eb5a9610bd356d66bc2f20.tar.gz tcl-ccb97d88ffefe602e7eb5a9610bd356d66bc2f20.tar.bz2 | |
Merge 8.7
Diffstat (limited to 'generic/tclThreadTest.c')
| -rw-r--r-- | generic/tclThreadTest.c | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/generic/tclThreadTest.c b/generic/tclThreadTest.c index 9c5fecb..1742eb7 100644 --- a/generic/tclThreadTest.c +++ b/generic/tclThreadTest.c @@ -18,7 +18,7 @@ #endif #include "tclInt.h" -#ifdef TCL_THREADS +#if TCL_THREADS /* * Each thread has an single instance of the following structure. There is one * instance of this structure per thread even if that thread contains multiple @@ -174,7 +174,6 @@ TclThread_Init( Tcl_CreateObjCommand(interp, "testthread", ThreadObjCmd, NULL, NULL); return TCL_OK; } - /* *---------------------------------------------------------------------- @@ -248,7 +247,7 @@ ThreadObjCmd( switch ((enum options)option) { case THREAD_CANCEL: { - long id; + Tcl_WideInt id; const char *result; int flags, arg; @@ -264,7 +263,7 @@ ThreadObjCmd( arg++; } } - if (Tcl_GetLongFromObj(interp, objv[arg], &id) != TCL_OK) { + if (Tcl_GetWideIntFromObj(interp, objv[arg], &id) != TCL_OK) { return TCL_ERROR; } arg++; @@ -1158,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; |
