diff -r a3c21a89ec37 -r 730e0f5d2404 PipeStream.st --- a/PipeStream.st Thu Jul 27 06:12:43 1995 +0200 +++ b/PipeStream.st Fri Jul 28 04:38:43 1995 +0200 @@ -21,7 +21,7 @@ COPYRIGHT (c) 1989 by Claus Gittinger All Rights Reserved -$Header: /cvs/stx/stx/libbasic/PipeStream.st,v 1.26 1995-07-22 19:23:52 claus Exp $ +$Header: /cvs/stx/stx/libbasic/PipeStream.st,v 1.27 1995-07-28 02:37:38 claus Exp $ '! !PipeStream class methodsFor:'documentation'! @@ -42,7 +42,7 @@ version " -$Header: /cvs/stx/stx/libbasic/PipeStream.st,v 1.26 1995-07-22 19:23:52 claus Exp $ +$Header: /cvs/stx/stx/libbasic/PipeStream.st,v 1.27 1995-07-28 02:37:38 claus Exp $ " ! @@ -245,7 +245,10 @@ shutDown "close the Stream, ignoring any broken-pipe errors" - BrokenPipeSignal catch:[self closeFileDescriptor] + BrokenPipeSignal catch:[ + Lobby unregister:self. + self closeFileDescriptor + ] ! closeFile @@ -268,6 +271,27 @@ } #endif %} +! + +closeFileDescriptor + "alternative very low level close + This closes the underlying OS-fileDescriptor + - and will NOT write any buffered data to the stream. + You have been warned." + +%{ /* NOCONTEXT */ + + OBJ fp; + FILE *f; + + if ((fp = _INST(filePointer)) != nil) { + _INST(filePointer) = nil; + __BEGIN_INTERRUPTABLE__ + f = MKFD(fp); + close(fileno(f)); + __END_INTERRUPTABLE__ + } +%} ! ! !PipeStream methodsFor:'private'!