云端数据同步时降低交互阻塞时间 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

@ -34,8 +34,8 @@ import (
func CreateBox(name string) (id string, err error) {
WaitForWritingFiles()
syncLock.Lock()
defer syncLock.Unlock()
writingDataLock.Lock()
defer writingDataLock.Unlock()
id = ast.NewNodeID()
boxLocalPath := filepath.Join(util.DataDir, id)
@ -54,8 +54,8 @@ func CreateBox(name string) (id string, err error) {
func RenameBox(boxID, name string) (err error) {
WaitForWritingFiles()
syncLock.Lock()
defer syncLock.Unlock()
writingDataLock.Lock()
defer writingDataLock.Unlock()
box := Conf.Box(boxID)
if nil == box {
@ -72,8 +72,8 @@ func RenameBox(boxID, name string) (err error) {
func RemoveBox(boxID string) (err error) {
WaitForWritingFiles()
syncLock.Lock()
defer syncLock.Unlock()
writingDataLock.Lock()
defer writingDataLock.Unlock()
if util.IsReservedFilename(boxID) {
return errors.New(fmt.Sprintf("can not remove [%s] caused by it is a reserved file", boxID))
@ -115,8 +115,8 @@ func RemoveBox(boxID string) (err error) {
func Unmount(boxID string) {
WaitForWritingFiles()
syncLock.Lock()
defer syncLock.Unlock()
writingDataLock.Lock()
defer writingDataLock.Unlock()
unmount0(boxID)
evt := util.NewCmdResult("unmount", 0, util.PushModeBroadcast, 0)
@ -141,8 +141,8 @@ func unmount0(boxID string) {
func Mount(boxID string) (alreadyMount bool, err error) {
WaitForWritingFiles()
syncLock.Lock()
defer syncLock.Unlock()
writingDataLock.Lock()
defer writingDataLock.Unlock()
localPath := filepath.Join(util.DataDir, boxID)