diff --git a/kernel/model/mount.go b/kernel/model/mount.go index 37616a099..04fabe4df 100644 --- a/kernel/model/mount.go +++ b/kernel/model/mount.go @@ -41,6 +41,11 @@ func CreateBox(name string) (id string, err error) { return } + WaitForWritingFiles() + + createDocLock.Lock() + defer createDocLock.Unlock() + id = ast.NewNodeID() boxLocalPath := filepath.Join(util.DataDir, id) err = os.MkdirAll(boxLocalPath, 0755) @@ -71,12 +76,15 @@ func RenameBox(boxID, name string) (err error) { } func RemoveBox(boxID string) (err error) { - WaitForWritingFiles() - if util.IsReservedFilename(boxID) { return errors.New(fmt.Sprintf("can not remove [%s] caused by it is a reserved file", boxID)) } + WaitForWritingFiles() + + createDocLock.Lock() + defer createDocLock.Unlock() + localPath := filepath.Join(util.DataDir, boxID) if !filelock.IsExist(localPath) { return diff --git a/kernel/model/transaction.go b/kernel/model/transaction.go index 6bc09252d..73608c33d 100644 --- a/kernel/model/transaction.go +++ b/kernel/model/transaction.go @@ -87,7 +87,7 @@ var ( ) func isWritingFiles() bool { - time.Sleep(time.Duration(20) * time.Millisecond) + time.Sleep(time.Duration(50) * time.Millisecond) return 0 < len(txQueue) }