Binary package “golang-github-fatih-semgroup-dev” in ubuntu oracular

like errgroup/waitgroup, but only runs a maximum of tasks at any time

 semgroup provides synchronization and error propagation, for groups of
 goroutines working on subtasks of a common task. It uses a weighted
 semaphore implementation to make sure that only a number of maximum
 tasks can be run at any time.
 .
 Unlike golang.org/x/sync/errgroup, it doesn't return the first non-nil
 error, rather it accumulates all errors and returns a set of errors,
 allowing each task to fulfill their task.