소스 검색

:art: Improve kernel stability by eliminating some data races https://github.com/siyuan-note/siyuan/issues/9842

Daniel 1 년 전
부모
커밋
55f2720868
2개의 변경된 파일14개의 추가작업 그리고 2개의 파일을 삭제
  1. 1 1
      kernel/api/system.go
  2. 13 1
      kernel/model/conf.go

+ 1 - 1
kernel/api/system.go

@@ -251,7 +251,7 @@ func setUILayout(c *gin.Context) {
 		return
 	}
 
-	model.Conf.UILayout = uiLayout
+	model.Conf.SetUILayout(uiLayout)
 	model.Conf.Save()
 }
 

+ 13 - 1
kernel/model/conf.go

@@ -60,7 +60,7 @@ type AppConf struct {
 	Editor         *conf.Editor     `json:"editor"`         // 编辑器配置
 	Export         *conf.Export     `json:"export"`         // 导出配置
 	Graph          *conf.Graph      `json:"graph"`          // 关系图配置
-	UILayout       *conf.UILayout   `json:"uiLayout"`       // 界面布局,v2.8.0 后这个字段不再使用
+	UILayout       *conf.UILayout   `json:"uiLayout"`       // 界面布局。不要直接使用,使用 GetUILayout() 和 SetUILayout() 方法
 	UserData       string           `json:"userData"`       // 社区用户信息,对 User 加密存储
 	User           *conf.User       `json:"-"`              // 社区用户内存结构,不持久化。不要直接使用,使用 GetUser() 和 SetUser() 方法
 	Account        *conf.Account    `json:"account"`        // 帐号配置
@@ -84,6 +84,18 @@ type AppConf struct {
 	m *sync.Mutex
 }
 
+func (conf *AppConf) GetUILayout() *conf.UILayout {
+	conf.m.Lock()
+	defer conf.m.Unlock()
+	return conf.UILayout
+}
+
+func (conf *AppConf) SetUILayout(uiLayout *conf.UILayout) {
+	conf.m.Lock()
+	defer conf.m.Unlock()
+	conf.UILayout = uiLayout
+}
+
 func (conf *AppConf) GetUser() *conf.User {
 	conf.m.Lock()
 	defer conf.m.Unlock()