mirror of
https://github.com/AleziaKurdis/overte.git
synced 2025-04-07 05:53:06 +02:00
Merge pull request #14942 from SamGondelman/hashLock
Case 21277: Fix avatar deadlock
This commit is contained in:
commit
b46c79b113
1 changed files with 6 additions and 6 deletions
|
@ -208,16 +208,16 @@ AvatarSharedPointer AvatarHashMap::addAvatar(const QUuid& sessionUUID, const QWe
|
|||
avatar->setSessionUUID(sessionUUID);
|
||||
avatar->setOwningAvatarMixer(mixerWeakPointer);
|
||||
|
||||
// addAvatar is only called from newOrExistingAvatar, which already locks _hashLock
|
||||
_avatarHash.insert(sessionUUID, avatar);
|
||||
{
|
||||
QWriteLocker locker(&_hashLock);
|
||||
_avatarHash.insert(sessionUUID, avatar);
|
||||
}
|
||||
emit avatarAddedEvent(sessionUUID);
|
||||
return avatar;
|
||||
}
|
||||
|
||||
AvatarSharedPointer AvatarHashMap::newOrExistingAvatar(const QUuid& sessionUUID, const QWeakPointer<Node>& mixerWeakPointer,
|
||||
bool& isNew) {
|
||||
QWriteLocker locker(&_hashLock);
|
||||
auto avatar = _avatarHash.value(sessionUUID);
|
||||
AvatarSharedPointer AvatarHashMap::newOrExistingAvatar(const QUuid& sessionUUID, const QWeakPointer<Node>& mixerWeakPointer, bool& isNew) {
|
||||
auto avatar = findAvatar(sessionUUID);
|
||||
if (!avatar) {
|
||||
avatar = addAvatar(sessionUUID, mixerWeakPointer);
|
||||
isNew = true;
|
||||
|
|
Loading…
Reference in a new issue