mirror of
https://github.com/siyuan-note/siyuan.git
synced 2025-12-16 14:40:12 +01:00
🎨 Improve sql tx queue lock https://github.com/siyuan-note/siyuan/issues/14532
This commit is contained in:
parent
9729b72a9e
commit
669dfb7d58
2 changed files with 11 additions and 2 deletions
|
|
@ -305,6 +305,8 @@ func SearchTags(keyword string) (ret []string) {
|
|||
ret = []string{}
|
||||
defer logging.Recover() // 定位 无法添加题头图标签 https://github.com/siyuan-note/siyuan/issues/6756
|
||||
|
||||
sql.FlushQueue()
|
||||
|
||||
labels := labelBlocksByKeyword(keyword)
|
||||
for label := range labels {
|
||||
_, t := search.MarkText(label, keyword, 1024, Conf.Search.CaseSensitive)
|
||||
|
|
|
|||
|
|
@ -23,6 +23,7 @@ import (
|
|||
"path"
|
||||
"runtime/debug"
|
||||
"sync"
|
||||
"sync/atomic"
|
||||
"time"
|
||||
|
||||
"github.com/88250/lute/parse"
|
||||
|
|
@ -63,15 +64,21 @@ func ClearQueue() {
|
|||
operationQueue = nil
|
||||
}
|
||||
|
||||
var flushingTx = atomic.Bool{}
|
||||
|
||||
func FlushQueue() {
|
||||
ops := getOperations()
|
||||
total := len(ops)
|
||||
if 1 > total {
|
||||
if 1 > total && !flushingTx.Load() {
|
||||
return
|
||||
}
|
||||
|
||||
txLock.Lock()
|
||||
defer txLock.Unlock()
|
||||
flushingTx.Store(true)
|
||||
defer func() {
|
||||
flushingTx.Store(false)
|
||||
txLock.Unlock()
|
||||
}()
|
||||
|
||||
start := time.Now()
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue