1
0
Fork 0
mirror of https://github.com/vbatts/talks.git synced 2024-12-26 16:46:31 +00:00
talks/2013/03-golang-learning-lunch/14-ngoroutines/main.go

21 lines
396 B
Go
Raw Normal View History

2016-12-05 15:44:45 +00:00
package main
// START OMIT
var ngoroutine = 100000
func f(left, right chan int) { left <- 1 + <-right }
func main() {
leftmost := make(chan int)
var left, right chan int = nil, leftmost
for i := 0; i < ngoroutine; i++ {
left, right = right, make(chan int)
go f(left, right)
}
right <- 0 // bang!
x := <-leftmost // wait for completion
println(x) // 100000
}
// STOP OMIT