diff --git a/kernel/model/index_fix.go b/kernel/model/index_fix.go index 323c62ee0..992c54a24 100644 --- a/kernel/model/index_fix.go +++ b/kernel/model/index_fix.go @@ -49,38 +49,32 @@ func checkIndex() { checkIndexOnce.Do(func() { logging.LogInfof("start checking index...") - task.AppendTask(task.DatabaseIndexFix, removeDuplicateDatabaseIndex) + removeDuplicateDatabaseIndex() sql.FlushQueue() - task.AppendTask(task.DatabaseIndexFix, resetDuplicateBlocksOnFileSys) - - task.AppendTask(task.DatabaseIndexFix, fixBlockTreeByFileSys) + resetDuplicateBlocksOnFileSys() sql.FlushQueue() - task.AppendTask(task.DatabaseIndexFix, fixDatabaseIndexByBlockTree) + fixBlockTreeByFileSys() sql.FlushQueue() - task.AppendTask(task.DatabaseIndexFix, removeDuplicateDatabaseRefs) + fixDatabaseIndexByBlockTree() + sql.FlushQueue() + + removeDuplicateDatabaseRefs() // 后面要加任务的话记得修改推送任务栏的进度 util.PushStatusBar(fmt.Sprintf(Conf.Language(58), 1, 5)) - task.AppendTask(task.DatabaseIndexFix, func() { - util.PushStatusBar(Conf.Language(185)) - }) debug.FreeOSMemory() + util.PushStatusBar(Conf.Language(185)) logging.LogInfof("finish checking index") }) } -var autoFixLock = sync.Mutex{} - // removeDuplicateDatabaseRefs 删除重复的数据库引用关系。 func removeDuplicateDatabaseRefs() { defer logging.Recover() - autoFixLock.Lock() - defer autoFixLock.Unlock() - util.PushStatusBar(fmt.Sprintf(Conf.Language(58), 5, 5)) duplicatedRootIDs := sql.GetRefDuplicatedDefRootIDs() for _, rootID := range duplicatedRootIDs { @@ -96,9 +90,6 @@ func removeDuplicateDatabaseRefs() { func removeDuplicateDatabaseIndex() { defer logging.Recover() - autoFixLock.Lock() - defer autoFixLock.Unlock() - util.PushStatusBar(fmt.Sprintf(Conf.Language(58), 1, 5)) duplicatedRootIDs := sql.GetDuplicatedRootIDs("blocks") if 1 > len(duplicatedRootIDs) { @@ -142,9 +133,6 @@ func removeDuplicateDatabaseIndex() { func resetDuplicateBlocksOnFileSys() { defer logging.Recover() - autoFixLock.Lock() - defer autoFixLock.Unlock() - util.PushStatusBar(fmt.Sprintf(Conf.Language(58), 2, 5)) boxes := Conf.GetBoxes() luteEngine := lute.New() @@ -291,9 +279,6 @@ func recreateTree(tree *parse.Tree, absPath string) { func fixBlockTreeByFileSys() { defer logging.Recover() - autoFixLock.Lock() - defer autoFixLock.Unlock() - util.PushStatusBar(fmt.Sprintf(Conf.Language(58), 3, 5)) boxes := Conf.GetOpenedBoxes() luteEngine := lute.New()