[Stackless] Blocking

Gijs Kunze gijs at vanillev.la
Tue Apr 26 13:19:54 CEST 2005

I recently rediscovered stackless, and I think that unlike the last time I
understand how it works (at least little bit). I've played around with
some small scripts but I need to know more about how to program some
larger-than-helloworld like programs.

As I understand it, unlike what happens with 'real' threads, tasklets
don't switch when doing a blocking operation (i/o, time.sleep), so in a
tasklet you can only do those types of tasks asynchronously unless you
want all tasklets to stop while completing said task. (please correct me
if I'm wrong). At first I thought you would have to make your tasklet
busy-wait, something like:

while not job_done():

However I thought of another way, have the tasklet remove itself (via
tasklet.capture) and have a seperate os-thread perform the job
synchronously and insert the tasklet when the job is done. However I'm not
sure this is possible, hence the following questions:

Does inserting a tasklet removed from thread A while in thread B insert it
in the scheduler list in A or in B?
Are there even seperate scheduler lists for each thread?


Gijs Kunze

Stackless mailing list
Stackless at stackless.com

More information about the Stackless mailing list