[Stackless] Google's new Go programming language
andrewfr_ice at yahoo.com
Mon Nov 23 19:55:23 CET 2009
> 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
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.
More information about the Stackless