summaryrefslogtreecommitdiffstats
path: root/unix/tclUnixThrd.c
diff options
context:
space:
mode:
authorjan.nijtmans <nijtmans@users.sourceforge.net>2017-02-01 15:03:59 (GMT)
committerjan.nijtmans <nijtmans@users.sourceforge.net>2017-02-01 15:03:59 (GMT)
commit3bf70f8a7d94966b183bc23250a2b45fd4248241 (patch)
treea3a8dd299606092b7219a6d8ae10b5deba724aab /unix/tclUnixThrd.c
parent8826c4b5dc048432fbed200da55eef080c75b32c (diff)
parent680d27740a871cd27464c07ed2afee0f4104dbd4 (diff)
downloadtcl-pyk_emptystring.zip
tcl-pyk_emptystring.tar.gz
tcl-pyk_emptystring.tar.bz2
merge trunkpyk_emptystring
Diffstat (limited to 'unix/tclUnixThrd.c')
-rw-r--r--unix/tclUnixThrd.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/unix/tclUnixThrd.c b/unix/tclUnixThrd.c
index 8f8eb7f..805599d 100644
--- a/unix/tclUnixThrd.c
+++ b/unix/tclUnixThrd.c
@@ -711,9 +711,7 @@ TclpFreeAllocMutex(
void
TclpInitAllocCache(void)
{
- pthread_mutex_lock(allocLockPtr);
- pthread_key_create(&key, TclpFreeAllocCache);
- pthread_mutex_unlock(allocLockPtr);
+ pthread_key_create(&key, NULL);
}
void
@@ -722,13 +720,19 @@ TclpFreeAllocCache(
{
if (ptr != NULL) {
/*
- * Called by the pthread lib when a thread exits
+ * Called by TclFinalizeThreadAllocThread() during the thread
+ * finalization initiated from Tcl_FinalizeThread()
*/
TclFreeAllocCache(ptr);
pthread_setspecific(key, NULL);
} else {
+ /*
+ * Called by TclFinalizeThreadAlloc() during the process
+ * finalization initiated from Tcl_Finalize()
+ */
+
pthread_key_delete(key);
}
}