[Vm-dev] Events handling for SqueakGtk

Gwenael Casaccio mrgwen at gmail.com
Fri Jul 11 11:26:52 UTC 2008


Hello,

I am the student who is working for the SqueakGtk plugin and I have a  
small problem.
For the events handling there is an *active waiting system* like this :


mainLoopProcess := [
		[
			[self doMainIteration.
			self doSignalProcessing] forkAt: Processor userBackgroundPriority + 1
		] repeat
	] forkAt: Processor userBackgroundPriority


It consumes a lot of cpu time.
the problem is the method  doMainIteration which call a C method to  
get an hypothetic event,
I would like to replace this C method by an other method but this new  
method will block the interpreter
until there is an event.

To solve this problem I'll create a C thread and say to the vm change  
the status of the current process
call the blocking method and when there is an event wake up the  
process to say I've finished my work.

Is there a way to solve this problem ?

Cheers,
Gwenael


More information about the Vm-dev mailing list