From 9464408143c5d51ea37e1e76e5999a631b8fcd5c Mon Sep 17 00:00:00 2001 From: Jakub Sztandera Date: Thu, 4 Apr 2019 20:10:44 +0200 Subject: [PATCH] coverage: fix race of signal vs start of a process License: MIT Signed-off-by: Jakub Sztandera --- coverage/main/main.go | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/coverage/main/main.go b/coverage/main/main.go index ba5d473e3420..be616e08d721 100644 --- a/coverage/main/main.go +++ b/coverage/main/main.go @@ -43,15 +43,26 @@ func main() { Pdeathsig: syscall.SIGTERM, } - sig := make(chan os.Signal, 1) + sig := make(chan os.Signal, 10) + start := make(chan struct{}) go func() { + <-start for { p.Process.Signal(<-sig) } }() + signal.Notify(sig, syscall.SIGHUP, syscall.SIGINT, syscall.SIGTERM) - err = p.Run() + err = p.Start() + if err != nil { + fmt.Println(err.Error()) + os.Exit(1) + } + + close(start) + + err = p.Wait() if err != nil { fmt.Println(err.Error()) os.Exit(1)