Переглянути джерело

:zap: 改进书签面板加载速度 https://github.com/siyuan-note/siyuan/issues/6677

Liang Ding 2 роки тому
батько
коміт
8652c4cef7
2 змінених файлів з 7 додано та 1 видалено
  1. 3 1
      kernel/model/bookmark.go
  2. 4 0
      kernel/sql/queue.go

+ 3 - 1
kernel/model/bookmark.go

@@ -160,7 +160,9 @@ func BookmarkLabels() (ret []string) {
 
 func BuildBookmark() (ret *Bookmarks) {
 	WaitForWritingFiles()
-	sql.WaitForWritingDatabase()
+	if !sql.IsEmptyQueue() {
+		sql.WaitForWritingDatabase()
+	}
 
 	ret = &Bookmarks{}
 	sqlBlocks := sql.QueryBookmarkBlocks()

+ 4 - 0
kernel/sql/queue.go

@@ -81,6 +81,10 @@ func isWritingDatabase() bool {
 	return false
 }
 
+func IsEmptyQueue() bool {
+	return 1 > len(operationQueue) && !util.IsMutexLocked(&txLock)
+}
+
 func flushTreeQueue() {
 	ops := mergeUpsertTrees()
 	if 1 > len(ops) {