diff --git a/internal/route/http.go b/internal/route/http.go index f2b40a7..46edeb8 100755 --- a/internal/route/http.go +++ b/internal/route/http.go @@ -148,8 +148,10 @@ func (r *HTTPRoute) Start(providerSubtask task.Task) E.Error { } if r.HealthMon != nil { - if err := r.HealthMon.Start(r.task.Subtask("health monitor")); err != nil { + healthMonTask := r.task.Subtask("health monitor") + if err := r.HealthMon.Start(healthMonTask); err != nil { E.LogWarn("health monitor error", err, &r.l) + healthMonTask.Finish(err) } } diff --git a/internal/route/stream.go b/internal/route/stream.go index 71d89eb..31b3a68 100755 --- a/internal/route/stream.go +++ b/internal/route/stream.go @@ -104,8 +104,10 @@ func (r *StreamRoute) Start(providerSubtask task.Task) E.Error { Msg("listening") if r.HealthMon != nil { - if err := r.HealthMon.Start(r.task.Subtask("health monitor")); err != nil { + healthMonTask := r.task.Subtask("health monitor") + if err := r.HealthMon.Start(healthMonTask); err != nil { E.LogWarn("health monitor error", err, &r.l) + healthMonTask.Finish(err) } } diff --git a/internal/watcher/health/monitor.go b/internal/watcher/health/monitor.go index 0a516bf..4a7d852 100644 --- a/internal/watcher/health/monitor.go +++ b/internal/watcher/health/monitor.go @@ -77,6 +77,7 @@ func (mon *monitor) Start(routeSubtask task.Task) E.Error { if mon.status.Load() != StatusError { mon.status.Store(StatusUnknown) } + mon.task.Finish(nil) }() if err := mon.checkUpdateHealth(); err != nil {