On Thu, Feb 18, 2016 at 10:03:47PM -0500, David T. Lewis wrote:
On Thu, Feb 18, 2016 at 01:22:28PM -0800, Eliot Miranda wrote:
Hi All,
we have a serious misunderstanding in current versions of Squeak's and Pharo's Process>>isSuspended.
Squeak's version reads
isSuspended ^myList isNil
Pharo's reads
isSuspended ^myList isNil or: [ myList isEmpty ]
Process's myList holds the list a process is on when it is not running. There is only one running process at any one time, Processor activeProcess. The active process's myList is always nil, so Squeak's and Pharo's are both wrong for the active process.
Processor activeProcess isSuspended => true (!!!)
This was working correctly as of Squeak4.6, but not in Squeak5.0.15113.image.
Correcting myself, the difference in behavior is related to the VM. Using a Squeak 4.6 image and comparing Cog versus interpreter VM: Processor activeProcess isSuspended ==> true "Cog" Processor activeProcess isSuspended ==> false "interpreter VM" I think there were some process scheduling improvements introduced in Cog, and maybe the image needs to be adjusted accordingly? Dave