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
}