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) }