Skip to content

Latest commit

 

History

History

wait

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 

github.com/markbates/going/wait

Wait cleans up the pattern around using sync.WaitGroup.

Installation

$ go get https://github.com/markbates/going/wait

Usage

Before:

users := []User{User{"A"}, User{"B"}}
var w sync.WaitGroup
length := len(users)
w.Add(length)
for i := 0; i < length; i++ {
  go func(w *sync.WaitGroup, index int) {
    user := users[index]
    user.Name = fmt.Sprintf("User: %d", index)
    users[i] = user
    w.Done()
  }(&w, i)
}
w.Wait()

After:

users := []User{User{"A"}, User{"B"}}
Wait(len(users), func(index int) {
  user := users[index]
  user.Name = fmt.Sprintf("User: %d", index)
  users[index] = user
})