<div>Hello Richard,</div>     I tried to contact Christian on IRC but he has been a bit unavailable lately (I know why... not necessary to tell me). Thanks for the hints about how to manage this problem with Stackless. On my side, it doesn't help that much because I have to work with many tasklets executed on different interpreters but still exchanging data through channels. The idea of my Master Degree project is to make Stackless Python distributed with easy tasklet migration between interpreters. It's not perfect but right now I have hybrid channels that can exchange data between local or remote tasklets. I made some kind of distributed objets using PyPy proxy object space for objets that shouldn't be copied when they are sent to a remote tasklet (like big objects). I also tried to manage the best I could the case of global memory and shared object. This could still be improved.<div>
<br></div><div>The idea of creating a parent/child relation between tasklets is manage the case when two tasklets in relation are not executed on the same interpreter. If the remote tasklet dies or the interpreter where it was executed dies, the parent tasklet should be notified in some way. Trying to manage this with a weakref would be a nightmare for the programmer if the remote tasklet moves a lot between interpreters. I want this to be managed by my library. Also trying to wrap the function used to create a tasklet isn't really useful when the interpreter running it dies and the parent is elsewhere. In any case, the way you described to do it is still some useful material for my thesis. ;)</div>
<div><br></div><div>See ya,</div><div><br></div><div>Gabriel<br><br><div class="gmail_quote">2010/9/1 Richard Tew <span dir="ltr"><<a href="mailto:richard.m.tew@gmail.com">richard.m.tew@gmail.com</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div class="im">On Thu, Sep 2, 2010 at 9:37 AM, Gabriel Lavoie <<a href="mailto:glavoie@gmail.com">glavoie@gmail.com</a>> wrote:<br>
> If there really isn't any way to create a relation between tasklets to<br>
> forward exceptions with Stackless Python, why such a decision was made (if<br>
> it was)? I'm just curious and I need to explain this in my thesis.<br>
<br>
</div>Only Christian could answer that question to give you an authoritative answer.<br>
<br>
The natural Pythonic way to create this relation, would be to use weak<br>
references taking advantage of the callbacks they provide, to detect<br>
when a tasklet exits and is cleaned up.<br>
<br>
Of course, generally people need to wrap functions that are passed to<br>
newly started tasklets so that any exceptions raised within them that<br>
are not TaskletExit related, are not raised out of the scheduler<br>
interrupting it.  But that fits in with the general theme of Stackless<br>
being a barebones framework which people need to do a minimal amount<br>
of work with to make best use of it.<br>
<br>
Cheers,<br>
<font color="#888888">Richard.<br>
</font><div><div></div><div class="h5"><br>
_______________________________________________<br>
Stackless mailing list<br>
<a href="mailto:Stackless@stackless.com">Stackless@stackless.com</a><br>
<a href="http://www.stackless.com/mailman/listinfo/stackless" target="_blank">http://www.stackless.com/mailman/listinfo/stackless</a><br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br>Gabriel Lavoie<br><a href="mailto:glavoie@gmail.com">glavoie@gmail.com</a><br>
</div>