From f4fd735aeec066c89f3df5d86af7a70b55ee4eed Mon Sep 17 00:00:00 2001 From: Archer Date: Mon, 26 Dec 2022 15:00:47 +0800 Subject: [PATCH] Use read-write lock instead of mutex (#2727) --- core/collection/ring.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/core/collection/ring.go b/core/collection/ring.go index 90dae517..bdde1858 100644 --- a/core/collection/ring.go +++ b/core/collection/ring.go @@ -6,7 +6,7 @@ import "sync" type Ring struct { elements []interface{} index int - lock sync.Mutex + lock sync.RWMutex } // NewRing returns a Ring object with the given size n. @@ -31,8 +31,8 @@ func (r *Ring) Add(v interface{}) { // Take takes all items from r. func (r *Ring) Take() []interface{} { - r.lock.Lock() - defer r.lock.Unlock() + r.lock.RLock() + defer r.lock.RUnlock() var size int var start int