diff options
author | sebres <sebres@users.sourceforge.net> | 2014-04-22 13:25:41 (GMT) |
---|---|---|
committer | sebres <sebres@users.sourceforge.net> | 2014-04-22 13:25:41 (GMT) |
commit | fea67060de9dfd5bfbd323703c49af707a130926 (patch) | |
tree | 8c753402e4e14c2e9ce0d04c5bb6ef9ed65b565f /generic/tclThreadAlloc.c | |
parent | 473f2fb8dd64dfcd8320aac7f260d55396842f7b (diff) | |
download | tcl-fea67060de9dfd5bfbd323703c49af707a130926.zip tcl-fea67060de9dfd5bfbd323703c49af707a130926.tar.gz tcl-fea67060de9dfd5bfbd323703c49af707a130926.tar.bz2 |
Memory leak after thread exit, fixed (alloc cache released by exit), belong to ticket [3493120]
Moved over to branch bug-3493120. This is not ready
for the core-8-5-branch. Segfaults all over the place
in a thread-enabled build on a CentOS system.
Diffstat (limited to 'generic/tclThreadAlloc.c')
-rw-r--r-- | generic/tclThreadAlloc.c | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/generic/tclThreadAlloc.c b/generic/tclThreadAlloc.c index 2e74fa7..106e908 100644 --- a/generic/tclThreadAlloc.c +++ b/generic/tclThreadAlloc.c @@ -1012,6 +1012,33 @@ TclFinalizeThreadAlloc(void) TclpFreeAllocCache(NULL); } +/* + *---------------------------------------------------------------------- + * + * TclFinalizeThreadAllocThread -- + * + * This procedure is used to destroy single thread private resources used + * in this file. + * Called in TclpFinalizeThreadData when a thread exits (Tcl_FinalizeThread). + * + * Results: + * None. + * + * Side effects: + * None. + * + *---------------------------------------------------------------------- + */ + +void +TclFinalizeThreadAllocThread(void) +{ + Cache *cachePtr = TclpGetAllocCache(); + if (cachePtr != NULL) { + TclpFreeAllocCache(cachePtr); + } +} + #else /* !(TCL_THREADS && USE_THREAD_ALLOC) */ /* *---------------------------------------------------------------------- |