summaryrefslogtreecommitdiffstats
path: root/generic/tclIO.c
diff options
context:
space:
mode:
authorjan.nijtmans <nijtmans@users.sourceforge.net>2012-08-02 12:54:37 (GMT)
committerjan.nijtmans <nijtmans@users.sourceforge.net>2012-08-02 12:54:37 (GMT)
commitb1098ebef45f96bedb785e09f4f912db3ca0e9f9 (patch)
tree479f819fb0b122b2e3161cb2c8a9e24a435b4a88 /generic/tclIO.c
parent4f523fda09b2d21bf1b830e0258a4f489d4a8df4 (diff)
parentbc7cee752da36301f1478e54749f8e6b4a8d8b3e (diff)
downloadtcl-b1098ebef45f96bedb785e09f4f912db3ca0e9f9.zip
tcl-b1098ebef45f96bedb785e09f4f912db3ca0e9f9.tar.gz
tcl-b1098ebef45f96bedb785e09f4f912db3ca0e9f9.tar.bz2
merge trunk
Diffstat (limited to 'generic/tclIO.c')
-rw-r--r--generic/tclIO.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/generic/tclIO.c b/generic/tclIO.c
index ea6c2d7..2de8b53 100644
--- a/generic/tclIO.c
+++ b/generic/tclIO.c
@@ -427,7 +427,10 @@ TclFinalizeIOSubsystem(void)
statePtr != NULL;
statePtr = statePtr->nextCSPtr) {
chanPtr = statePtr->topChanPtr;
- if (!GotFlag(statePtr, CHANNEL_INCLOSE | CHANNEL_CLOSED | CHANNEL_DEAD)
+ if (GotFlag(statePtr, CHANNEL_DEAD)) {
+ continue;
+ }
+ if (!GotFlag(statePtr, CHANNEL_INCLOSE | CHANNEL_CLOSED )
|| GotFlag(statePtr, BG_FLUSH_SCHEDULED)) {
ResetFlag(statePtr, BG_FLUSH_SCHEDULED);
active = 1;
@@ -8822,6 +8825,7 @@ TclChannelEventScriptInvoker(
*/
Tcl_Preserve(interp);
+ Tcl_Preserve(chanPtr);
result = Tcl_EvalObjEx(interp, esPtr->scriptPtr, TCL_EVAL_GLOBAL);
/*
@@ -8838,6 +8842,7 @@ TclChannelEventScriptInvoker(
}
Tcl_BackgroundException(interp, result);
}
+ Tcl_Release(chanPtr);
Tcl_Release(interp);
}