Process.st
changeset 1531 2a61dad6c7ce
parent 1530 dfa58f01505c
child 1728 827231681803
--- a/Process.st	Mon Jul 08 13:51:42 1996 +0200
+++ b/Process.st	Mon Jul 08 14:10:17 1996 +0200
@@ -275,6 +275,18 @@
 
 !Process methodsFor:'accessing'!
 
+beGroupLeader
+    "make the receiver a processGroupLeader.
+     This detaches the process from its creator, so that it will not
+     be terminated when it teminates via #terminateGroup.
+     (windowgroup processes do this)."
+
+    processGroupId := id
+
+    "Modified: 8.7.1996 / 14:00:35 / cg"
+    "Created: 8.7.1996 / 14:08:44 / cg"
+!
+
 changePriority:aNumber
     "same as priority:, but returns the old priority.
      (cannot do this in #priority: for ST-80 compatibility)"
@@ -1024,6 +1036,21 @@
     ]
 !
 
+terminateGroup
+    "terminate all processes in the receivers process group."
+
+    ProcessorScheduler knownProcesses do:[:aProcess |
+        aProcess ~~ self ifTrue:[
+            aProcess processGroupId == processGroupId ifTrue:[
+                aProcess terminate
+            ]
+        ]
+    ].
+    self terminate
+
+    "Created: 8.7.1996 / 14:04:15 / cg"
+!
+
 terminateNoSignal
     "terminate the receiver process without sending a terminateSignal
      or performing any unwind-handling.
@@ -1053,6 +1080,6 @@
 !Process  class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/Process.st,v 1.58 1996-07-08 11:51:42 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/Process.st,v 1.59 1996-07-08 12:10:17 cg Exp $'
 ! !
 Process initialize!