package main import ( "fmt" "time" ) func main() { c := make(chan int, 2) q := make(chan bool) go func(c chan int) { for i := range c { fmt.Println("\t", i, "<- popped") time.Sleep(300 * time.Millisecond) } }(c) go func(c chan int) { i := 0 for { c <- i fmt.Println("pushed ->", i) i += 1 } }(c) <-q }