From 1b4e245f29240c4154180bbbc7ff966ddc0fbcbf Mon Sep 17 00:00:00 2001 From: Volodymyr Kuznetsov Date: Mon, 1 Mar 2021 16:46:36 -0600 Subject: [PATCH] Fixed race condition Fixed race condition which resulted in inconsistent error code on missing copyright header. --- main.go | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/main.go b/main.go index cfa116a..8f5753b 100644 --- a/main.go +++ b/main.go @@ -94,7 +94,7 @@ func main() { // process at most 1000 files in parallel ch := make(chan *file, 1000) - done := make(chan struct{}) + done := make(chan error) go func() { var wg errgroup.Group for f := range ch { @@ -133,18 +133,17 @@ func main() { return nil }) } - err := wg.Wait() - close(done) - if err != nil { - os.Exit(1) - } + done <- wg.Wait() }() for _, d := range flag.Args() { walk(ch, d) } close(ch) - <-done + if err := <-done; err != nil { + fmt.Printf("error: %s\n", err) + os.Exit(1) + } } type file struct {