From 282e7a4d576765a1522edb224bee05ed6bc12306 Mon Sep 17 00:00:00 2001 From: Shivaram Lingamneni Date: Thu, 20 Feb 2020 02:57:39 -0500 Subject: [PATCH] don't write to mysql while holding joinPartMutex --- irc/channel.go | 29 ++++++++++++++--------------- 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/irc/channel.go b/irc/channel.go index c16ff6d6..07091d76 100644 --- a/irc/channel.go +++ b/irc/channel.go @@ -682,8 +682,6 @@ func (channel *Channel) Join(client *Client, key string, isSajoin bool, rb *Resp client.server.logger.Debug("join", fmt.Sprintf("%s joined channel %s", details.nick, chname)) - var message utils.SplitMessage - givenMode := func() (givenMode modes.Mode) { channel.joinPartMutex.Lock() defer channel.joinPartMutex.Unlock() @@ -707,22 +705,23 @@ func (channel *Channel) Join(client *Client, key string, isSajoin bool, rb *Resp channel.regenerateMembersCache() - // no history item for fake persistent joins - if rb != nil { - message = utils.MakeMessage("") - histItem := history.Item{ - Type: history.Join, - Nick: details.nickMask, - AccountName: details.accountName, - Message: message, - } - histItem.Params[0] = details.realname - channel.AddHistoryItem(histItem) - } - return }() + var message utils.SplitMessage + // no history item for fake persistent joins + if rb != nil { + message = utils.MakeMessage("") + histItem := history.Item{ + Type: history.Join, + Nick: details.nickMask, + AccountName: details.accountName, + Message: message, + } + histItem.Params[0] = details.realname + channel.AddHistoryItem(histItem) + } + client.addChannel(channel) var modestr string