summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjan.nijtmans <nijtmans@users.sourceforge.net>2011-08-24 07:47:08 (GMT)
committerjan.nijtmans <nijtmans@users.sourceforge.net>2011-08-24 07:47:08 (GMT)
commitdd0f607950cf1416722aa14bd13506278ec6dd2c (patch)
treef80879ba7ed56fa96325e46a04ddcab6fe53c8f8
parentb221bf2d18ea76ed4a1e6c33cb1a1d25eb9fa4e4 (diff)
parentfe0b615064efb673ddf7e8d4f1d934aaabda0cd1 (diff)
downloadtcl-dd0f607950cf1416722aa14bd13506278ec6dd2c.zip
tcl-dd0f607950cf1416722aa14bd13506278ec6dd2c.tar.gz
tcl-dd0f607950cf1416722aa14bd13506278ec6dd2c.tar.bz2
Merge to feature branch
-rw-r--r--ChangeLog4
-rw-r--r--generic/tclIORChan.c7
2 files changed, 7 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index 36cf7f1..bc323fa 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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