云端数据同步时降低交互阻塞时间 Fix https://github.com/siyuan-note/siyuan/issues/4984

This commit is contained in:
Liang Ding 2022-05-30 10:50:12 +08:00
parent 1cdc80e1bd
commit c88bd514d3
No known key found for this signature in database
GPG key ID: 136F30F901A2231D
10 changed files with 63 additions and 91 deletions

View file

@ -50,9 +50,6 @@ func generateDocHistory() {
}
WaitForWritingFiles()
syncLock.Lock()
defer syncLock.Unlock()
for _, box := range Conf.GetOpenedBoxes() {
box.generateDocHistory0()
}
@ -158,7 +155,7 @@ func RollbackDocHistory(boxID, historyPath string) (err error) {
}
WaitForWritingFiles()
syncLock.Lock()
writingDataLock.Lock()
srcPath := historyPath
var destPath string
@ -169,22 +166,22 @@ func RollbackDocHistory(boxID, historyPath string) (err error) {
workingDoc := treenode.GetBlockTree(id)
if nil != workingDoc {
if err = os.RemoveAll(filepath.Join(util.DataDir, boxID, workingDoc.Path)); nil != err {
syncLock.Unlock()
writingDataLock.Unlock()
return
}
}
destPath, err = getRollbackDockPath(boxID, historyPath)
if nil != err {
syncLock.Unlock()
writingDataLock.Unlock()
return
}
if err = gulu.File.Copy(srcPath, destPath); nil != err {
syncLock.Unlock()
writingDataLock.Unlock()
return
}
syncLock.Unlock()
writingDataLock.Unlock()
RefreshFileTree()
IncWorkspaceDataVer()