From a6979515f80f06aae12dc52f2f97f701565bf53c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20Putegnat?= Date: Fri, 4 Sep 2026 16:26:36 +0200 Subject: [PATCH] fix panic when call cleanupMap twice --- perfmap.go | 4 ++++ ringbuffer.go | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/perfmap.go b/perfmap.go index 14334bf..1d560b1 100644 --- a/perfmap.go +++ b/perfmap.go @@ -252,6 +252,10 @@ func (m *PerfMap) closeReader() error { func (m *PerfMap) cleanupMap(cleanup MapCleanupType) error { m.stateLock.Lock() defer m.stateLock.Unlock() + // check if map was already closed + if m.state == reset { + return nil + } return m.close(cleanup) } diff --git a/ringbuffer.go b/ringbuffer.go index 39abdf9..c755f6f 100644 --- a/ringbuffer.go +++ b/ringbuffer.go @@ -201,6 +201,10 @@ func (rb *RingBuffer) closeReader() error { func (rb *RingBuffer) cleanupMap(cleanup MapCleanupType) error { rb.stateLock.Lock() defer rb.stateLock.Unlock() + // check if map was already closed + if rb.state == reset { + return nil + } return rb.close(cleanup) }