[Stackless] Stackless API (Custom Scheduling)

Bob Ippolito bob at redivi.com
Thu Jan 29 22:25:57 CET 2004

On Jan 29, 2004, at 2:57 PM, Christian Tismer wrote:

> Hilmar V. Pétursson wrote:
>> As Chris points out we have used become() with great success, through 
>> out the passed 3 years.
>> There are ~200 reference to become() in our Stackless Python scripts 
>> that make up the logic and rules of a ~35.000 player MMORPG world.
>> We have had close to 7.000 players playing together in the same, 
>> fully 3D simulated, shared universe, so even though semantics might 
>> be unconventional, they sure do work once you align our mind to the 
>> power of Stackless :-)
>> Please don't take it out...
> ...
> As we are at it:
> What I *want* to take out is support for sending
> exceptions to channels.
> This was an early approach to kill somthing that's
> waiting in a channel. I think this is no longer needed,
> and it would clarify the code quite some bit.
> Today, we have an explicit kill that can kill any
> tasklet and even a cat. In summer 2002, I couldn't do that.

I have actually used the exceptions on channels to send 
KeyboardInterrupt to my "interpreter" tasklet.  The interpreter doesn't 
have any idea that it's stackless, and I don't want to kill it, just 
raise an exception.  I'm sure there are other uses for it as well, such 
as in Twisted (if there was an error on your deferred, it can raise the 
exception by that means).

I think we should keep it, unless you have a better idea.  I'm not sure 
I want the sender of the exception to always have a direct reference to 
the tasklet.


Stackless mailing list
Stackless at stackless.com

More information about the Stackless mailing list