[Stackless] Stackless based replacement

Larry Dickson ldickson at cuttedge.com
Mon Oct 13 16:43:53 CEST 2008


Hi all,

No joy as yet. The Stackless channels do set up the second queue in my note
already, but they are many-to-many, which means in-tasklet ALT or select may
not behave as hoped: a ready communication may still not win its branch, and
the "other" branch may deschedule, thus letting another tasklet steal the
communication.

The "hardware" channel ought to be doable, though, as long as it is
unidirectional, since the first tasklet in the queue should never reschedule
until its communication is done. Thus the in-virtual-machine select should
be achievable, though I have not worked out details, because the structures
and code are highly complex, especially when exceptions are considered.

Larry

On 10/10/08, Larry Dickson <ldickson at cuttedge.com> wrote:
>
>
>
> On 10/10/08, Arnar Birgisson <arnarbi at gmail.com> wrote:
>>
>> Hi Larry,
>>
>> On Fri, Oct 10, 2008 at 18:48, Larry Dickson <ldickson at cuttedge.com>
>> wrote:
>> > These address the same problem, but shift to module variants what is
>> > actually a virtual machine issue. What happens if different tasklets use
>> > different modules in the same run?
>>
>> Depends on the modules. If each module has its own dispatching tasklet
>> it shouldn't be a problem - but these are not all compatible
>> (different platforms, threading etc.)
>>
>> > My point is that there doesn't need to be a wheel at all. No change in
>> > source code.
>>
>> Hmm, don't see what you mean. What source code doesn't need to change?
>
>
> Sorry, I was unclear. I meant Stackless source code for tasklets, not
> source code for the virtual machine.
>
>
> > Can two tasklets use the libevent code and have their sleep periods
>> overlap?
>>
>> Yes
>>
>>
>> > Where is the C source for the virtual machine?
>>
>> http://zope.stackless.com/svn/sdocument_view
>>
>> > What is preferred, do you think: a call and explicit check on the lines
>> of
>> > select, or a syntax thing that would act like (or maybe even be) a case
>> > statement?
>>
>> Surely not a syntax thing, Stackless currently does not add any new
>> syntax to Python. I imagine something like
>>
>> val = stackless.receive_first([chan1, chan2, ....])
>>
>> Look in the archives for discussion of the syntax.
>
>
> Thanks. I will look at the C source and the archives this weekend.
>
> Larry
>
> cheers,
>> Arnar
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.stackless.com/pipermail/stackless/attachments/20081013/95776449/attachment.htm>


More information about the Stackless mailing list