diff options
author | jan.nijtmans <nijtmans@users.sourceforge.net> | 2011-08-24 07:47:08 (GMT) |
---|---|---|
committer | jan.nijtmans <nijtmans@users.sourceforge.net> | 2011-08-24 07:47:08 (GMT) |
commit | dd0f607950cf1416722aa14bd13506278ec6dd2c (patch) | |
tree | f80879ba7ed56fa96325e46a04ddcab6fe53c8f8 | |
parent | b221bf2d18ea76ed4a1e6c33cb1a1d25eb9fa4e4 (diff) | |
parent | fe0b615064efb673ddf7e8d4f1d934aaabda0cd1 (diff) | |
download | tcl-dd0f607950cf1416722aa14bd13506278ec6dd2c.zip tcl-dd0f607950cf1416722aa14bd13506278ec6dd2c.tar.gz tcl-dd0f607950cf1416722aa14bd13506278ec6dd2c.tar.bz2 |
Merge to feature branch
-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-23 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 |