| // +build ignore,OMIT | |
| package main | |
| import ( | |
| "fmt" | |
| "time" | |
| ) | |
| func f(left, right chan int) { | |
| left <- 1 + <-right | |
| } | |
| func main() { | |
| start := time.Now() | |
| const n = 1000 | |
| leftmost := make(chan int) | |
| right := leftmost | |
| left := leftmost | |
| for i := 0; i < n; i++ { | |
| right = make(chan int) | |
| go f(left, right) | |
| left = right | |
| } | |
| go func(c chan int) { c <- 0 }(right) | |
| fmt.Println(<-leftmost, time.Since(start)) | |
| } |