On Sun, Dec 3, 2023 at 01:10 Jaromir Matas <mail@jaromir.net> wrote:
However, thanks to your discussion I finally start to understand why 
Pharo's #isSuspended includes a line
     `myList isNil or: [ myList isEmpty ]`
it must be an obsolete remnant from before 2014 with the old semantics 
of suspending the active process! Thanks :)

Ah yes if that was the implementation, I’d probably not have noticed the difference in semantics.

However, I suspect that this is still incorrect, because if there was another process runnable on the same priority level, it would still answer false. Wouldn’t it have to be “(myList includes: self) not”?

My guess is that setting myList to nil when activating a process was an optimization by Eliot to avoid that potentially expensive test. This would make sense since Andreas’s Tweak used tons of UI processes, and Cog was developed right around that time. I wonder if a Croquet image of that time would be enlightening …

Eliot, do you remember?