|
@@ -44,20 +44,19 @@ func loadGuildState() *guildState {
|
|
|
return gs
|
|
return gs
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+// save persists guild state to disk. Caller must hold gs.mu.
|
|
|
func (gs *guildState) save() {
|
|
func (gs *guildState) save() {
|
|
|
- gs.mu.Lock()
|
|
|
|
|
- defer gs.mu.Unlock()
|
|
|
|
|
atomicSaveJSON(stateFilePath, gs)
|
|
atomicSaveJSON(stateFilePath, gs)
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
func (gs *guildState) setExpanded(id discord.GuildID, expanded bool) {
|
|
func (gs *guildState) setExpanded(id discord.GuildID, expanded bool) {
|
|
|
gs.mu.Lock()
|
|
gs.mu.Lock()
|
|
|
|
|
+ defer gs.mu.Unlock()
|
|
|
if expanded {
|
|
if expanded {
|
|
|
gs.ExpandedGuilds[id] = true
|
|
gs.ExpandedGuilds[id] = true
|
|
|
} else {
|
|
} else {
|
|
|
delete(gs.ExpandedGuilds, id)
|
|
delete(gs.ExpandedGuilds, id)
|
|
|
}
|
|
}
|
|
|
- gs.mu.Unlock()
|
|
|
|
|
gs.save()
|
|
gs.save()
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -69,12 +68,12 @@ func (gs *guildState) isExpanded(id discord.GuildID) bool {
|
|
|
|
|
|
|
|
func (gs *guildState) setChannelExpanded(id discord.ChannelID, expanded bool) {
|
|
func (gs *guildState) setChannelExpanded(id discord.ChannelID, expanded bool) {
|
|
|
gs.mu.Lock()
|
|
gs.mu.Lock()
|
|
|
|
|
+ defer gs.mu.Unlock()
|
|
|
if expanded {
|
|
if expanded {
|
|
|
gs.ExpandedChannels[id] = true
|
|
gs.ExpandedChannels[id] = true
|
|
|
} else {
|
|
} else {
|
|
|
delete(gs.ExpandedChannels, id)
|
|
delete(gs.ExpandedChannels, id)
|
|
|
}
|
|
}
|
|
|
- gs.mu.Unlock()
|
|
|
|
|
gs.save()
|
|
gs.save()
|
|
|
}
|
|
}
|
|
|
|
|
|