# HG changeset patch # User Stefan Vogel # Date 1476445497 -7200 # Node ID c2b4ab689f0dc04e3fbaa32ab4b10e8a441c638b # Parent cdc2a4259d4d8e421c60fe90b73741e0f6554f56 #BUGFIX by stefan class: NonPositionableExternalStream added: #close deregister file descriptors marked for select diff -r cdc2a4259d4d -r c2b4ab689f0d NonPositionableExternalStream.st --- a/NonPositionableExternalStream.st Fri Oct 14 13:43:10 2016 +0200 +++ b/NonPositionableExternalStream.st Fri Oct 14 13:44:57 2016 +0200 @@ -206,6 +206,25 @@ ]. ! ! +!NonPositionableExternalStream methodsFor:'closing'! + +close + "Close the stream. + No error if the stream is not open." + + |semasToSignal| + + self isOpen ifTrue:[ + "make sure, that no select is performed on closed file descriptors" + semasToSignal := Processor disableFd:self fileHandle doSignal:false. + super close. + "tell the waiters that they must not wait any longer" + semasToSignal do:[:eachSema| + eachSema signalForAll. + ]. + ]. +! ! + !NonPositionableExternalStream methodsFor:'error handling'! positionError