diff options
author | Luke Shumaker <lukeshu@beefcake.parabola.nu> | 2018-06-05 12:44:45 -0400 |
---|---|---|
committer | Luke Shumaker <lukeshu@beefcake.parabola.nu> | 2018-06-05 12:44:45 -0400 |
commit | 1ff3ecb5b08b40686b0e03cf79c4233c5bf99396 (patch) | |
tree | 833b3f6ff19f0b5ae8314a850e9c3b7cc0329540 /go/src/lib/statusline/ratelimit.go | |
parent | 8caefed85ae0253a1ea5b95a5a0ad25146b5d6d7 (diff) |
fixup statusline
Diffstat (limited to 'go/src/lib/statusline/ratelimit.go')
-rw-r--r-- | go/src/lib/statusline/ratelimit.go | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/go/src/lib/statusline/ratelimit.go b/go/src/lib/statusline/ratelimit.go index 970f8e5..087466d 100644 --- a/go/src/lib/statusline/ratelimit.go +++ b/go/src/lib/statusline/ratelimit.go @@ -20,19 +20,25 @@ func RateLimit(sl StatusLine, d time.Duration) StatusLine { ticker := time.NewTicker(d) var oldLine string var newLine string - dirty := false + first := true for { select { case <-ticker.C: - if dirty && newLine != oldLine { + if newLine != oldLine { sl.Put(newLine) + oldLine = newLine } - dirty = false case line := <-ret.lines: - newLine = line - dirty = true + if first { + first = false + oldLine = line + newLine = line + sl.Put(line) + } else { + newLine = line + } case keep := <-ret.end1: - if keep && dirty && newLine != oldLine { + if newLine != oldLine { sl.Put(newLine) } sl.End(keep) |