Process>>terminate woes

Andreas Raab andreas.raab at gmx.de
Tue Dec 4 23:43:32 UTC 2007


Andreas Raab wrote:
> I wouldn't call what I'm proposing a "dirty hack" - it's rather what I 
> think primitiveSuspend really *ought* to do. The primitive is (and 
> always was in my understanding) incomplete in this respect.

BTW, to emphasize this aspect have a look at the senders of 
#suspendingList. For example, ControlManager>>interruptName: does this

(suspendingList := activeControllerProcess suspendingList) == nil
   ifTrue: [activeControllerProcess == Processor activeProcess
              ifTrue: [activeControllerProcess suspend]]
   ifFalse: [suspendingList remove: activeControllerProcess ifAbsent:[].
             activeControllerProcess offList].

With the proposed change to #primitiveSuspend this becomes merely:

   activeControllerProcess suspend.

(which is obviously the intended and correct way of doing things). Other 
places that get cleaned up with the modification include for example 
Process>>suspend (which becomes merely a call to #primitiveSuspend) and 
Project class>>interruptName: (and probably some others).

Cheers,
   -Andreas



More information about the Squeak-dev mailing list