added killProcess / killProcessGroup
authorClaus Gittinger <cg@exept.de>
Wed, 10 Jun 1998 12:01:56 +0200
changeset 3541 7391c94f47b3
parent 3540 f0a069e481b8
child 3542 b6e8232516c3
added killProcess / killProcessGroup
OS.st
UnixOS.st
UnixOperatingSystem.st
--- a/OS.st	Wed Jun 10 11:53:06 1998 +0200
+++ b/OS.st	Wed Jun 10 12:01:56 1998 +0200
@@ -1831,14 +1831,29 @@
 !
 
 killProcess:processId
-    "kill a unix process.
-     The process terminates immediately and has no chance to perform any cleanup actions.
+    "kill an OS process.
+     The process has a no chance to do some cleanup.
 
      WARNING: in order to avoid zombie processes (on unix),
-	      you have to fetch the processes exitstatus with
-	      OperatingSystem>>getStatusOfProcess:aProcessId."
+              you may have to fetch the processes exitstatus with
+              OperatingSystem>>getStatusOfProcess:aProcessId."
 
     self subclassResponsibility
+
+    "Modified: / 10.6.1998 / 12:00:07 / cg"
+!
+
+killProcessGroup:processGroupId
+    "kill an OS process group.
+     The process has NO chance to do some cleanup.
+
+     WARNING: in order to avoid zombie processes (on unix),
+              you may have to fetch the processes exitstatus with
+              OperatingSystem>>getStatusOfProcess:aProcessId."
+
+    self subclassResponsibility
+
+    "Created: / 10.6.1998 / 12:00:26 / cg"
 !
 
 nameForSignal:aSignalNumber
@@ -1915,16 +1930,6 @@
     OSSignals at:signalNumber put:aSignal
 !
 
-primTerminateProcess:pid
-    "terminate a WIN32 process.
-    The TerminateProcess function is used to unconditionally cause
-    a process to exit. Use it only in extreme circumstances. The state of
-    global data maintained by dynamic-link libraries (DLLs)
-    may be compromised if TerminateProcess is used."
-
-    self subclassResponsibility
-!
-
 sendSignal:signalNumber to:processId
     "send a unix signal to some process (maybe myself).
      Returns false if any error occurred, true otherwise.
@@ -3235,6 +3240,6 @@
 !AbstractOperatingSystem class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/Attic/OS.st,v 1.5 1998-06-05 17:10:05 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/Attic/OS.st,v 1.6 1998-06-10 10:01:21 cg Exp $'
 ! !
 AbstractOperatingSystem initialize!
--- a/UnixOS.st	Wed Jun 10 11:53:06 1998 +0200
+++ b/UnixOS.st	Wed Jun 10 12:01:56 1998 +0200
@@ -5400,18 +5400,28 @@
 
 killProcess:processId
     "kill a unix process.
-     The process terminates immediately and has no chance to perform any cleanup actions.
+     The process has a no chance to do some cleanup.
 
      WARNING: in order to avoid zombie processes (on unix),
-	      you have to fetch the processes exitstatus with
-	      UnixOperatingSystem>>getStatusOfProcess:aProcessId."
-
-    self isMSWINDOWSlike ifTrue:[
-      self primTerminateProcess:processId
-    ] ifFalse:[
-      self sendSignal:(self sigKILL) to:processId.
-    ].
-    "Modified: 28.12.1995 / 15:06:18 / stefan"
+              you may have to fetch the processes exitstatus with
+              UnixOperatingSystem>>getStatusOfProcess:aProcessId."
+
+    self sendSignal:(self sigKILL) to:processId.
+
+    "Modified: / 10.6.1998 / 11:59:12 / cg"
+!
+
+killProcessGroup:processGroupId
+    "kill a unix process group.
+     The process has a no chance to do some cleanup.
+
+     WARNING: in order to avoid zombie processes (on unix),
+              you may have to fetch the processes exitstatus with
+              UnixOperatingSystem>>getStatusOfProcess:aProcessId."
+
+    self sendSignal:(self sigKILL) to:(processGroupId negated).
+
+    "Created: / 10.6.1998 / 11:59:29 / cg"
 !
 
 primTerminateProcess:pid
@@ -8228,6 +8238,6 @@
 !UnixOperatingSystem class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/Attic/UnixOS.st,v 1.10 1998-06-10 09:53:06 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/Attic/UnixOS.st,v 1.11 1998-06-10 10:01:56 cg Exp $'
 ! !
 UnixOperatingSystem initialize!
--- a/UnixOperatingSystem.st	Wed Jun 10 11:53:06 1998 +0200
+++ b/UnixOperatingSystem.st	Wed Jun 10 12:01:56 1998 +0200
@@ -5400,18 +5400,28 @@
 
 killProcess:processId
     "kill a unix process.
-     The process terminates immediately and has no chance to perform any cleanup actions.
+     The process has a no chance to do some cleanup.
 
      WARNING: in order to avoid zombie processes (on unix),
-	      you have to fetch the processes exitstatus with
-	      UnixOperatingSystem>>getStatusOfProcess:aProcessId."
-
-    self isMSWINDOWSlike ifTrue:[
-      self primTerminateProcess:processId
-    ] ifFalse:[
-      self sendSignal:(self sigKILL) to:processId.
-    ].
-    "Modified: 28.12.1995 / 15:06:18 / stefan"
+              you may have to fetch the processes exitstatus with
+              UnixOperatingSystem>>getStatusOfProcess:aProcessId."
+
+    self sendSignal:(self sigKILL) to:processId.
+
+    "Modified: / 10.6.1998 / 11:59:12 / cg"
+!
+
+killProcessGroup:processGroupId
+    "kill a unix process group.
+     The process has a no chance to do some cleanup.
+
+     WARNING: in order to avoid zombie processes (on unix),
+              you may have to fetch the processes exitstatus with
+              UnixOperatingSystem>>getStatusOfProcess:aProcessId."
+
+    self sendSignal:(self sigKILL) to:(processGroupId negated).
+
+    "Created: / 10.6.1998 / 11:59:29 / cg"
 !
 
 primTerminateProcess:pid
@@ -8228,6 +8238,6 @@
 !UnixOperatingSystem class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/UnixOperatingSystem.st,v 1.10 1998-06-10 09:53:06 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/UnixOperatingSystem.st,v 1.11 1998-06-10 10:01:56 cg Exp $'
 ! !
 UnixOperatingSystem initialize!