# HG changeset patch # User Claus Gittinger # Date 897472916 -7200 # Node ID 7391c94f47b3ec689f28d533cfa8aa48f99d6e15 # Parent f0a069e481b8d34227e4b706d080e9b5a7390069 added killProcess / killProcessGroup diff -r f0a069e481b8 -r 7391c94f47b3 OS.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! diff -r f0a069e481b8 -r 7391c94f47b3 UnixOS.st --- 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! diff -r f0a069e481b8 -r 7391c94f47b3 UnixOperatingSystem.st --- 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!