From 620931006330f8732018bf0cad7d2d73996fce99 Mon Sep 17 00:00:00 2001 From: He Xian Date: Fri, 10 May 2024 17:00:08 +0800 Subject: [PATCH] fix event log Signed-off-by: He Xian --- v2/eventlog/eventlog.go | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/v2/eventlog/eventlog.go b/v2/eventlog/eventlog.go index 8012237..9552925 100644 --- a/v2/eventlog/eventlog.go +++ b/v2/eventlog/eventlog.go @@ -35,19 +35,24 @@ func (p *recent) Add(timestamp time.Time, message string) { p.mu.Lock() defer p.mu.Unlock() if len(p.elements) > 0 { - last := &p.elements[len(p.elements)-1] + pos := p.lastpos + if pos--; pos < 0 { + pos = len(p.elements) - 1 + } + last := &p.elements[pos] if last.message == message { last.tstamp = timestamp last.count++ return } } + element := entry{timestamp, message, 1} if len(p.elements) < cap(p.elements) { - p.elements = append(p.elements, entry{timestamp, message, 1}) + p.elements = append(p.elements, element) p.lastpos = (p.lastpos + 1) % cap(p.elements) return } - p.elements[p.lastpos] = entry{timestamp, message, 1} + p.elements[p.lastpos] = element p.lastpos = (p.lastpos + 1) % len(p.elements) }