From 4e7b725a88ed1ad19cc67cbbbb46f3702c3bee97 Mon Sep 17 00:00:00 2001 From: hhvn Date: Sat, 27 Jan 2024 16:53:24 +0000 Subject: register() in statuses: handle errs and start goroutine --- status/00-status.go | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) (limited to 'status/00-status.go') diff --git a/status/00-status.go b/status/00-status.go index ec2a069..bfd7bb9 100644 --- a/status/00-status.go +++ b/status/00-status.go @@ -47,7 +47,7 @@ func init() { }() } -func register(name string) { +func register(name string, fn func(string) error) { nid := 0 for _, id := range statusid { if id >= nid { @@ -55,6 +55,22 @@ func register(name string) { } } statusid[name] = nid + + go func(){ + for { + err := fn(name) + + if err != nil { + common.Error("status \"%s\": %s\n", name, err) + + u := newUpdate(name) + u.drawText(0, config.Red, fmt.Sprintf("[err: %s]", name)) + updates <- u + + sleep(5) + } + } + }() } func newUpdate(name string) (*status) { @@ -70,18 +86,6 @@ func newUpdate(name string) (*status) { return &s } -func checkError(name string, err error) { - if err == nil { return } - - common.Error("status \"%s\": %s\n", name, err) - - u := newUpdate(name) - u.drawText(0, config.Red, fmt.Sprintf("[err: %s]", name)) - updates <- u - - sleep(5) -} - func sleep(s int) { time.Sleep(time.Duration(s) * time.Second) } -- cgit v1.2.3