The last read from a channel that has been closed will return a nil.
The only way to know that this nil is because the channel is closed or
not is to check for closed() after the read.
closed() won't be true until this value is read.
In your case you have no way for case n := <-one: to know if the n
value is valid or not.
So you have to check it anyway.
For this to work you'd have to change the way channels work or make a
special case just for the select.
- jessta
--
=====================
http://jessta.id.au