diff options
author | dgp <dgp@users.sourceforge.net> | 2016-06-16 16:27:01 (GMT) |
---|---|---|
committer | dgp <dgp@users.sourceforge.net> | 2016-06-16 16:27:01 (GMT) |
commit | 3cbd3b2bede59c6fd03330ac014e626a0a776522 (patch) | |
tree | 8e125264e32e68a389be074bfb8795cd212b9114 /generic/tclThread.c | |
parent | 95fb48bf07be37ad0717475514d2c444602a0a6c (diff) | |
parent | 4fac9b8d0fb5648943635cf4c956c9518e610921 (diff) | |
download | tcl-3cbd3b2bede59c6fd03330ac014e626a0a776522.zip tcl-3cbd3b2bede59c6fd03330ac014e626a0a776522.tar.gz tcl-3cbd3b2bede59c6fd03330ac014e626a0a776522.tar.bz2 |
Merge tip of core-8-6-branchbug_16828b3744
Diffstat (limited to 'generic/tclThread.c')
-rw-r--r-- | generic/tclThread.c | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/generic/tclThread.c b/generic/tclThread.c index d1f2691..198fa6a 100644 --- a/generic/tclThread.c +++ b/generic/tclThread.c @@ -339,8 +339,9 @@ Tcl_ConditionFinalize( * * TclFinalizeThreadData -- * - * This function cleans up the thread-local storage. This is called once - * for each thread. + * This function cleans up the thread-local storage. Secondary, it cleans + * thread alloc cache. + * This is called once for each thread before thread exits. * * Results: * None. @@ -352,9 +353,17 @@ Tcl_ConditionFinalize( */ void -TclFinalizeThreadData(void) +TclFinalizeThreadData(int quick) { TclFinalizeThreadDataThread(); +#if defined(TCL_THREADS) && defined(USE_THREAD_ALLOC) + if (!quick) { + /* + * Quick exit principle makes it useless to terminate allocators + */ + TclFinalizeThreadAllocThread(); + } +#endif } /* |