1
0
Fork 0

Do not wait on urgent alarms

This commit is contained in:
Michał Rudowicz 2026-03-01 17:02:20 +01:00
parent 8956cafa22
commit f6dc742630
Signed by: fleg
GPG Key ID: F5DF8B577D230836
1 changed files with 12 additions and 1 deletions

View File

@ -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)
}