[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