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{}
|
ret = []string{}
|
||||||
defer logging.Recover() // 定位 无法添加题头图标签 https://github.com/siyuan-note/siyuan/issues/6756
|
defer logging.Recover() // 定位 无法添加题头图标签 https://github.com/siyuan-note/siyuan/issues/6756
|
||||||
|
|
||||||
|
sql.FlushQueue()
|
||||||
|
|
||||||
labels := labelBlocksByKeyword(keyword)
|
labels := labelBlocksByKeyword(keyword)
|
||||||
for label := range labels {
|
for label := range labels {
|
||||||
_, t := search.MarkText(label, keyword, 1024, Conf.Search.CaseSensitive)
|
_, t := search.MarkText(label, keyword, 1024, Conf.Search.CaseSensitive)
|
||||||
|
|
|
||||||
|
|
@ -23,6 +23,7 @@ import (
|
||||||
"path"
|
"path"
|
||||||
"runtime/debug"
|
"runtime/debug"
|
||||||
"sync"
|
"sync"
|
||||||
|
"sync/atomic"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/88250/lute/parse"
|
"github.com/88250/lute/parse"
|
||||||
|
|
@ -63,15 +64,21 @@ func ClearQueue() {
|
||||||
operationQueue = nil
|
operationQueue = nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var flushingTx = atomic.Bool{}
|
||||||
|
|
||||||
func FlushQueue() {
|
func FlushQueue() {
|
||||||
ops := getOperations()
|
ops := getOperations()
|
||||||
total := len(ops)
|
total := len(ops)
|
||||||
if 1 > total {
|
if 1 > total && !flushingTx.Load() {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
txLock.Lock()
|
txLock.Lock()
|
||||||
defer txLock.Unlock()
|
flushingTx.Store(true)
|
||||||
|
defer func() {
|
||||||
|
flushingTx.Store(false)
|
||||||
|
txLock.Unlock()
|
||||||
|
}()
|
||||||
|
|
||||||
start := time.Now()
|
start := time.Now()
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue