mirror of
https://github.com/lloeki/normandy.git
synced 2025-12-06 01:54:40 +01:00
28 lines
900 B
Go
28 lines
900 B
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"sync"
|
|
)
|
|
|
|
func main() {
|
|
c := make(chan string, 5)
|
|
w := sync.WaitGroup{}
|
|
w.Add(1); go func() { v, ok := <-c; fmt.Printf("done %s %t\n", v, ok); w.Done() }()
|
|
w.Add(1); go func() { v, ok := <-c; fmt.Printf("done %s %t\n", v, ok); w.Done() }()
|
|
w.Add(1); go func() { v, ok := <-c; fmt.Printf("done %s %t\n", v, ok); w.Done() }()
|
|
c<-"foo"
|
|
//c<-"foo"
|
|
//c<-"foo"
|
|
//c<-"foo"
|
|
//c<-"foo"
|
|
//c<-"foo"
|
|
close(c)
|
|
fmt.Println("closed")
|
|
w.Add(1); go func() { v, ok := <-c; fmt.Printf("done %s %t\n", v, ok); w.Done() }()
|
|
w.Add(1); go func() { v, ok := <-c; fmt.Printf("done %s %t\n", v, ok); w.Done() }()
|
|
w.Add(1); go func() { v, ok := <-c; fmt.Printf("done %s %t\n", v, ok); w.Done() }()
|
|
w.Add(1); go func() { v, ok := <-c; fmt.Printf("done %s %t\n", v, ok); w.Done() }()
|
|
w.Add(1); go func() { v, ok := <-c; fmt.Printf("done %s %t\n", v, ok); w.Done() }()
|
|
w.Wait()
|
|
}
|