diff options
author | dgp <dgp@users.sourceforge.net> | 2014-05-08 02:55:47 (GMT) |
---|---|---|
committer | dgp <dgp@users.sourceforge.net> | 2014-05-08 02:55:47 (GMT) |
commit | eb476fdf9350b70cf8ab1ec90ad848dec9d1b75b (patch) | |
tree | caa73061d234001fa4a8dd8b7c220d1d5420a6ea /generic/tclIO.c | |
parent | 738fe7424e7be63a02664f8cef5ccefe0b0974c1 (diff) | |
parent | 48ae7e42c1bd6a104c78d737fd6b826a1a4ee7bd (diff) | |
download | tcl-eb476fdf9350b70cf8ab1ec90ad848dec9d1b75b.zip tcl-eb476fdf9350b70cf8ab1ec90ad848dec9d1b75b.tar.gz tcl-eb476fdf9350b70cf8ab1ec90ad848dec9d1b75b.tar.bz2 |
Merge 8.5.dgp_read_bytes
Diffstat (limited to 'generic/tclIO.c')
-rw-r--r-- | generic/tclIO.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/generic/tclIO.c b/generic/tclIO.c index fff61f3..b692d6d 100644 --- a/generic/tclIO.c +++ b/generic/tclIO.c @@ -2525,6 +2525,7 @@ FlushChannel( if (errorCode == EINTR) { errorCode = 0; + ReleaseChannelBuffer(bufPtr); continue; } @@ -2546,6 +2547,7 @@ FlushChannel( UpdateInterest(chanPtr); } errorCode = 0; + ReleaseChannelBuffer(bufPtr); break; } @@ -2613,6 +2615,7 @@ FlushChannel( */ DiscardOutputQueued(statePtr); + ReleaseChannelBuffer(bufPtr); continue; } else { wroteSome = 1; @@ -3604,6 +3607,7 @@ static int WillRead(Channel *chanPtr) { if (chanPtr->typePtr == NULL) { /* Prevent read attempts on a closed channel */ + DiscardInputQueued(chanPtr->state, 0); Tcl_SetErrno(EINVAL); return -1; } @@ -3782,6 +3786,7 @@ Write( if (IsBufferFull(bufPtr)) { if (FlushChannel(NULL, chanPtr, 0) != 0) { + ReleaseChannelBuffer(bufPtr); return -1; } flushed += statePtr->bufSize; |