Mantis - Squeak
Viewing Issue Advanced Details
7345 System feature always 04-30-09 12:29 05-02-09 02:35
sig Any  
Any  
normal Any  
new 3.10.2  
7179 open  
none    
none  
0007345: A VM changes allowing a language-side custom scheduler
This is a changes, which allows Squeak to use image-side scheduling.

The VM-side changes is in new-scheduling-for-VM changeset.
And image-side changes is in new-scheduling changeset.

The image-side changes are safe to file-in into any 3.10 based image (not tested for others).

To install a new scheduler , issue:

AdvancedProcessScheduler install.

Both VM and image side changes are backwards compatible.
a) You can use old images with new VM
b) You can safely run an image with new scheduler, on older VM - it will fall back to use old ProcessorScheduler.


 new-scheduling-for-VM.1.cs [^] (35,963 bytes) 04-30-09 12:29
 new-scheduling.2.cs [^] (19,498 bytes) 04-30-09 12:30
 new-scheduling-for-VM.2.cs [^] (36,685 bytes) 04-30-09 13:27
 new-scheduling.5.cs [^] (27,810 bytes) 05-02-09 02:33
 scheduling-tests.1.cs [^] (3,026 bytes) 05-02-09 02:33

Notes
(0013104)
sig   
04-30-09 12:33   
- based on VMMaker-dtl.91
(0013105)
sig   
04-30-09 13:29   
A 'new-scheduling-for-VM.2.cs'

contains an updated #callbackEnter: method, which should now work correctly with callbacks in new-scheduler-aware image.
(0013106)
sig   
05-02-09 02:35   
- added scheduler regression tests (in scheduling-tests).

More recent image-side scheduler (new-scheduling.5.cs) changes:

- added an image boot sequence. Now its cleverly picks an appropriate
scheduler depending on VM.
- a process termination is rewritten,
- added a TerminateProcess exception , which could be used to perform
additional actions during process termination
 [ .... ] on: TerminateProcess do: [:ex | .... ]
- a process which is being terminated runs as active process. This is
to ensure, that any #ensure: / #on:do: / #ifCurtailed: blocks will run
in same environment as during normal execution.