internal/build: fix goroutine leak in MustRunCommandWithOutput

This commit is contained in:
Felix Lange 2023-12-20 13:15:10 +01:00
parent 7124057bad
commit 7d39afed04

View file

@ -73,10 +73,17 @@ func MustRunCommand(cmd string, args ...string) {
// when there is no output. // when there is no output.
func MustRunCommandWithOutput(cmd string, args ...string) { func MustRunCommandWithOutput(cmd string, args ...string) {
interval := time.NewTicker(time.Minute) interval := time.NewTicker(time.Minute)
done := make(chan struct{})
defer interval.Stop() defer interval.Stop()
defer close(done)
go func() { go func() {
for range interval.C { for {
fmt.Printf("Waiting for command %q\n", cmd) select {
case <-interval.C:
fmt.Printf("Waiting for command %q\n", cmd)
case <-done:
return
}
} }
}() }()
MustRun(exec.Command(cmd, args...)) MustRun(exec.Command(cmd, args...))