[Stackless] Pickling Tasklets waiting on Channels RE: Giving names for tasklets

Andrew Francis andrewfr_ice at yahoo.com
Fri Jun 30 20:20:15 CEST 2006

Hello Richard, Juho, et al... :

Wow, I almost missed this thread...

> Something I was going to mention about naming
>tasklets, is how we do it a little bit differently at
>CCP.  Maybe it is in the slides 
>from the presentation Kristj?n made at PyCon.  We
name >our tasklets something like "Vague
Category/Specific >Label" and then profile time in the

>tasklet to this hierarchical name.

>Nice icea. I was thinking of some type task grouping
>and that's a nice, easy and simple way to do it.

This sounds interesting. I would like to give names to
tasklets and groups of tasklets. 

>Anyway, I ran into more problems, this time with
>pickling.Our game (projectxenocide) will use tasklets
>to script AI (for example). Another thing is how I
>should pickle and unpickle a group of tasklets
>which communicate together with channels?

RT>When I was debugging a pickling problem Andrew
RT>Francis had, this is how I believe it worked:
RT>Pickling a tasklet blocked on a channel, where
there RT>is no reference held to the channel, will
result in RT>that tasklet being pickled, blocked, but
not on the RT>channel.  I do not believe this tasklet
can be RT>safely resumed and when scheduled will crash
RT>(perhaps something to do with the call stack where
RT>it blocked on the channel).

Juho, please see message

Subject: Re: [Stackless] Mistakes, Corrections and
Questions Concerning My Pickle Example Re:	cPickles
hould work?
To: <stackless at stackless.com>
<129CEF95A523704B9D46959C922A28000187AC50 at nemesis.central.ccp.cc>
Content-Type: text/plain;	charset="iso-8859-1"

Yes, I am trying to pickle and unpickle tasklets. Some
of these processes themselves "contain" tasklets. The
"tasklet" group communicates through channels. The
conclusion I came to was that I could pickle the
"parent" tasklet and its children. Essentially the
problem is that Stackless did not allow me to remove
blocked tasklets.

>Pickling seems to be a powerfull tool but there's a
>lot of mysteries where I'm unable to find answers.

Yes, Juho, pickling is extremely powerful. I think the
best way to learn is to experiment and share
information. This way we can all move forward.

That said, I would like to see some explicit
channel.add(self, tasklet) and channel.remove(self,
tasklet) methods. However this may go against
Stackless's minimalist high level approach.    


Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 

Stackless mailing list
Stackless at stackless.com

More information about the Stackless mailing list