From a6db2a8517f866b6f94445059ab60bc945d0d7ec Mon Sep 17 00:00:00 2001 From: Russ Cox Date: Tue, 19 Feb 2013 10:13:53 -0500 Subject: [PATCH] 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 --- src/pkg/reflect/value.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) 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). -- 2.48.1