An open API service indexing awesome lists of open source software.

https://github.com/dmdv/waitgrouptimeout

WaitGroupTimeout
https://github.com/dmdv/waitgrouptimeout

Last synced: about 1 year ago
JSON representation

WaitGroupTimeout

Awesome Lists containing this project

README

          

# WaitGroupTimeout

An enhanced version of the built-in sync.WaitGroup of the Go,
which supports timeout processing and non-blocking status check

```go
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()
}

```