github.com/graybobo/golang.org-package-offline-cache@v0.0.0-20200626051047-6608995c132f/x/talks/2012/concurrency/support/daisy.go (about)

     1  // +build OMIT
     2  
     3  package main
     4  
     5  import "fmt"
     6  
     7  func f(left, right chan int) {
     8  	left <- 1 + <-right
     9  }
    10  
    11  func main() {
    12  	const n = 10000
    13  	leftmost := make(chan int)
    14  	right := leftmost
    15  	left := leftmost
    16  	for i := 0; i < n; i++ {
    17  		right = make(chan int)
    18  		go f(left, right)
    19  		left = right
    20  	}
    21  	go func(c chan int) { c <- 1 }(right)
    22  	fmt.Println(<-leftmost)
    23  }