diff options
author | ferrieux <ferrieux@users.sourceforge.net> | 2011-08-17 20:35:19 (GMT) |
---|---|---|
committer | ferrieux <ferrieux@users.sourceforge.net> | 2011-08-17 20:35:19 (GMT) |
commit | c3c5a8b1faabc2f4bb00c558570e2bd7fd85a4b5 (patch) | |
tree | 16f9a76306580477ee6938b7d71fe10ac3b28c5d /generic/tclIO.c | |
parent | 52a5c4aa80d6c405b11ba4385bb30c01f1d9084d (diff) | |
download | tcl-c3c5a8b1faabc2f4bb00c558570e2bd7fd85a4b5.zip tcl-c3c5a8b1faabc2f4bb00c558570e2bd7fd85a4b5.tar.gz tcl-c3c5a8b1faabc2f4bb00c558570e2bd7fd85a4b5.tar.bz2 |
[Bug 2946474] Consistently resume backgrounded flushes+closes when exiting.
Diffstat (limited to 'generic/tclIO.c')
-rw-r--r-- | generic/tclIO.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/generic/tclIO.c b/generic/tclIO.c index 78c1dc0..a19fde8 100644 --- a/generic/tclIO.c +++ b/generic/tclIO.c @@ -414,8 +414,8 @@ TclFinalizeIOSubsystem(void) statePtr != NULL; statePtr = statePtr->nextCSPtr) { chanPtr = statePtr->topChanPtr; - if (!GotFlag(statePtr, CHANNEL_INCLOSE | CHANNEL_CLOSED | - CHANNEL_DEAD)) { + if (!GotFlag(statePtr, CHANNEL_INCLOSE | CHANNEL_CLOSED | CHANNEL_DEAD) + || GotFlag(statePtr, BG_FLUSH_SCHEDULED)) { active = 1; break; } @@ -458,6 +458,7 @@ TclFinalizeIOSubsystem(void) * The refcount is greater than zero, so flush the channel. */ + ResetFlag(statePtr, BG_FLUSH_SCHEDULED); Tcl_Flush((Tcl_Channel) chanPtr); /* |