func main() {
c := make(chan int)
var wg sync.WaitGroup
wg.Add(10)
go func() {
defer wg.Done()
for i := 0; i < 10; i++ {
c <- i
}
}()
go func() {
defer close(c)
for item := range c {
fmt.Println(item)
}
}()
wg.Wait()
//time.Sleep(time.Second)
//close(c)
}