[Stackless] channels and StopIteration

Richard Tew richard.m.tew at gmail.com
Fri May 25 05:54:28 CEST 2012


On Sat, Apr 14, 2012 at 12:00 AM, Kristján Valur Jónsson
<kristjan at ccpgames.com> wrote:
> Done, with unitests and all.

The change in general looks good except for two aspects that make me antsy.

The first is the API of the throw implementation.

http://hg.python.org/stackless/rev/d4b2e291fb48#l2.82

The way this accepts an existing exception instance as an argument..
You can make something that looks like the thrown instance on the
other side, sure, but it isn't the same as the thrown one.  I do not
find it consistent and I would want the raised tasklet to be the one
that was thrown, if I were throwing a specific instance of one.  If
this isn't going to happen, then I'd want to know about it and get an
exception should I try.  I'd insert a pithy phrase here about being
sold some object and being told it is another, but I don't remember
any :-)

The second is that this builds on the existing Stackless tasklet
exception raising mechanism.  And that mechanism is very limited
(specify a class and simple arguments).  If this is what we have to
do, we have to do it I guess.  But.. it adds to the burden of moving
away from that system should we choose to do it at a future time. Is
this the better way to go about this?

Cheers,
Richard.



More information about the Stackless mailing list