🎨 细化云端同步锁提升稳定性 https://github.com/siyuan-note/siyuan/issues/5887

This commit is contained in:
Liang Ding 2022-09-17 22:23:44 +08:00
parent 7bc8fba466
commit 90f45a420e
No known key found for this signature in database
GPG key ID: 136F30F901A2231D
15 changed files with 79 additions and 81 deletions

View file

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