RaiseException on voiceControlCoro

For some reason try block from voiceControlCoro doesn't trigger, but one
from toplevel does and claim that it's voiceControlCoro, logs also
suggest that vivox was doing an outgoing call. This is mostly to get
evidence.
meow-7.2.2
Andrey Kleshchev 2024-11-04 23:45:48 +02:00 committed by Andrey Kleshchev
parent 55732f7343
commit b4bd89b07e
2 changed files with 39 additions and 14 deletions

View File

@ -402,7 +402,7 @@ void LLViewerObjectList::processObjectUpdate(LLMessageSystem *mesgsys,
LLViewerObject *objectp;
S32 num_objects;
U32 local_id;
U32 local_id = 0;
LLPCode pcode = 0;
LLUUID fullid;
S32 i;

View File

@ -2024,23 +2024,48 @@ bool LLVivoxVoiceClient::waitForChannel()
llcoro::suspend();
break;
}
sessionStatePtr_t joinSession = mNextAudioSession;
mNextAudioSession.reset();
mIsProcessingChannels = true;
if (!runSession(joinSession)) //suspends
try
{
mIsProcessingChannels = false;
LL_DEBUGS("Voice") << "runSession returned false; leaving inner loop" << LL_ENDL;
break;
sessionStatePtr_t joinSession = mNextAudioSession;
mNextAudioSession.reset();
mIsProcessingChannels = true;
if (!runSession(joinSession)) //suspends
{
mIsProcessingChannels = false;
LL_DEBUGS("Voice") << "runSession returned false; leaving inner loop" << LL_ENDL;
break;
}
else
{
mIsProcessingChannels = false;
LL_DEBUGS("Voice")
<< "runSession returned true to inner loop"
<< " RelogRequested=" << mRelogRequested
<< " VoiceEnabled=" << mVoiceEnabled
<< LL_ENDL;
}
}
else
catch (const LLCoros::Stop&)
{
mIsProcessingChannels = false;
LL_DEBUGS("Voice")
<< "runSession returned true to inner loop"
<< " RelogRequested=" << mRelogRequested
<< " VoiceEnabled=" << mVoiceEnabled
LL_DEBUGS("LLVivoxVoiceClient") << "Received a shutdown exception" << LL_ENDL;
}
catch (const LLContinueError&)
{
LOG_UNHANDLED_EXCEPTION("LLVivoxVoiceClient");
}
catch (...)
{
// Ideally for Windows need to log SEH exception instead or to set SEH
// handlers but bugsplat shows local variables for windows, which should
// be enough
LL_WARNS("Voice") << "voiceControlStateMachine crashed in state VOICE_CHANNEL_STATE_PROCESS_CHANNEL"
<< " mRelogRequested " << mRelogRequested
<< " mVoiceEnabled " << mVoiceEnabled
<< " mIsProcessingChannels " << mIsProcessingChannels
<< " mProcessChannels " << mProcessChannels
<< LL_ENDL;
throw;
}
}