mirror of
https://github.com/vbatts/talks.git
synced 2024-12-26 00:26:30 +00:00
20 lines
396 B
Go
20 lines
396 B
Go
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
|