diff --git a/main.go b/main.go index f5625dc..6d4421c 100644 --- a/main.go +++ b/main.go @@ -9,7 +9,6 @@ import ( "os/signal" "strings" "sync" - "sync/atomic" "syscall" "time" ) @@ -37,7 +36,8 @@ func main() { _ = cmd.Run() }() - var isScreenSaverActive uint32 + screenSaverCh := make(chan bool, 1) + defer close(screenSaverCh) wg.Add(1) go func() { defer wg.Done() @@ -55,9 +55,9 @@ func main() { continue } if strings.Contains(scanner.Text(), "boolean true") { - atomic.StoreUint32(&isScreenSaverActive, 1) + screenSaverCh <- true } else { - atomic.StoreUint32(&isScreenSaverActive, 0) + screenSaverCh <- false } } } @@ -67,14 +67,17 @@ func main() { go func() { defer wg.Done() - ticker := time.NewTicker(25 * time.Minute) + isScreenSaverActive := false + ticker := time.NewTicker(30 * time.Minute) defer ticker.Stop() for { select { case <-ctx.Done(): return + case b := <-screenSaverCh: + isScreenSaverActive = b case <-ticker.C: - if atomic.LoadUint32(&isScreenSaverActive) == 1 { + if isScreenSaverActive { continue } _ = sendNotification(ctx)