From 3a456793784feb13282c5adbf794410ec0125789 Mon Sep 17 00:00:00 2001 From: icey-yu <1186114839@qq.com> Date: Thu, 12 Sep 2024 15:13:25 +0800 Subject: [PATCH] fix: lru lock --- pkg/localcache/lru/lru_lazy.go | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/pkg/localcache/lru/lru_lazy.go b/pkg/localcache/lru/lru_lazy.go index e7f7b8bd5..88e75ef85 100644 --- a/pkg/localcache/lru/lru_lazy.go +++ b/pkg/localcache/lru/lru_lazy.go @@ -99,13 +99,12 @@ func (x *LayLRU[K, V]) GetBatch(keys []K, fetch func(keys []K) (map[K]V, error)) queries := make([]K, 0) setVs := make(map[K]*layLruItem[V]) for _, key := range keys { + x.lock.Unlock() v, ok := x.core.Get(key) + x.lock.Unlock() if ok { - x.lock.Unlock() - v.lock.Lock() expires, value, err1 := v.expires, v.value, v.err if expires != 0 && expires > time.Now().UnixMilli() { - v.lock.Unlock() x.target.IncrGetHit() res[key] = value if err1 != nil { @@ -117,7 +116,6 @@ func (x *LayLRU[K, V]) GetBatch(keys []K, fetch func(keys []K) (map[K]V, error)) } } queries = append(queries, key) - x.lock.Unlock() } values, err1 := fetch(queries) if err1 != nil {