From f6dc742630b807e9e4ac4dcc542a3a14cbc44eca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Rudowicz?= Date: Sun, 1 Mar 2026 17:02:20 +0100 Subject: [PATCH] Do not wait on urgent alarms --- filters.go | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/filters.go b/filters.go index 3ffe4ce..7b43cf7 100644 --- a/filters.go +++ b/filters.go @@ -107,6 +107,15 @@ throughNewMessages: return msg } +func urgentMessage(ev GenericMessage) bool { + for _, m := range ev.Messages { + if m.Type == satel.PartitionFireAlarm { + return true + } + } + return false +} + func Throttle(inputEvents <-chan GenericMessage, wg *sync.WaitGroup, sleeper Sleeper, logger *log.Logger) <-chan GenericMessage { returnChan := make(chan GenericMessage) timeoutEvents := make(chan interface{}) @@ -124,7 +133,9 @@ func Throttle(inputEvents <-chan GenericMessage, wg *sync.WaitGroup, sleeper Sle if !ok { break loop } - if currentEvent == nil { + if urgentMessage(ev) { + returnChan <- ev + } else if currentEvent == nil { logger.Print("Waiting for more messages to arrive before sending...") sleeper.Sleep(timeoutEvents) }