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 /generic/tclIORChan.c | |
parent | 8d4430b56c8e8f6fa179f64cb5cf4e8c9b9d37d7 (diff) | |
download | tcl-7b6e23a91afe6e1644253d45327605fb2016677f.zip tcl-7b6e23a91afe6e1644253d45327605fb2016677f.tar.gz tcl-7b6e23a91afe6e1644253d45327605fb2016677f.tar.bz2 |
3396948 Leak of ReflectedChannelMap.
Diffstat (limited to 'generic/tclIORChan.c')
-rw-r--r-- | generic/tclIORChan.c | 7 |
1 files changed, 3 insertions, 4 deletions
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 |