diff options
| author | jan.nijtmans <nijtmans@users.sourceforge.net> | 2012-08-02 12:54:37 (GMT) |
|---|---|---|
| committer | jan.nijtmans <nijtmans@users.sourceforge.net> | 2012-08-02 12:54:37 (GMT) |
| commit | b1098ebef45f96bedb785e09f4f912db3ca0e9f9 (patch) | |
| tree | 479f819fb0b122b2e3161cb2c8a9e24a435b4a88 /generic/tclIO.c | |
| parent | 4f523fda09b2d21bf1b830e0258a4f489d4a8df4 (diff) | |
| parent | bc7cee752da36301f1478e54749f8e6b4a8d8b3e (diff) | |
| download | tcl-b1098ebef45f96bedb785e09f4f912db3ca0e9f9.zip tcl-b1098ebef45f96bedb785e09f4f912db3ca0e9f9.tar.gz tcl-b1098ebef45f96bedb785e09f4f912db3ca0e9f9.tar.bz2 | |
merge trunk
Diffstat (limited to 'generic/tclIO.c')
| -rw-r--r-- | generic/tclIO.c | 7 |
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); } |
