[Stackless] Explicit yield/break to Preemptive Stackless Loop

Brian Hardie bhardie at cs.usfca.edu
Wed Nov 1 20:10:22 CET 2006


I am using Stackless preemptive scheduling with a single tasklet in  
order to periodically break out of the code and check for some  
special conditions.  This seems to be working perfectly well.   
However, I have recently come across the need to have the tasklet  
explicitly yield back out to the main 'stackless loop' before the  
quantum has expired in order to check some conditions and potentially  
do some work.

stackless.schedule() and stackless.schedule_remove() do a fine job of  
yielding to the next tasklet, but it seems, in my situation of having  
only a single tasklet, that it does not cause a breakout of the  
'Stackless loop'.

Below is the 'Stackless loop' that I refer to.  Is this kind of  
'yield' or 'break' functionality built into Stackless?  If it isn't,  
I'm willing to add the functionality to the c code, but could use  
some pointers on where and how to get started.

		stackless.tasklet(self.startfunc)()
		while stackless.getruncount() > 1:
			t = stackless.run(QUANTUM)
			...
			if t:
				t.insert()


_______________________________________________
Stackless mailing list
Stackless at stackless.com
http://www.stackless.com/mailman/listinfo/stackless



More information about the Stackless mailing list