diff options
| author | hhvn <dev@hhvn.uk> | 2024-01-27 16:53:24 +0000 |
|---|---|---|
| committer | hhvn <dev@hhvn.uk> | 2024-01-27 16:55:10 +0000 |
| commit | 4e7b725a88ed1ad19cc67cbbbb46f3702c3bee97 (patch) | |
| tree | 1f28760f0ced888d9d76f506264155acc1b8be33 /status/00-status.go | |
| parent | e6a5202d0c75bc2ee744a76b73147726e91ee732 (diff) | |
register() in statuses: handle errs and start goroutine
Diffstat (limited to 'status/00-status.go')
| -rw-r--r-- | status/00-status.go | 30 |
1 files changed, 17 insertions, 13 deletions
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) } |