From 88b1f1d1d14a8fe9e3dde2f363a89d821fc0e641 Mon Sep 17 00:00:00 2001 From: zhangzengfei <zhangzengfei@smartai.com> Date: 星期四, 26 九月 2024 20:19:49 +0800 Subject: [PATCH] code format --- cache/shardmap/shardmap.go | 20 +++++++++++--------- 1 files changed, 11 insertions(+), 9 deletions(-) diff --git a/cache/shardmap/shardmap.go b/cache/shardmap/shardmap.go index daf5f85..9d434d9 100644 --- a/cache/shardmap/shardmap.go +++ b/cache/shardmap/shardmap.go @@ -93,23 +93,27 @@ func (s *ShardMap) Walk(wf wfOp, sourceFea []float32, baseScore float32) (targets []*protomsg.SdkCompareEach) { var wg sync.WaitGroup var lock sync.Mutex - for _, si := range s.shards { - var tempsi shardItem = *si + for _, si := range s.shards { + var tempsi *shardItem = si // 淇濇寔瀵瑰師濮� shardItem 鐨勬寚閽堝紩鐢� + + // 璺宠繃绌哄垎鐗� if len(tempsi.data) == 0 { continue } wg.Add(1) - go func(st *shardItem, fn wfOp, srcFeat []float32, baseSec float32) { defer wg.Done() + st.RLock() // 閿佸畾璇诲彇 + defer st.RUnlock() // 纭繚璇诲彇瀹屾瘯鍚庤В閿� + for _, feature := range st.data { + // 璇诲彇鎿嶄綔鍦ㄩ攣鍐呰繘琛岋紝闃叉骞跺彂鍐茬獊 if item, ok := feature.(*db.FeatureCacheBase); ok { - score := float32(0) - score = fn(srcFeat, item.FaceFeature) + score := fn(srcFeat, item.FaceFeature) if score > 0 && score >= baseScore { - lock.Lock() + lock.Lock() // 淇濇姢鐩爣鍒囩墖鐨勫啓鍏� targets = append(targets, &protomsg.SdkCompareEach{ Id: item.Id, CompareScore: score, @@ -119,13 +123,11 @@ } } } - - }(&tempsi, wf, sourceFea, baseScore) + }(tempsi, wf, sourceFea, baseScore) } wg.Wait() return targets - } // print all -- Gitblit v1.8.0