--- 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'!