Parcourir la source

Merge pull request #2151 from slingamn/modes_forwardport

fix deadlock on channel state mutex
master
Shivaram Lingamneni il y a 1 semaine
Parent
révision
ca4b9c15c5
Aucun compte lié à l'adresse e-mail de l'auteur
1 fichiers modifiés avec 5 ajouts et 3 suppressions
  1. 5
    3
      irc/getters.go

+ 5
- 3
irc/getters.go Voir le fichier

@@ -612,9 +612,11 @@ func (channel *Channel) Founder() string {
612 612
 
613 613
 func (channel *Channel) HighestUserMode(client *Client) (result modes.Mode) {
614 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 622
 func (channel *Channel) Settings() (result ChannelSettings) {

Chargement…
Annuler
Enregistrer