Make AccessGuard use a shared_mutex instead (#2702)
This allows `accessConst` to use a shared lock instead of a unique lock
This commit is contained in:
@@ -176,12 +176,14 @@ void TwitchAccount::checkFollow(const QString targetUserID,
|
||||
[] {});
|
||||
}
|
||||
|
||||
AccessGuard<const std::set<TwitchUser>> TwitchAccount::accessBlocks() const
|
||||
SharedAccessGuard<const std::set<TwitchUser>> TwitchAccount::accessBlocks()
|
||||
const
|
||||
{
|
||||
return this->ignores_.accessConst();
|
||||
}
|
||||
|
||||
AccessGuard<const std::set<QString>> TwitchAccount::accessBlockedUserIds() const
|
||||
SharedAccessGuard<const std::set<QString>> TwitchAccount::accessBlockedUserIds()
|
||||
const
|
||||
{
|
||||
return this->ignoresUserIds_.accessConst();
|
||||
}
|
||||
@@ -345,7 +347,7 @@ void TwitchAccount::loadUserstateEmotes(QStringList emoteSetKeys)
|
||||
});
|
||||
}
|
||||
|
||||
AccessGuard<const TwitchAccount::TwitchAccountEmoteData>
|
||||
SharedAccessGuard<const TwitchAccount::TwitchAccountEmoteData>
|
||||
TwitchAccount::accessEmotes() const
|
||||
{
|
||||
return this->emotes_.accessConst();
|
||||
|
||||
@@ -106,12 +106,12 @@ public:
|
||||
void checkFollow(const QString targetUserID,
|
||||
std::function<void(FollowResult)> onFinished);
|
||||
|
||||
AccessGuard<const std::set<QString>> accessBlockedUserIds() const;
|
||||
AccessGuard<const std::set<TwitchUser>> accessBlocks() const;
|
||||
SharedAccessGuard<const std::set<QString>> accessBlockedUserIds() const;
|
||||
SharedAccessGuard<const std::set<TwitchUser>> accessBlocks() const;
|
||||
|
||||
void loadEmotes();
|
||||
void loadUserstateEmotes(QStringList emoteSetKeys);
|
||||
AccessGuard<const TwitchAccountEmoteData> accessEmotes() const;
|
||||
SharedAccessGuard<const TwitchAccountEmoteData> accessEmotes() const;
|
||||
|
||||
// Automod actions
|
||||
void autoModAllow(const QString msgID);
|
||||
|
||||
@@ -454,8 +454,8 @@ void TwitchChannel::setRoomId(const QString &id)
|
||||
}
|
||||
}
|
||||
|
||||
AccessGuard<const TwitchChannel::RoomModes> TwitchChannel::accessRoomModes()
|
||||
const
|
||||
SharedAccessGuard<const TwitchChannel::RoomModes>
|
||||
TwitchChannel::accessRoomModes() const
|
||||
{
|
||||
return this->roomModes_.accessConst();
|
||||
}
|
||||
@@ -472,7 +472,7 @@ bool TwitchChannel::isLive() const
|
||||
return this->streamStatus_.access()->live;
|
||||
}
|
||||
|
||||
AccessGuard<const TwitchChannel::StreamStatus>
|
||||
SharedAccessGuard<const TwitchChannel::StreamStatus>
|
||||
TwitchChannel::accessStreamStatus() const
|
||||
{
|
||||
return this->streamStatus_.accessConst();
|
||||
|
||||
@@ -83,8 +83,8 @@ public:
|
||||
int chatterCount();
|
||||
virtual bool isLive() const override;
|
||||
QString roomId() const;
|
||||
AccessGuard<const RoomModes> accessRoomModes() const;
|
||||
AccessGuard<const StreamStatus> accessStreamStatus() const;
|
||||
SharedAccessGuard<const RoomModes> accessRoomModes() const;
|
||||
SharedAccessGuard<const StreamStatus> accessStreamStatus() const;
|
||||
|
||||
// Emotes
|
||||
const TwitchBadges &globalTwitchBadges() const;
|
||||
|
||||
Reference in New Issue
Block a user