package main
import (
"fmt"
"sync"
)
func main() {
var wg sync.WaitGroup
out := make(chan int)
wg.Add(2)
go func() {
defer wg.Done()
for i := 1; i <= 5; i++ {
out <- i
}
close(out)
}()
go func() {
defer wg.Done()
for v := range out{
fmt.Println(v)
}
}()
wg.Wait()
}