diff options
author | dkf <donal.k.fellows@manchester.ac.uk> | 2017-06-05 23:20:36 (GMT) |
---|---|---|
committer | dkf <donal.k.fellows@manchester.ac.uk> | 2017-06-05 23:20:36 (GMT) |
commit | f8223fa81718da26562fff851b4a56d18b58a62a (patch) | |
tree | 2c47bdd025eab065e5f559ade49795a3acaf938e /unix/tclUnixThrd.c | |
parent | e9d31a334b4cbd18716b3c1eacf7f516cbc7286d (diff) | |
parent | 0b178367ba3b9a10d44f89025c89292a4ea49b20 (diff) | |
download | tcl-dkf_expose_ptrgetvar.zip tcl-dkf_expose_ptrgetvar.tar.gz tcl-dkf_expose_ptrgetvar.tar.bz2 |
merge trunkdkf_expose_ptrgetvar
Diffstat (limited to 'unix/tclUnixThrd.c')
-rw-r--r-- | unix/tclUnixThrd.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/unix/tclUnixThrd.c b/unix/tclUnixThrd.c index 8f8eb7f..f475aed 100644 --- a/unix/tclUnixThrd.c +++ b/unix/tclUnixThrd.c @@ -644,6 +644,7 @@ TclpFinalizeCondition( *---------------------------------------------------------------------- */ +#ifndef TCL_NO_DEPRECATED Tcl_DirEntry * TclpReaddir( DIR * dir) @@ -666,6 +667,7 @@ TclpInetNtoa( return inet_ntoa(addr); #endif } +#endif /* TCL_NO_DEPRECATED */ #ifdef TCL_THREADS /* @@ -711,9 +713,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 +722,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); } } |