fixed some concurrency issues

This commit is contained in:
fourtf 2020-08-22 11:45:18 +02:00
parent 0b0f1c9c5c
commit 83b6fad8e6
4 changed files with 17 additions and 6 deletions

View file

@ -289,10 +289,14 @@ void Application::initPubsub()
QString channelId;
if (rj::getSafe(data, "channel_id", channelId))
{
const auto &chan =
this->twitch.server->getChannelOrEmptyByID(channelId);
auto channel = dynamic_cast<TwitchChannel *>(chan.get());
channel->addChannelPointReward(ChannelPointReward(data));
auto chan = this->twitch.server->getChannelOrEmptyByID(channelId);
auto reward = ChannelPointReward(data);
postToThread([chan, reward] {
auto channel = dynamic_cast<TwitchChannel *>(chan.get());
channel->addChannelPointReward(reward);
});
}
else
{

View file

@ -98,6 +98,7 @@ public:
/// signals.
int append(const T &item, void *caller = nullptr)
{
assertInGuiThread();
return this->insert(item, -1, caller);
}

View file

@ -237,6 +237,8 @@ void TwitchChannel::refreshFFZChannelEmotes(bool manualRefresh)
void TwitchChannel::addChannelPointReward(const ChannelPointReward &reward)
{
assertInGuiThread();
if (!reward.hasParsedSuccessfully)
{
return;

View file

@ -34,7 +34,9 @@ ConcurrentSettings::ConcurrentSettings()
bool ConcurrentSettings::isHighlightedUser(const QString &username)
{
for (const auto &highlightedUser : this->highlightedUsers)
auto items = this->highlightedUsers.readOnly();
for (const auto &highlightedUser : *items)
{
if (highlightedUser.isMatch(username))
return true;
@ -58,7 +60,9 @@ bool ConcurrentSettings::isBlacklistedUser(const QString &username)
bool ConcurrentSettings::isMutedChannel(const QString &channelName)
{
for (const auto &channel : this->mutedChannels)
auto items = this->mutedChannels.readOnly();
for (const auto &channel : *items)
{
if (channelName.toLower() == channel.toLower())
{