Browse Source

:art: 改进块树索引

Liang Ding 2 years ago
parent
commit
8c6b10a02b
1 changed files with 8 additions and 1 deletions
  1. 8 1
      kernel/treenode/blocktree.go

+ 8 - 1
kernel/treenode/blocktree.go

@@ -305,9 +305,13 @@ func updateBtSlice(n *ast.Node, tree *parse.Tree) {
 	slice.m.Unlock()
 }
 
+var blockTreeLock = sync.Mutex{}
+
 func InitBlockTree(force bool) {
-	start := time.Now()
+	blockTreeLock.Lock()
+	defer blockTreeLock.Unlock()
 
+	start := time.Now()
 	if force {
 		err := os.RemoveAll(util.BlockTreePath)
 		if nil != err {
@@ -387,6 +391,9 @@ func SaveBlockTreeJob() {
 }
 
 func SaveBlockTree(force bool) {
+	blockTreeLock.Lock()
+	defer blockTreeLock.Unlock()
+
 	start := time.Now()
 	os.MkdirAll(util.BlockTreePath, 0755)