Process>>terminate woes

Bert Freudenberg bert at freudenbergs.de
Tue Dec 4 23:57:36 UTC 2007


On Dec 5, 2007, at 0:43 , Andreas Raab wrote:

> 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).

Sounds like the Right Thing to me.

- Bert -





More information about the Squeak-dev mailing list