[squeak-dev] [ANN] A new scheduler + VM changes alpha-release

Igor Stasenko siguctua at gmail.com
Thu Apr 30 12:52:29 UTC 2009


Hello guys,
i hope you are interested in having a rock-solid & safe concurrency in
smalltalk, despite it green-threaded.

A new implementation of scheduler will allow us to improve stuff and
be no longer dependant from VM side scheduling policy.

You can find the changes on mantis:

http://bugs.squeak.org/view.php?id=7345

Please, give me a feedback, if you can successfully build VM with new
changes on all platforms.
I used a pretty old VMMaker package version for my VM: VMMaker-dtl.91

Will try to see if it can be built with latest one , available on SqS.

Andreas (& others) - do you have any tests/benchmarks, how to measure
a new scheduler overhead comparing to old one?

Personally, i didn't noticed much speed degradation :)

And last thing, i need an advice how to  implement a #callbackEnter: properly.
Its currently leaved unchanged, using old VM scheduling policy. So,
its unsafe to use plugins with callbacks if you running under new
scheduler.
A callbackEnter remembers the active process, suspends it and then
activates it back when callback is done.
The problem is, that squeak 3.10 doesn't have any image-side code
which i could change to play with callbacks :(

A fix for callbacks should be pretty easy:
 - at entry, deactivate active process (which should be NOT the
interrupt process) & switch to interrupt process, so it could schedule
next available process.
 - when leaving switch from interrupt process to previously remembered
active process.
So, a certain preconditions should be met:
 - a code which calls a primitives which using callbacks should never
run in interruptProcess
 - a code , which returns from a callback should run in interruptProcess

-- 
Best regards,
Igor Stasenko AKA sig.



More information about the Squeak-dev mailing list