Hi Jeff:

--- On Tue, 11/11/08, Jeff Senn <[EMAIL PROTECTED]> wrote:

Thanks for the explanation. There are parts of the scheduler algorithm where I 
am not entirely clear. I am particularly interested in knowing all the 
conditions when context switches occur.

(I started writing tests to examine behaviour)

>   OR (depending on the channel preference) continue in the
> caller (inserting the sender/receiver at the "other
> end" onto runnables) or rotate the head of runnables to the >sender/receiver 
> and pick up there.

Jeff, I am not clear on all the conditions under which a rotate happens.

Take the following: There are blocked tasklets on a channel (CH). The channel 
preference is -1 (receiver preference)

Runnable: P  
Blocked: C[0],C[1] on CH

P(CH):
  for i in range(0,MAX):
      CH.send(someData)

after the first iteration, do we have the following:

Blocked: C[1]
Runnable: C[0], P  (a context switch)

or 

Blocked: C[1]
Runnable: P, C[0] 

A test suggests the former (which would make sense)

In the case of sender preference -1, after P terminates, would I have

Runnables: C[0],C[1]

I am assuming in the case of sender preference (and a single producer many 
receivers), things are faster because fewer context switches occur.

Another question, at what stage is information transferred from the sender to 
the receiver?

Cheers,
Andrew




      

_______________________________________________
Stackless mailing list
[email protected]
http://www.stackless.com/mailman/listinfo/stackless

Reply via email to