🎨 Improve kernel stability by eliminating some data races https://github.com/siyuan-note/siyuan/issues/9842

This commit is contained in:
Daniel 2023-12-08 20:14:26 +08:00
parent dbd52231e9
commit 071f3f9af8
No known key found for this signature in database
GPG Key ID: 86211BA83DF03017
2 changed files with 7 additions and 7 deletions

View File

@ -44,7 +44,7 @@ func autoOCRAssets() {
util.AssetsTexts[p] = text
util.AssetsTextsLock.Unlock()
if "" != text {
util.AssetsTextsChanged = true
util.AssetsTextsChanged.Store(true)
}
if 7 <= i { // 一次任务中最多处理 7 张图片,防止长时间占用系统资源
break
@ -71,7 +71,7 @@ func cleanNotExistAssetsTexts() {
for _, asset := range toRemoves {
delete(util.AssetsTexts, asset)
util.AssetsTextsChanged = true
util.AssetsTextsChanged.Store(true)
}
return
}
@ -134,7 +134,7 @@ func LoadAssetsTexts() {
}
func SaveAssetsTexts() {
if !util.AssetsTextsChanged {
if !util.AssetsTextsChanged.Load() {
return
}
@ -160,5 +160,5 @@ func SaveAssetsTexts() {
logging.LogWarnf("save assets texts [size=%s] to [%s], elapsed [%.2fs]", humanize.Bytes(uint64(len(data))), assetsTextsPath, elapsed)
}
util.AssetsTextsChanged = false
util.AssetsTextsChanged.Store(false)
}

View File

@ -41,7 +41,7 @@ var (
TesseractMaxSize = 2 * 1000 * uint64(1000)
AssetsTexts = map[string]string{}
AssetsTextsLock = sync.Mutex{}
AssetsTextsChanged = false
AssetsTextsChanged = atomic.Bool{}
TesseractLangs []string
)
@ -50,7 +50,7 @@ func SetAssetText(asset, text string) {
AssetsTextsLock.Lock()
AssetsTexts[asset] = text
AssetsTextsLock.Unlock()
AssetsTextsChanged = true
AssetsTextsChanged.Store(true)
}
func ExistsAssetText(asset string) (ret bool) {
@ -76,7 +76,7 @@ func GetAssetText(asset string, force bool) (ret string) {
AssetsTexts[asset] = ret
AssetsTextsLock.Unlock()
if "" != ret {
AssetsTextsChanged = true
AssetsTextsChanged.Store(true)
}
return
}