Skip to content

Commit 45ebc58

Browse files
committed
Fix hang when incoming p2p or group calls throw up dialog.
There were changes in atlasaurus that resulted in a hang for incoming p2p and group calls which throw up dialogs. The changes revolved around mutex, coroutines, job queues, and such. The fix was to do any processing that may result in callbacks from the webrtc code in a queued job instead of a coroutine.
1 parent 75a5cd6 commit 45ebc58

File tree

1 file changed

+15
-7
lines changed

1 file changed

+15
-7
lines changed

indra/newview/llvoicewebrtc.cpp

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -549,13 +549,20 @@ void LLWebRTCVoiceClient::voiceConnectionCoro()
549549
updatePosition();
550550
}
551551
}
552-
553-
sessionState::processSessionStates();
554-
if (mProcessChannels && voiceEnabled && !mHidden)
555-
{
556-
sendPositionUpdate(false);
557-
updateOwnVolume();
558-
}
552+
LL::WorkQueue::postMaybe(mMainQueue,
553+
[=] {
554+
if (sShuttingDown)
555+
{
556+
return;
557+
}
558+
sessionState::processSessionStates();
559+
//sessionState::processSessionStates();
560+
if (mProcessChannels && voiceEnabled && !mHidden)
561+
{
562+
sendPositionUpdate(false);
563+
updateOwnVolume();
564+
}
565+
});
559566
}
560567
}
561568
catch (const LLCoros::Stop&)
@@ -2221,6 +2228,7 @@ void LLVoiceWebRTCConnection::OnIceCandidate(const llwebrtc::LLWebRTCIceCandidat
22212228
void LLVoiceWebRTCConnection::processIceUpdates()
22222229
{
22232230
mOutstandingRequests++;
2231+
22242232
LLCoros::getInstance()->launch("LLVoiceWebRTCConnection::processIceUpdatesCoro",
22252233
boost::bind(&LLVoiceWebRTCConnection::processIceUpdatesCoro, this->shared_from_this()));
22262234
}

0 commit comments

Comments
 (0)