Hi Larry:

> Select (on inputs) requires single-receiver channels.
> Multiple senders are OK. Given that restriction, a select
> can be implemented without race conditions.

I think Jeff correctly assessed the situation. Between the
time the tasklet leaves select() and performs the channel
operation, the state of the channels could change. This
would most likely mean 

1) The selected channel when unblocked, was placed at the end of the 
runnable list, allowing other tasklets to change the state of the 
selected channel.

2) Between select() and a channel operation, the tasklet in question
did something to cause a context switch and allow another tasklet to
change the state of the selected channel.

Cheers,
Andrew


      

_______________________________________________
Stackless mailing list
Stackless@stackless.com
http://www.stackless.com/mailman/listinfo/stackless

Reply via email to