From: Ian Lance Taylor Date: Fri, 25 Mar 2011 17:36:22 +0000 (-0700) Subject: runtime: always set *received in chanrecv. X-Git-Tag: weekly.2011-03-28~35 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=7c616b3809724874c15be762ab9dd15d9ee86406;p=gostls13.git runtime: always set *received in chanrecv. Also fix comment. The only caller of chanrecv initializes the value to false, so this patch makes no difference at present. But it seems like the right thing to do. R=rsc CC=golang-dev https://golang.org/cl/4312053 --- diff --git a/src/pkg/runtime/chan.c b/src/pkg/runtime/chan.c index 9630c436f6..abb1b690dd 100644 --- a/src/pkg/runtime/chan.c +++ b/src/pkg/runtime/chan.c @@ -366,6 +366,8 @@ asynch: if(selected != nil) { runtime·unlock(c); *selected = false; + if(received != nil) + *received = false; return; } sg = allocsg(c); @@ -521,7 +523,7 @@ runtime·selectnbrecv(byte *v, Hchan *c, bool selected) // compiler implements // // select { -// case v = <-c: +// case v, ok = <-c: // ... foo // default: // ... bar @@ -529,7 +531,7 @@ runtime·selectnbrecv(byte *v, Hchan *c, bool selected) // // as // -// if c != nil && selectnbrecv(&v, c) { +// if c != nil && selectnbrecv2(&v, &ok, c) { // ... foo // } else { // ... bar