Peter Collingbourne | ad9841e | 2014-11-27 00:06:42 +0000 | [diff] [blame] | 1 | // RUN: llgo -o %t %s |
2 | // RUN: %t 2>&1 | FileCheck %s | ||||
3 | |||||
4 | // CHECK: 0 0 | ||||
5 | // CHECK-NEXT: 0 1 | ||||
6 | // CHECK-NEXT: 10 | ||||
7 | // CHECK-NEXT: 20 | ||||
8 | // CHECK-NEXT: 30 | ||||
9 | // CHECK-NEXT: 40 | ||||
10 | // CHECK-NEXT: 50 | ||||
11 | // CHECK-NEXT: 60 | ||||
12 | // CHECK-NEXT: 70 | ||||
13 | // CHECK-NEXT: 80 | ||||
14 | // CHECK-NEXT: 90 | ||||
15 | // CHECK-NEXT: 100 | ||||
16 | // CHECK-NEXT: -1 | ||||
17 | |||||
18 | package main | ||||
19 | |||||
20 | func main() { | ||||
21 | c := make(chan int) | ||||
22 | println(len(c), cap(c)) | ||||
23 | c1 := make(chan int, 1) | ||||
24 | println(len(c1), cap(c1)) | ||||
25 | f := func() { | ||||
26 | n, ok := <-c | ||||
27 | if ok { | ||||
28 | c1 <- n * 10 | ||||
29 | } else { | ||||
30 | c1 <- -1 | ||||
31 | } | ||||
32 | } | ||||
33 | for i := 0; i < 10; i++ { | ||||
34 | go f() | ||||
35 | c <- i + 1 | ||||
36 | println(<-c1) | ||||
37 | } | ||||
38 | go f() | ||||
39 | close(c) | ||||
40 | println(<-c1) | ||||
41 | } |