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!