Shenghou Ma | 2296928 | 2014-07-18 20:59:55 -0400 | [diff] [blame] | 1 | // run |
2 | |||||
3 | // Copyright 2014 The Go Authors. All rights reserved. | ||||
4 | // Use of this source code is governed by a BSD-style | ||||
5 | // license that can be found in the LICENSE file. | ||||
6 | |||||
7 | package main | ||||
8 | |||||
9 | func main() { | ||||
10 | c := make(chan bool, 1) | ||||
11 | ok := true | ||||
12 | for i := 0; i < 12; i++ { | ||||
13 | select { | ||||
14 | case _, ok = <-c: | ||||
15 | if i < 10 && !ok { | ||||
16 | panic("BUG") | ||||
17 | } | ||||
18 | default: | ||||
19 | } | ||||
20 | if i < 10 && !ok { | ||||
21 | panic("BUG") | ||||
22 | } | ||||
23 | if i >= 10 && ok { | ||||
24 | close(c) | ||||
25 | } | ||||
26 | } | ||||
27 | } |