github.com/llvm-mirror/llgo@v0.0.0-20190322182713-bf6f0a60fce1/test/execution/chan/buffered.go (about) 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 }