diff options
author | dgp <dgp@users.sourceforge.net> | 2011-08-23 16:31:11 (GMT) |
---|---|---|
committer | dgp <dgp@users.sourceforge.net> | 2011-08-23 16:31:11 (GMT) |
commit | 7b6e23a91afe6e1644253d45327605fb2016677f (patch) | |
tree | a954994fdbced0949c7fd0fdb062d9093bd77e05 | |
parent | 8d4430b56c8e8f6fa179f64cb5cf4e8c9b9d37d7 (diff) | |
download | tcl-7b6e23a91afe6e1644253d45327605fb2016677f.zip tcl-7b6e23a91afe6e1644253d45327605fb2016677f.tar.gz tcl-7b6e23a91afe6e1644253d45327605fb2016677f.tar.bz2 |
3396948 Leak of ReflectedChannelMap.
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | generic/tclIORChan.c | 7 |
2 files changed, 7 insertions, 4 deletions
@@ -1,3 +1,7 @@ +2011-08-19 Don Porter <dgp@users.sourceforge.net> + + * generic/tclIORChan.c: [Bug 3396948] Leak of ReflectedChannelMap. + 2011-08-23 Jan Nijtmans <nijtmans@users.sf.net> * generic/tclStringObj.c: [FRQ 3396731] inline string reverse diff --git a/generic/tclIORChan.c b/generic/tclIORChan.c index 9ba42ef..846618c 100644 --- a/generic/tclIORChan.c +++ b/generic/tclIORChan.c @@ -2516,6 +2516,7 @@ DeleteReflectedChannelMap( Tcl_ConditionNotify(&resultPtr->done); } + Tcl_MutexUnlock(&rcForwardMutex); /* * Get the map of all channels handled by the current thread. This is a @@ -2541,8 +2542,6 @@ DeleteReflectedChannelMap( Tcl_DeleteHashEntry(hPtr); } - - Tcl_MutexUnlock(&rcForwardMutex); #endif } @@ -2650,6 +2649,7 @@ DeleteThreadReflectedChannelMap( Tcl_ConditionNotify(&resultPtr->done); } + Tcl_MutexUnlock(&rcForwardMutex); /* * Get the map of all channels handled by the current thread. This is a @@ -2667,8 +2667,7 @@ DeleteThreadReflectedChannelMap( rcPtr->interp = NULL; Tcl_DeleteHashEntry(hPtr); } - - Tcl_MutexUnlock(&rcForwardMutex); + ckfree(rcmPtr); } static void |