repositorypackage
1.0.0
Repository: https://github.com/dmdv/waitgrouptimeout.git
Documentation: pkg.go.dev
# Packages
No description provided by the author
# README
WaitGroupTimeout
An enhanced version of the built-in sync.WaitGroup of the Go,
which supports timeout processing and non-blocking status check
package main
import (
wgt "github.com/dmdv/waitgrouptimeout"
"time"
)
func main() {
wg := wgt.New(true)
wg.Wrap(func() {
time.Sleep(5 * time.Second)
println("Hello, world 1!")
})
wg.Wrap(func() {
time.Sleep(5 * time.Second)
println("Hello, world 2!")
})
wg.Start()
wg.WaitTimeout(2 * time.Second)
if wg.Finished() {
println("Finished")
} else {
println("Not finished")
}
for wg.Finished() != true {
time.Sleep(1 * time.Second)
println("Waiting...")
}
wg.Wait()
}