summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordgp <dgp@users.sourceforge.net>2011-08-23 16:31:11 (GMT)
committerdgp <dgp@users.sourceforge.net>2011-08-23 16:31:11 (GMT)
commit7b6e23a91afe6e1644253d45327605fb2016677f (patch)
treea954994fdbced0949c7fd0fdb062d9093bd77e05
parent8d4430b56c8e8f6fa179f64cb5cf4e8c9b9d37d7 (diff)
downloadtcl-7b6e23a91afe6e1644253d45327605fb2016677f.zip
tcl-7b6e23a91afe6e1644253d45327605fb2016677f.tar.gz
tcl-7b6e23a91afe6e1644253d45327605fb2016677f.tar.bz2
3396948 Leak of ReflectedChannelMap.
-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..f1c9053 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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