From 62f6e3b976789e2f338fa4f4f46ed536d6dbacd7 Mon Sep 17 00:00:00 2001 From: "Alexander \"Arav\" Andreev" Date: Fri, 6 Oct 2023 04:58:58 +0400 Subject: [PATCH] Updated SIG* handling code in main(). --- cmd/dwelling-radio/main.go | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/cmd/dwelling-radio/main.go b/cmd/dwelling-radio/main.go index 91e5efb..15f9161 100644 --- a/cmd/dwelling-radio/main.go +++ b/cmd/dwelling-radio/main.go @@ -99,20 +99,17 @@ func main() { } }() - reloadSignal := make(chan os.Signal, 1) - signal.Notify(reloadSignal, syscall.SIGHUP) + sysSignal := make(chan os.Signal, 1) + signal.Notify(sysSignal, os.Interrupt, syscall.SIGINT, syscall.SIGTERM, syscall.SIGABRT, syscall.SIGSEGV, syscall.SIGHUP) - go func() { - for { - <-reloadSignal + for { + switch <-sysSignal { + case os.Interrupt, syscall.SIGINT, syscall.SIGTERM, syscall.SIGABRT, syscall.SIGSEGV: + return + case syscall.SIGHUP: if err := plylst.Reload(); err != nil { log.Println(err) } } - }() - - doneSignal := make(chan os.Signal, 1) - signal.Notify(doneSignal, os.Interrupt, syscall.SIGINT, syscall.SIGTERM, syscall.SIGABRT, syscall.SIGSEGV) - - <-doneSignal + } }