3
0
mirror of https://github.com/ergochat/ergo.git synced 2025-05-03 21:27:33 +02:00

fix deadlock on channel state mutex

This commit is contained in:
Shivaram Lingamneni 2024-05-06 02:30:00 -04:00
parent d97e964b35
commit af2ac175e3

View File

@ -616,9 +616,11 @@ func (channel *Channel) Founder() string {
func (channel *Channel) HighestUserMode(client *Client) (result modes.Mode) { func (channel *Channel) HighestUserMode(client *Client) (result modes.Mode) {
channel.stateMutex.RLock() channel.stateMutex.RLock()
clientModes := channel.members[client].modes defer channel.stateMutex.RUnlock()
channel.stateMutex.RUnlock() if clientData, ok := channel.members[client]; ok {
return clientModes.HighestChannelUserMode() return clientData.modes.HighestChannelUserMode()
}
return
} }
func (channel *Channel) Settings() (result ChannelSettings) { func (channel *Channel) Settings() (result ChannelSettings) {