# HG changeset patch # User Claus Gittinger # Date 1066860437 -7200 # Node ID 5d43745f59acc978d0a90cf181ad657689c2a79c # Parent 7c63f0b47f0d02b6d45c95306d6b2b3c365e3afb only do a writeWait if previous non-blocking write failed to send all data diff -r 7c63f0b47f0d -r 5d43745f59ac NonPositionableExternalStream.st --- a/NonPositionableExternalStream.st Thu Oct 23 00:02:18 2003 +0200 +++ b/NonPositionableExternalStream.st Thu Oct 23 00:07:17 2003 +0200 @@ -447,15 +447,16 @@ nextPutBytes:initialWriteCount from:buffer startingAt:initialOffset "redefined, to wait until stream is writable, to avoid blocking in a write" - |offset remaining wasBlocking| + |count offset remaining wasBlocking| offset := initialOffset. remaining := initialWriteCount. wasBlocking := self blocking:false. - [remaining ~~ 0] whileTrue:[ |count| - self writeWait. + [remaining ~~ 0] whileTrue:[ count := super nextPutBytes:remaining from:buffer startingAt:offset. + count ~~ remaining ifTrue:[ self writeWait. ]. + remaining := remaining - count. offset := offset + count. ]. @@ -467,5 +468,5 @@ !NonPositionableExternalStream class methodsFor:'documentation'! version - ^ '$Header: /cvs/stx/stx/libbasic/NonPositionableExternalStream.st,v 1.47 2003-10-21 22:55:36 cg Exp $' + ^ '$Header: /cvs/stx/stx/libbasic/NonPositionableExternalStream.st,v 1.48 2003-10-22 22:07:17 cg Exp $' ! !