Fix crash resulting from a mutex deadlock when switching users #4675
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
Reproduction
Why?
chatterino2/src/widgets/dialogs/ReplyThreadPopup.cpp
Lines 141 to 146 in ca9c91a
messageAppended
callback:chatterino2/src/widgets/dialogs/ReplyThreadPopup.cpp
Lines 174 to 175 in ca9c91a
~ScopedConnection
⇒Callback::disconnect
⇒CallbackBodyBase::disconnect
).chatterino2/src/providers/twitch/TwitchIrcServer.cpp
Lines 73 to 75 in ca9c91a
chatterino2/src/providers/irc/AbstractIrcServer.cpp
Lines 113 to 117 in ca9c91a
AbstractIrcServer::onDisconnected
to be called. This will send a message on all channels:chatterino2/src/providers/irc/AbstractIrcServer.cpp
Lines 346 to 364 in ca9c91a
messageAppended
signal:chatterino2/src/common/Channel.cpp
Line 111 in ca9c91a
dropSeventvChannel
will be called:chatterino2/src/providers/twitch/TwitchChannel.cpp
Lines 162 to 165 in ca9c91a
channelMutex
:chatterino2/src/providers/twitch/TwitchIrcServer.cpp
Lines 647 to 655 in ca9c91a
AbstractIrcServer
locked this mutex in step 5.This PR moves the virtual channel to the popup, thus it will be destroyed when the popup is destroyed.