[squeak-dev] building Hydra
Igor Stasenko
siguctua at gmail.com
Tue Apr 29 20:10:50 UTC 2008
2008/4/29 Matthew Fulmer <tapplek at gmail.com>:
> On Tue, Apr 29, 2008 at 10:56:56AM -0700, John M McIntosh wrote:
> > Ok, I was trying to make a bit more progress in building a hydra VM for
> > non-windows machines.
> >
> > I was going to ask about the intent of the changes in
> >
> > primitiveSignalAtMilliseconds
> > and the removal of nextWakeupTick
> >
> > but then figured it out, however I'll just continue writing in case someone
> > else runs across this question.
> >
> > In the original code
> >
> > nextWakeupTick was set to the millisecond clock value when the next Delay
> > wakeup needed service.
> >
> > The process scheduler when it found no more work to be done would call the
> > idle process which calls
> >
> > ioRelinquishProcessorForMicroseconds
> >
> > That routine at least on the macintosh would then ask for the
> > nextWakeupTick and if it was in the
> > future it would sleep until that time, or some other UI or async interrupt
> > (file/socket) occurred.
> > Then wakeup and return control to the process scheduler which likely would
> > find a Delay to service
> > or some sort of pending interrupt.
> >
> > But in the Hydra VM I see nextWakeupTick is gone and replaced with
> >
> > event = WIN32_STATE(wakeUpEvent);
>
> I asked Igor about it, and he said the intent of the new
> ioWakeUp call is to do whatever it takes to abort the sleep the
> VM may be in currently. This means doing dummy io with no effect
> other than to abort ioRelinquishProcessorForMicroseconds.
>
Right
>
> > which I'm assuming is trying to do the same type of activity but in a more
> > windows centric manner?
> > so it appears then that ioScheduleTimerSemaphoreSignalAt passes in the
> > next wakeup time,
> > then later in ioRelinquishProcessorForMicroseconds you take that data and
> > do the proper wait.
>
> The intent was to get polling out of the VM and make it more
> event driven. Maybe what that means here is that scheduling a
> timer interrupt is now not part of
> ioRelinquishProcessorForMicroseconds anymore. I'm not familiar
> with the old way the VM works; I've only seen the hydra way
>
Thank you Matthew for clearly expressing my intents. My English is not
very well, but i'm working on it :)
> --
> Matthew Fulmer -- http://mtfulmer.wordpress.com/
>
>
--
Best regards,
Igor Stasenko AKA sig.
More information about the Squeak-dev
mailing list
|