From 7d39afed046093bfd61335041a3bdaab2ed0da90 Mon Sep 17 00:00:00 2001 From: Felix Lange Date: Wed, 20 Dec 2023 13:15:10 +0100 Subject: [PATCH] internal/build: fix goroutine leak in MustRunCommandWithOutput --- internal/build/util.go | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/internal/build/util.go b/internal/build/util.go index 82f9ba51a1..b41014a16f 100644 --- a/internal/build/util.go +++ b/internal/build/util.go @@ -73,10 +73,17 @@ func MustRunCommand(cmd string, args ...string) { // when there is no output. func MustRunCommandWithOutput(cmd string, args ...string) { interval := time.NewTicker(time.Minute) + done := make(chan struct{}) defer interval.Stop() + defer close(done) go func() { - for range interval.C { - fmt.Printf("Waiting for command %q\n", cmd) + for { + select { + case <-interval.C: + fmt.Printf("Waiting for command %q\n", cmd) + case <-done: + return + } } }() MustRun(exec.Command(cmd, args...))