Commit d16bc7a9 authored by Russ Cox's avatar Russ Cox

runtime: return zero value in x, ok = <-c when ok == false

Fixes #401.

R=ken2
https://golang.org/cl/180053
parent c715b58d
......@@ -307,6 +307,7 @@ loop:
if(pres != nil) {
unlock(c);
c->elemalg->copy(c->elemsize, ep, nil);
*pres = false;
return;
}
......@@ -335,6 +336,7 @@ asynch:
if(pres != nil) {
unlock(c);
c->elemalg->copy(c->elemsize, ep, nil);
*pres = false;
return;
}
......
// $G $D/$F.go && $L $F.$A && ./$A.out
// Copyright 2009 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package main
func main() {
c := make(chan int, 1)
c <- 100
x, ok := <-c
if x != 100 || !ok {
panic("x=", x, " ok=", ok, " want 100, true")
}
x, ok = <-c
if x != 0 || ok {
panic("x=", x, " ok=", ok, " want 0, false")
}
}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment