Pārlūkot izejas kodu

Merge pull request #2151 from slingamn/modes_forwardport

fix deadlock on channel state mutex
pull/2156/head
Shivaram Lingamneni 3 nedēļas atpakaļ
vecāks
revīzija
ca4b9c15c5
Revīzijas autora e-pasta adrese nav piesaistīta nevienam kontam
1 mainītis faili ar 5 papildinājumiem un 3 dzēšanām
  1. 5
    3
      irc/getters.go

+ 5
- 3
irc/getters.go Parādīt failu

612
 
612
 
613
 func (channel *Channel) HighestUserMode(client *Client) (result modes.Mode) {
613
 func (channel *Channel) HighestUserMode(client *Client) (result modes.Mode) {
614
 	channel.stateMutex.RLock()
614
 	channel.stateMutex.RLock()
615
-	clientModes := channel.members[client].modes
616
-	channel.stateMutex.RUnlock()
617
-	return clientModes.HighestChannelUserMode()
615
+	defer channel.stateMutex.RUnlock()
616
+	if clientData, ok := channel.members[client]; ok {
617
+		return clientData.modes.HighestChannelUserMode()
618
+	}
619
+	return
618
 }
620
 }
619
 
621
 
620
 func (channel *Channel) Settings() (result ChannelSettings) {
622
 func (channel *Channel) Settings() (result ChannelSettings) {

Notiek ielāde…
Atcelt
Saglabāt