[Stackless] Google's new Go programming language
senn at maya.com
Mon Nov 23 19:02:29 CET 2009
On Nov 23, 2009, at 12:13 PM, Andrew Francis wrote:
>> I pictured it having an interface like:
>> while True:
>> selected_channel = select(quit_channel, request_channel)
>> if selected_channel is quit_channel:
>> elif selected_channel is request_channel:
> This is essentially how I would write it. I would provide a
> list of channels and return a list of channels that are ready. For efficiency, I would provide an additional value, hint, to prevent
> the scheduler from tearing-down the structure when select returns.
> readyList = select([channels], hint = True)
> but for a start I would simply the interface to return a single channel.
Unfortunately that seems to create a race condition (opposed to the implementations
in other environments where the "select-like-operation" actually pops off the message).
[Unless you also propose a non-blocking receive...which would have other problems....
I haven't been following this thread completely...]
Imagine the tasklet interrupted (by someone else receiving from the same channel)
between the select and the following .receive(...)
> I understand your minimalist approach towards Stackless. However I think
> Stackless can evolve only so far without actual changes to the scheduler. Priorities involved a change to the scheduler. Again, I
I do agree with this...
> believe PyPy provides an opportunity to prototype changes in a safe and fast way.
> Stackless mailing list
> Stackless at stackless.com
More information about the Stackless