@@ -2024,23 +2024,48 @@ bool LLVivoxVoiceClient::waitForChannel()
2024
2024
llcoro::suspend ();
2025
2025
break ;
2026
2026
}
2027
- sessionStatePtr_t joinSession = mNextAudioSession ;
2028
- mNextAudioSession .reset ();
2029
- mIsProcessingChannels = true ;
2030
- if (!runSession (joinSession)) // suspends
2027
+
2028
+ try
2031
2029
{
2032
- mIsProcessingChannels = false ;
2033
- LL_DEBUGS (" Voice" ) << " runSession returned false; leaving inner loop" << LL_ENDL;
2034
- break ;
2030
+ sessionStatePtr_t joinSession = mNextAudioSession ;
2031
+ mNextAudioSession .reset ();
2032
+ mIsProcessingChannels = true ;
2033
+ if (!runSession (joinSession)) // suspends
2034
+ {
2035
+ mIsProcessingChannels = false ;
2036
+ LL_DEBUGS (" Voice" ) << " runSession returned false; leaving inner loop" << LL_ENDL;
2037
+ break ;
2038
+ }
2039
+ else
2040
+ {
2041
+ mIsProcessingChannels = false ;
2042
+ LL_DEBUGS (" Voice" )
2043
+ << " runSession returned true to inner loop"
2044
+ << " RelogRequested=" << mRelogRequested
2045
+ << " VoiceEnabled=" << mVoiceEnabled
2046
+ << LL_ENDL;
2047
+ }
2035
2048
}
2036
- else
2049
+ catch (const LLCoros::Stop&)
2050
+ {
2051
+ LL_DEBUGS (" LLVivoxVoiceClient" ) << " Received a shutdown exception" << LL_ENDL;
2052
+ }
2053
+ catch (const LLContinueError&)
2054
+ {
2055
+ LOG_UNHANDLED_EXCEPTION (" LLVivoxVoiceClient" );
2056
+ }
2057
+ catch (...)
2037
2058
{
2038
- mIsProcessingChannels = false ;
2039
- LL_DEBUGS (" Voice" )
2040
- << " runSession returned true to inner loop"
2041
- << " RelogRequested=" << mRelogRequested
2042
- << " VoiceEnabled=" << mVoiceEnabled
2059
+ // Ideally for Windows need to log SEH exception instead or to set SEH
2060
+ // handlers but bugsplat shows local variables for windows, which should
2061
+ // be enough
2062
+ LL_WARNS (" Voice" ) << " voiceControlStateMachine crashed in state VOICE_CHANNEL_STATE_PROCESS_CHANNEL"
2063
+ << " mRelogRequested " << mRelogRequested
2064
+ << " mVoiceEnabled " << mVoiceEnabled
2065
+ << " mIsProcessingChannels " << mIsProcessingChannels
2066
+ << " mProcessChannels " << mProcessChannels
2043
2067
<< LL_ENDL;
2068
+ throw ;
2044
2069
}
2045
2070
}
2046
2071
0 commit comments