提交 5d19b589 作者: Jakub Sztandera

coverage: fix race of signal vs start of a process

License: MIT
Signed-off-by: 's avatarJakub Sztandera <kubuxu@protonmail.ch>
上级 f0810002
...@@ -43,15 +43,26 @@ func main() { ...@@ -43,15 +43,26 @@ func main() {
Pdeathsig: syscall.SIGTERM, Pdeathsig: syscall.SIGTERM,
} }
sig := make(chan os.Signal, 1) sig := make(chan os.Signal, 10)
start := make(chan struct{})
go func() { go func() {
<-start
for { for {
p.Process.Signal(<-sig) p.Process.Signal(<-sig)
} }
}() }()
signal.Notify(sig, syscall.SIGHUP, syscall.SIGINT, syscall.SIGTERM) 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 { if err != nil {
fmt.Println(err.Error()) fmt.Println(err.Error())
os.Exit(1) os.Exit(1)
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论