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

Reply via email to