mirror of
https://github.com/golang/go
synced 2024-11-23 05:10:09 -07:00
sync: improve WaitGroup example by putting the call to Done in a
deferred block. This makes hangs in the waiting code less likely if a goroutine exits abnormally. R=golang-dev, minux.ma CC=golang-dev https://golang.org/cl/7306052
This commit is contained in:
parent
c3f49ca977
commit
c2fb6e2c0b
@ -24,10 +24,10 @@ func ExampleWaitGroup() {
|
||||
wg.Add(1)
|
||||
// Launch a goroutine to fetch the URL.
|
||||
go func(url string) {
|
||||
// Decrement the counter when the goroutine completes.
|
||||
defer wg.Done()
|
||||
// Fetch the URL.
|
||||
http.Get(url)
|
||||
// Decrement the counter.
|
||||
wg.Done()
|
||||
}(url)
|
||||
}
|
||||
// Wait for all HTTP fetches to complete.
|
||||
@ -37,7 +37,7 @@ func ExampleWaitGroup() {
|
||||
func ExampleOnce() {
|
||||
var once sync.Once
|
||||
onceBody := func() {
|
||||
fmt.Printf("Only once\n")
|
||||
fmt.Println("Only once")
|
||||
}
|
||||
done := make(chan bool)
|
||||
for i := 0; i < 10; i++ {
|
||||
|
Loading…
Reference in New Issue
Block a user