[squeak-dev] building Hydra
John M McIntosh
johnmci at smalltalkconsulting.com
Tue Apr 29 17:56:56 UTC 2008
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);
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.
--
=
=
=
========================================================================
John M. McIntosh <johnmci at smalltalkconsulting.com>
Corporate Smalltalk Consulting Ltd. http://www.smalltalkconsulting.com
=
=
=
========================================================================
More information about the Squeak-dev
mailing list
|