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

This commit is contained in:
Daniel 2023-12-10 21:50:04 +08:00
parent 8715578bca
commit 55f2720868
No known key found for this signature in database
GPG key ID: 86211BA83DF03017
2 changed files with 14 additions and 2 deletions

View file

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

View file

@ -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()