ソースを参照

Merge pull request #2151 from slingamn/modes_forwardport

fix deadlock on channel state mutex
pull/2156/head
Shivaram Lingamneni 3週間前
コミット
ca4b9c15c5
コミッターのメールアドレスに関連付けられたアカウントが存在しません
1個のファイルの変更5行の追加3行の削除
  1. 5
    3
      irc/getters.go

+ 5
- 3
irc/getters.go ファイルの表示

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

読み込み中…
キャンセル
保存