VM Maker: VMMaker.oscog-eem.2899.mcz

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

VM Maker: VMMaker.oscog-eem.2899.mcz

commits-2
 
Eliot Miranda uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker.oscog-eem.2899.mcz

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

Name: VMMaker.oscog-eem.2899
Author: eem
Time: 25 November 2020, 7:36:40.903792 pm
UUID: 977272e3-1e46-496a-ad49-a29453fce189
Ancestors: VMMaker.oscog-eem.2898

MTVM: Minor cleanup.  In the simulator the REPL is able to compute 3+4, 3*4, 3<<4, 3 raisedTo: 4, etc, without error.

=============== Diff against VMMaker.oscog-eem.2898 ===============

Item was changed:
  ----- Method: CogThreadManager>>setVMOwner: (in category 'public api') -----
+ setVMOwner: indexOrZero
+ "An ugly accessor used in only three cases:
+ 1. by ownVMFromUnidentifiedThread when the VM is first locked to the thread id
+ of the unidentified thread, and then, once identified, to the thread's index.
+ 2. by wakeVMThreadFor: used by the two-level scheduler to switch threads when
+ a Smalltalk process switch occurs to a process affined to another thread.
+ 3. to release the VM (set the owner to zero)"
+ <inline: #always>
+ vmOwner := indexOrZero.
- setVMOwner: index
- <inline: false>
- vmOwner := index.
  self sqLowLevelMFence!

Item was changed:
  ----- Method: CogThreadManager>>startThreadSubsystem (in category 'public api') -----
  startThreadSubsystem
  "Initialize the threading subsystem, aborting if there is an error."
  | vmThread |
  <inline: false>
  self assert: threads = nil.
  vmOSThread := self ioCurrentOSThread.
  numThreadsIncrement := (self ioNumProcessors max: 2) min: 16.
  (self growThreadInfosToAtLeast: numThreadsIncrement * 2) ifFalse:
  [self error: 'no memory to start thread system'].
+ vmThread := threads at: (vmOwner := 1).
- vmThread := threads at: 1.
  vmThread state: CTMInitializing.
  self registerVMThread: vmThread.
+ vmThread state: CTMAssignableOrInVM!
- vmThread state: CTMAssignableOrInVM.
- self setVMOwner: 1!