[Vm-dev] Status of Cog-MT?

Igor Stasenko siguctua at gmail.com
Wed Jul 31 14:16:39 UTC 2013

On 31 July 2013 15:09, Frank Shearar <frank.shearar at gmail.com> wrote:
> On 31 July 2013 13:42, Esteban Lorenzano <estebanlm at gmail.com> wrote:
>> Hi Eliot,
>> I've seen that you are consistently maintaining the MT version of the Cog, so I wonder what is his status.
>> Is it usable?
> I'm not Eliot, obviously :), but I run all the external package test
> suites for Squeak against Cog MT (in addition to running them against
> Cog and the Interpreter VM).
> I've not seen any problems, apart from some log spam of the form
> "warning: VM parameter 48 indicates Process doesn't have threadId; VM
> will not thread".

that's what you should change in image, before VM can start using
threading features:

Link subclass: #Process
	instanceVariableNames: 'suspendedContext priority myList threadId
errorHandler name env'
	classVariableNames: 'PSKeys PSKeysSema'
	poolDictionaries: ''
	category: 'Kernel-Processes'

And then:

VirtualMachine class>>processHasThreadIdInstVar: aBoolean
	"The threaded VM needs to know if the 4th inst var of Process
	 is threadId which it uses to control process-to-thread binding.
	 This flag persists across snapshots, stored in the image header."
	aBoolean ifTrue: [self assert: (Process instVarNames at: 4) ='threadId'].
	self parameterAt: 48 put: ((self parameterAt: 48) bitClear: 1) +
(aBoolean asBit)
this is in Pharo for a while now.
But we don't using CogitMT still.

> frank
>> Esteban

Best regards,
Igor Stasenko.

More information about the Vm-dev mailing list