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 <[EMAIL PROTECTED]> wrote: > > > > On 10/10/08, Arnar Birgisson <[EMAIL PROTECTED]> wrote: >> >> Hi Larry, >> >> On Fri, Oct 10, 2008 at 18:48, Larry Dickson <[EMAIL PROTECTED]> >> 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 >> > >
_______________________________________________ Stackless mailing list [email protected] http://www.stackless.com/mailman/listinfo/stackless
