mirror of
https://github.com/golang/go
synced 2024-11-25 02:07:58 -07:00
runtime: return zero value in x, ok = <-c when ok == false
Fixes #401. R=ken2 https://golang.org/cl/180053
This commit is contained in:
parent
c715b58dad
commit
d16bc7a9f2
@ -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;
|
||||
}
|
||||
|
20
test/fixedbugs/bug234.go
Normal file
20
test/fixedbugs/bug234.go
Normal file
@ -0,0 +1,20 @@
|
||||
// $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")
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user