[squeak-dev] The Trunk: System-eem.353.mcz

commits at source.squeak.org commits at source.squeak.org
Fri Jul 23 00:54:18 UTC 2010


Eliot Miranda uploaded a new version of System to project The Trunk:
http://source.squeak.org/trunk/System-eem.353.mcz

==================== Summary ====================

Name: System-eem.353
Author: eem
Time: 22 July 2010, 5:53:14.999 pm
UUID: 6757175d-0063-4089-916c-4dfc0cc425c7
Ancestors: System-ar.352

Some Cog-specific VM attribute accessors for process
preemption, flagging of interpreted methods and whether
Process has a threadId inst var.

=============== Diff against System-ar.352 ===============

Item was added:
+ ----- Method: SmalltalkImage>>processHasThreadIdInstVar: (in category 'system attributes') -----
+ 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 vmParameterAt: 48 put: ((self vmParameterAt: 48) bitClear: 1) + (aBoolean ifTrue: [1] ifFalse: [0])!

Item was added:
+ ----- Method: SmalltalkImage>>processPreemptionYields (in category 'system attributes') -----
+ processPreemptionYields
+ 	"Answer whether the VM causes a process to yield on process preemption,
+ 	 i.e. to put a preempted process at the back of its run queue.  If the parameter
+ 	 is unavailable (non-Cog VMs) or bit 2 (4) is 0 then preemption yields."
+ 
+ 	^(([self vmParameterAt: 48]
+ 			on: Error
+ 			do: [:ex| ^true]) allMask: 4) not!

Item was added:
+ ----- Method: SmalltalkImage>>processPreemptionYields: (in category 'system attributes') -----
+ processPreemptionYields: aBoolean
+ 	"The Cog VM can be instructed not to yield on process preemption,
+ 	 i.e. not to put a preempted process at the back of its run queue.  By
+ 	 default preempting a process causes it to yield (Blue Book semantics)
+ 	 which can have unfortunate effects.
+ 	 This flag persists across snapshots, stored in the image header."
+ 
+ 	self vmParameterAt: 48 put: ((self vmParameterAt: 48) bitClear: 4) + (aBoolean ifTrue: [0] ifFalse: [4])!

Item was added:
+ ----- Method: SmalltalkImage>>flagInterpretedMethods: (in category 'system attributes') -----
+ flagInterpretedMethods: aBoolean
+ 	"The Cog VM can be instructed to set the flag bit of CompiledMethods that
+ 	 it executes but will only interpret.  This can be used e.g. to profile startup.
+ 	 See CompiledMethod>>#flag & CompiledMethod>>#clearFlag.  
+ 	 This flag persists across snapshots, stored in the image header."
+ 
+ 	self vmParameterAt: 48 put: ((self vmParameterAt: 48) bitClear: 2) + (aBoolean ifTrue: [2] ifFalse: [0])!




More information about the Squeak-dev mailing list