Marcel Taeumel uploaded a new version of VMMaker to project VM Maker: http://source.squeak.org/VMMaker/VMMaker.oscog-mt.3360.mcz
==================== Summary ====================
Name: VMMaker.oscog-mt.3360 Author: mt Time: 16 April 2024, 5:51:20.916284 pm UUID: b2275220-8fc2-1c4a-b3cf-e5e943310c0f Ancestors: VMMaker.oscog-mt.3359
For COGMTVM, ensure that thread subsystem is initalized *before* the heartbeat thread is started, because the heartbeat might already rely on it.
While this does not seem to be necessary on Linux, Windows will directly fire up the heartbeat and thus, for example, crash the thread logging.
=============== Diff against VMMaker.oscog-mt.3359 ===============
Item was changed: ----- Method: CoInterpreterMT>>initialEnterSmalltalkExecutive (in category 'initialization') ----- initialEnterSmalltalkExecutive "Main entry-point into the interpreter at system start-up." "Ensure that the myList of the activeProcess is nil. Needed to load old images which don't nil myList in transferTo:{from:}" objectMemory storePointerUnchecked: MyListIndex ofObject: self activeProcess withValue: objectMemory nilObject. - cogThreadManager startThreadSubsystem. self threadSchedulingLoop: (cogThreadManager vmThreadAt: 1). "NOTREACHED. The following is to fool Slang" self threadSchedulingLoopImplementation: cogThreadManager currentVMThread!
Item was changed: ----- Method: CoInterpreterMT>>loadInitialContext (in category 'initialization') ----- loadInitialContext | activeProc threadAffinity | super loadInitialContext. activeProc := self activeProcess. threadAffinity := self threadAffinityOfProcess: activeProc. self assert: (threadAffinity = 0 or: [threadAffinity = 1]). self cCode: [] inSmalltalk: [self flag: #todoMT "Ensure we cannot save an image, where the 'activeProc' is affined to another thread!!"]. + activeProcessAffined := threadAffinity ~= 0. + + cogThreadManager startThreadSubsystem.! - activeProcessAffined := threadAffinity ~= 0!
vm-dev@lists.squeakfoundation.org