From: Russ Cox Date: Tue, 19 Feb 2013 15:13:53 +0000 (-0500) Subject: reflect: document tie-breaking in Select X-Git-Tag: go1.1rc2~972 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=a6db2a8517f866b6f94445059ab60bc945d0d7ec;p=gostls13.git reflect: document tie-breaking in Select The exact words are taken from the spec. Fixes some confusion on golang-nuts. R=golang-dev, bradfitz CC=golang-dev https://golang.org/cl/7353044 --- diff --git a/src/pkg/reflect/value.go b/src/pkg/reflect/value.go index 2e2c807ea0..65311a6a42 100644 --- a/src/pkg/reflect/value.go +++ b/src/pkg/reflect/value.go @@ -1791,8 +1791,9 @@ type SelectCase struct { } // Select executes a select operation described by the list of cases. -// Like the Go select statement, it blocks until one of the cases can -// proceed and then executes that case. It returns the index of the chosen case +// Like the Go select statement, it blocks until at least one of the cases +// can proceed, makes a uniform pseudo-random choice, +// and then executes that case. It returns the index of the chosen case // and, if that case was a receive operation, the value received and a // boolean indicating whether the value corresponds to a send on the channel // (as opposed to a zero value received because the channel is closed).