ソースを参照

:art: 潜在的并发冲突

Liang Ding 2 年 前
コミット
addadedcb8
1 ファイル変更3 行追加4 行削除
  1. 3 4
      kernel/model/ocr.go

+ 3 - 4
kernel/model/ocr.go

@@ -49,11 +49,12 @@ func autoOCRAssets() {
 }
 }
 
 
 func cleanNotExistAssetsTexts() {
 func cleanNotExistAssetsTexts() {
-	tmp := util.AssetsTexts
+	util.AssetsTextsLock.Lock()
+	defer util.AssetsTextsLock.Unlock()
 
 
 	assetsPath := util.GetDataAssetsAbsPath()
 	assetsPath := util.GetDataAssetsAbsPath()
 	var toRemoves []string
 	var toRemoves []string
-	for asset, _ := range tmp {
+	for asset, _ := range util.AssetsTexts {
 		assetAbsPath := strings.TrimPrefix(asset, "assets")
 		assetAbsPath := strings.TrimPrefix(asset, "assets")
 		assetAbsPath = filepath.Join(assetsPath, assetAbsPath)
 		assetAbsPath = filepath.Join(assetsPath, assetAbsPath)
 		if !gulu.File.IsExist(assetAbsPath) {
 		if !gulu.File.IsExist(assetAbsPath) {
@@ -61,12 +62,10 @@ func cleanNotExistAssetsTexts() {
 		}
 		}
 	}
 	}
 
 
-	util.AssetsTextsLock.Lock()
 	for _, asset := range toRemoves {
 	for _, asset := range toRemoves {
 		delete(util.AssetsTexts, asset)
 		delete(util.AssetsTexts, asset)
 		util.AssetsTextsChanged = true
 		util.AssetsTextsChanged = true
 	}
 	}
-	util.AssetsTextsLock.Unlock()
 	return
 	return
 }
 }