Hi Kevin: Message: 4 Date: Thu, 12 Aug 2010 19:42:54 -0400 From: Kevin Ar18 <[email protected]> Subject: Re: [pypy-dev] pre-emptive micro-threads utilizing shared memory message passing? To: <[email protected]> Message-ID: <[email protected]> Content-Type: text/plain; charset="iso-8859-1"
>I don't mind replying to the mailing list unless it annoys someone? Maybe >>some people could be interested by this discussion. I am finding it a bit difficult to follow this thread. I am not sure who is saying what. Also I don't know if you are talking about an entirely new system or the stackless.py module. >In my case, I look at message passing from the perspective of the >tasklet. A >tasklet can either be assigned a certain number of "in ports" >and a certain >number of "out ports." In this case the "in ports" are the >.read() end of a >queue or stream and the "out ports" are the .send() part >of a queue or stream. A part of the model that Stackless uses is that tasklets have channels. Channels have send() and receive() operations. >For the scheduler, I would need to control when a tasklet runs. >Currently, I >am thinking that I would look at all the "in ports" that a >tasklet has and >make sure each one has some data. Only then would the >tasklet be scheduled to >run by the scheduler. The current scheduler already does this. However there are no in or out ports, just operations that can proceed. >Couldn't all those ports (channels) be read one at a time, then the >>processing could be done? If you are using stackless.py - the tasklet will block if it encounters a channel with no target on the other side. I wrote a select() function that allows monitoring on multiple channels. >Good idea. If there's no data to read, the tasklet can yield. ... but I >need >to know when the tasklet can be put back into the scheduler queue I don't want to toot my horn but I gave a talk that covers how rendez-vous semantics works at EuroPython: http://andrewfr.wordpress.com/2010/07/24/prototyping-gos-select-and-beyond/ Cheers, Andrew _______________________________________________ [email protected] http://codespeak.net/mailman/listinfo/pypy-dev
