diff --git a/internal/checker/checker.go b/internal/checker/checker.go index fcb9db490..2e2e233d6 100644 --- a/internal/checker/checker.go +++ b/internal/checker/checker.go @@ -132,9 +132,8 @@ func (c *Checker) LoadIndex(ctx context.Context) (hints []error, errs []error) { } // final closes indexCh after all workers have terminated - final := func() error { + final := func() { close(resultCh) - return nil } // run workers on ch diff --git a/internal/repository/repository.go b/internal/repository/repository.go index 0c71fb3bb..67df4b3b2 100644 --- a/internal/repository/repository.go +++ b/internal/repository/repository.go @@ -454,9 +454,8 @@ func (r *Repository) LoadIndex(ctx context.Context) error { } // final closes indexCh after all workers have terminated - final := func() error { + final := func() { close(indexCh) - return nil } // run workers on ch diff --git a/internal/repository/worker_group.go b/internal/repository/worker_group.go index ab09d441f..6b9dc6ddf 100644 --- a/internal/repository/worker_group.go +++ b/internal/repository/worker_group.go @@ -10,7 +10,7 @@ import ( // After all workers have terminated, finalFunc is run. If an error occurs in // one of the workers, it is returned. FinalFunc is always run, regardless of // any other previous errors. -func RunWorkers(ctx context.Context, count int, workerFunc, finalFunc func() error) error { +func RunWorkers(ctx context.Context, count int, workerFunc func() error, finalFunc func()) error { wg, ctx := errgroup.WithContext(ctx) // run workers @@ -22,14 +22,12 @@ func RunWorkers(ctx context.Context, count int, workerFunc, finalFunc func() err err := wg.Wait() // make sure finalFunc is run - finalErr := finalFunc() + finalFunc() - // if the workers returned an error, return it to the caller (disregarding - // any error from finalFunc) + // if the workers returned an error, return it to the caller if err != nil { return err } - // if not, return the value finalFunc returned - return finalErr + return nil }