diff options
author | dgp <dgp@users.sourceforge.net> | 2018-06-26 17:18:10 (GMT) |
---|---|---|
committer | dgp <dgp@users.sourceforge.net> | 2018-06-26 17:18:10 (GMT) |
commit | 41a740e30c7442449bb73624575c1195493d76d0 (patch) | |
tree | ddbbf44fd0ed6698c7c6902fc9aaa0db0e1aa10e | |
parent | 868f84d487516539afa0e7051e2ce3a2ed8c7cc3 (diff) | |
parent | 968382225704b01ee24ffa2764db83b5549b279d (diff) | |
download | tcl-41a740e30c7442449bb73624575c1195493d76d0.zip tcl-41a740e30c7442449bb73624575c1195493d76d0.tar.gz tcl-41a740e30c7442449bb73624575c1195493d76d0.tar.bz2 |
merge 8.7
-rw-r--r-- | generic/tclInt.h | 1 | ||||
-rw-r--r-- | generic/tclTest.c | 16 | ||||
-rw-r--r-- | generic/tclThreadTest.c | 17 |
3 files changed, 8 insertions, 26 deletions
diff --git a/generic/tclInt.h b/generic/tclInt.h index aa62fb3..8687785 100644 --- a/generic/tclInt.h +++ b/generic/tclInt.h @@ -4565,7 +4565,6 @@ MODULE_SCOPE Tcl_PackageInitProc TclObjTest_Init; MODULE_SCOPE Tcl_PackageInitProc TclThread_Init; MODULE_SCOPE Tcl_PackageInitProc Procbodytest_Init; MODULE_SCOPE Tcl_PackageInitProc Procbodytest_SafeInit; -MODULE_SCOPE void TclThreadTestFinalize(); /* *---------------------------------------------------------------- diff --git a/generic/tclTest.c b/generic/tclTest.c index 115fbcc..b6d6b95 100644 --- a/generic/tclTest.c +++ b/generic/tclTest.c @@ -44,7 +44,6 @@ DLLEXPORT int Tcltest_Init(Tcl_Interp *interp); DLLEXPORT int Tcltest_SafeInit(Tcl_Interp *interp); -EXTERN TCL_NORETURN void Tcltest_Exit(ClientData clientData); /* * Dynamic string shared by TestdcallCmd and DelCallbackProc; used to collect @@ -571,10 +570,6 @@ Tcltest_Init( return TCL_ERROR; } - - /* Finalizer */ - Tcl_SetExitProc(Tcltest_Exit); - /* * Create additional commands and math functions for testing Tcl. */ @@ -802,17 +797,6 @@ Tcltest_SafeInit( return Procbodytest_SafeInit(interp); } -TCL_NORETURN void Tcltest_Exit( - ClientData clientData -) { - int status = PTR2INT(clientData); - Tcl_Finalize(); - TclThreadTestFinalize(); - TclpExit(status); - Tcl_Panic("OS exit failed!"); -} - - /* *---------------------------------------------------------------------- * diff --git a/generic/tclThreadTest.c b/generic/tclThreadTest.c index 6da26db..1742eb7 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; |