From a670da769fa1c544b4f375fad482d4915bc354f0 Mon Sep 17 00:00:00 2001 From: Ian Gulliver Date: Wed, 20 Aug 2025 23:11:19 -0700 Subject: [PATCH] Parallelize sending --- main.go | 31 ++++++++++++++++++++++++------- 1 file changed, 24 insertions(+), 7 deletions(-) diff --git a/main.go b/main.go index 274cc81..dbd3b03 100644 --- a/main.go +++ b/main.go @@ -77,14 +77,31 @@ func (ph *PHandler) serveRoot(w http.ResponseWriter, r *http.Request) { } func (ph *PHandler) sendAlert(m string) error { - err := ph.pd.sendAlert(m) - if err != nil { - return fmt.Errorf("Error sending to PagerDuty: %w", err) - } + res := make(chan error, 2) - err = ph.gc.sendMessage(ph.garminIMEI, ph.garminSender, m) - if err != nil { - return fmt.Errorf("Error sending to Garmin: %w", err) + go func() { + err := ph.gc.sendMessage(ph.garminIMEI, ph.garminSender, m) + if err != nil { + res <- fmt.Errorf("Error sending to Garmin: %w", err) + } else { + res <- nil + } + }() + + go func() { + err := ph.pd.sendAlert(m) + if err != nil { + res <- fmt.Errorf("Error sending to PagerDuty: %w", err) + } else { + res <- nil + } + }() + + for i := 0; i < 2; i++ { + err := <-res + if err != nil { + return err + } } return nil