sb10 / waitgroup

Like sync.WaitGroup, but with a timeout

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

waitgroup

Like sync.WaitGroup, but with a timeout and debugging to show what you're waiting for if a WaitGroup gets stuck waiting for too long or forever.

Usage

import "github.com/sb10/waitgroup"

wg := waitgroup.New()
loc := wg.Add(1)
go func() {
	defer wg.Done(loc)
	// ...
}()
loc2 := wg.Add(1)
go func() {
	// ... forgot to do wg.Done(loc2), or goroutine gets stuck and never defers
  // the Done() call
}()
wg.Wait(5 * time.Second) // tells you loc2 wasn't done

About

Like sync.WaitGroup, but with a timeout

License:MIT License


Languages

Language:Go 100.0%