Documentation ¶
Overview ¶
Package bgrun allows simple synchronisation of goroutines.
This is mostly intended for "fire and forget" type of goroutines like sending an email. They typically don't really need any synchronisation as such but you do want to wait for them to finish before the program exits, or you want to wait for them in tests.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Add ¶
func Add(name string) func()
Add a new function to the waitgroup and return the done.
done := bgrun.Add() go func() { defer done() defer zlog.Recover() }()
func Run ¶
func Run(name string, f func())
Run the function in a goroutine.
bgrun.Run(func() { // Do work... })
func RunNoDuplicates ¶
func RunNoDuplicates(name string, f func())
RunNoDuplicates is like Run(), but only allows one instance of this name.
It will do nothing if there's already something running with this name.
func WaitProgress ¶
func WaitProgress() error
WaitProgress calls Wait() and prints which tasks it's waiting for.
func WaitProgressAndLog ¶
func WaitProgressAndLog()
WaitProgressAndLog calls Wait(), prints which tasks it's waiting for, and logs any errors.
Types ¶
This section is empty.