From c20fffb1c16d1b8a7ed25de25f292df6297d176f Mon Sep 17 00:00:00 2001 From: "jan.nijtmans" Date: Tue, 11 Oct 2016 21:35:27 +0000 Subject: Fix [3cc1d91345]: duplicate calls to TclpFreeAllocCache() on thread exists --- unix/tclUnixInit.c | 2 +- unix/tclUnixThrd.c | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/unix/tclUnixInit.c b/unix/tclUnixInit.c index a8cd00d..a873f6e 100644 --- a/unix/tclUnixInit.c +++ b/unix/tclUnixInit.c @@ -833,7 +833,7 @@ TclpSetVariables( CFLocaleRef localeRef; - if (CFLocaleCopyCurrent != NULL && CFLocaleGetIdentifier != NULL && + if (&CFLocaleCopyCurrent != NULL && &CFLocaleGetIdentifier != NULL && (localeRef = CFLocaleCopyCurrent())) { CFStringRef locale = CFLocaleGetIdentifier(localeRef); diff --git a/unix/tclUnixThrd.c b/unix/tclUnixThrd.c index a7a294d..1841242 100644 --- a/unix/tclUnixThrd.c +++ b/unix/tclUnixThrd.c @@ -810,7 +810,8 @@ 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); @@ -818,7 +819,7 @@ TclpFreeAllocCache( } else if (initialized) { /* - * Called by us in TclFinalizeThreadAlloc() during the library + * Called by TclFinalizeThreadAlloc() during the process * finalization initiated from Tcl_Finalize() */ @@ -833,7 +834,7 @@ TclpGetAllocCache(void) if (!initialized) { pthread_mutex_lock(allocLockPtr); if (!initialized) { - pthread_key_create(&key, TclpFreeAllocCache); + pthread_key_create(&key, NULL); initialized = 1; } pthread_mutex_unlock(allocLockPtr); -- cgit v0.12