On 31/08/17 3:36 AM, Bert Freudenberg wrote:
I think nowadays we could actually switch to a fully event/timer driven main loop for Morphic without major drawbacks. This was not true when Morphic was designed, since the VM back then was not event-based.
Instead of a fixed interCyclePause we simply need to wait on a semaphore that should get signaled when a new event is available, and timed-out when the next Morphic alarm / step message is due. It probably also needs to be triggered when a deferred UI message is added.
about ten years ago I did some work for ESUG, where I changed the InputSensor to be fully event driven, but then added a polling process that faked an event driven VM. I was supposed to do the VM side as well, but gave up after staring at it for a while... If I only remembered where I put that code...
Hmm, just looked at Pharo, looks somewhat similar to what I did, too long ago, don't remember the details...
Michael