From ddaf2bb991441f72bca15bce5495f4d1b72deb82 Mon Sep 17 00:00:00 2001 From: "Alexander \"Arav\" Andreev" Date: Tue, 8 Feb 2022 02:05:38 +0400 Subject: [PATCH] Add addtional closeSignal chan for program to wait for. --- cmd/dwelling-upload/main.go | 34 ++++++++++++++++++++-------------- 1 file changed, 20 insertions(+), 14 deletions(-) diff --git a/cmd/dwelling-upload/main.go b/cmd/dwelling-upload/main.go index 56b6127..211fa92 100644 --- a/cmd/dwelling-upload/main.go +++ b/cmd/dwelling-upload/main.go @@ -107,23 +107,29 @@ func main() { doneSignal := make(chan os.Signal, 1) signal.Notify(doneSignal, os.Interrupt, syscall.SIGINT, syscall.SIGTERM) + closeSignal := make(chan bool, 1) - for { - select { - case <-doneSignal: - if err := srv.Stop(); err != nil { - logErr.Fatalln(err) - } - case <-uploadDirNotify: - sz, err := utils.DirectorySize(config.Uploads.Directory) - if err != nil { - logErr.Println(err) - } + go func() { + for { + select { + case <-doneSignal: + if err := srv.Stop(); err != nil { + logErr.Fatalln(err) + } + closeSignal <- true + case <-uploadDirNotify: + sz, err := utils.DirectorySize(config.Uploads.Directory) + if err != nil { + logErr.Println(err) + } - if sz > 0 { - uploadDirSize = sz + if sz > 0 { + uploadDirSize = sz + } } } - } + }() + + <-closeSignal }