PipeStream.st
changeset 3833 3ae90f8da01a
parent 3791 76ea6c85ca1f
child 3834 93ec07316a98
--- a/PipeStream.st	Fri Sep 11 20:07:52 1998 +0200
+++ b/PipeStream.st	Sat Sep 12 14:28:09 1998 +0200
@@ -407,16 +407,23 @@
      Use shutDown for a fast (nonBlocking) close."
 
     filePointer notNil ifTrue:[
-	super closeFile.
-	filePointer := nil.
-	pid notNil ifTrue:[
-	    [
-		pid notNil ifTrue:[
-		    exitSema wait.
-		]
-	    ] valueUninterruptably
-	].
+        pid notNil ifTrue:[
+            OperatingSystem isMSDOSlike ifTrue:[
+                OperatingSystem terminateProcess:pid
+            ]
+        ].
+        super closeFile.
+        filePointer := nil.
+        pid notNil ifTrue:[
+            [
+                pid notNil ifTrue:[
+                    exitSema wait.
+                ]
+            ] valueUninterruptably
+        ].
     ].
+
+    "Modified: / 12.9.1998 / 13:28:12 / cg"
 !
 
 closeFileDescriptor
@@ -463,24 +470,35 @@
      Terminate the command"
 
     BrokenPipeSignal catch:[
-	|tpid|
+        |tpid|
+
+        Lobby unregister:self.
+
+        "/ terminate first under windows.
+        pid notNil ifTrue:[
+            OperatingSystem isMSDOSlike ifTrue:[
+                OperatingSystem terminateProcess:pid.
+                pid := nil.
+            ].
+        ].
 
-	Lobby unregister:self.
-	self closeFileDescriptor.
-	tpid := pid.                    "copy pid to avoid race"
-	tpid notNil ifTrue:[
-	    "/
-	    "/ Terminate both the process and group, just in case the
-	    "/ operating system does not support process groups.
-	    "/
-	    OperatingSystem terminateProcess:tpid.
-	    OperatingSystem terminateProcessGroup:tpid.
-	    pid := nil.
-	].
+        self closeFileDescriptor.
+        tpid := pid.                    "copy pid to avoid race"
+        tpid notNil ifTrue:[
+            "/ terminate last under unix.
+            "/
+            "/ Terminate both the process and group, just in case the
+            "/ operating system does not support process groups.
+            "/
+            OperatingSystem terminateProcess:tpid.
+            OperatingSystem terminateProcessGroup:tpid.
+            pid := nil.
+        ].
 
     ]
 
-    "Modified: 23.5.1996 / 09:15:41 / stefan"
+    "Modified: / 23.5.1996 / 09:15:41 / stefan"
+    "Modified: / 12.9.1998 / 13:36:25 / cg"
 ! !
 
 !PipeStream methodsFor:'private'!
@@ -669,6 +687,6 @@
 !PipeStream class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/PipeStream.st,v 1.72 1998-08-27 14:11:59 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/PipeStream.st,v 1.73 1998-09-12 12:28:09 cg Exp $'
 ! !
 PipeStream initialize!