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