summaryrefslogtreecommitdiff
path: root/indra/newview/llvoicewebrtc.h
diff options
context:
space:
mode:
authorRoxie Linden <roxie@lindenlab.com>2024-05-16 12:00:45 -0700
committerRoxie Linden <roxie@lindenlab.com>2024-05-16 12:00:45 -0700
commitc6e147ff224e1adc9a498d4a06ad54fff710d704 (patch)
treecb97291843f7784b33d2b3e369a91bd8b09f6e29 /indra/newview/llvoicewebrtc.h
parent57b99aec74783c323738bd5a130c82c8dbf379c2 (diff)
Race condition resulted in close causing removal of peer connection while other jobs might be using it.
Diffstat (limited to 'indra/newview/llvoicewebrtc.h')
-rw-r--r--indra/newview/llvoicewebrtc.h7
1 files changed, 5 insertions, 2 deletions
diff --git a/indra/newview/llvoicewebrtc.h b/indra/newview/llvoicewebrtc.h
index c417dfe329..fcd4c04e98 100644
--- a/indra/newview/llvoicewebrtc.h
+++ b/indra/newview/llvoicewebrtc.h
@@ -585,6 +585,7 @@ class LLVoiceWebRTCConnection :
void OnIceCandidate(const llwebrtc::LLWebRTCIceCandidate &candidate) override;
void OnOfferAvailable(const std::string &sdp) override;
void OnRenegotiationNeeded() override;
+ void OnPeerConnectionClosed() override;
void OnAudioEstablished(llwebrtc::LLWebRTCAudioInterface *audio_interface) override;
//@}
@@ -640,13 +641,15 @@ class LLVoiceWebRTCConnection :
VOICE_STATE_DISCONNECT = 0x100,
VOICE_STATE_WAIT_FOR_EXIT = 0x200,
VOICE_STATE_SESSION_EXIT = 0x400,
- VOICE_STATE_SESSION_STOPPING = 0x780
+ VOICE_STATE_WAIT_FOR_CLOSE = 0x800,
+ VOICE_STATE_CLOSED = 0x1000,
+ VOICE_STATE_SESSION_STOPPING = 0x1F80
} EVoiceConnectionState;
EVoiceConnectionState mVoiceConnectionState;
LL::WorkQueue::weak_t mMainQueue;
- void setVoiceConnectionState(EVoiceConnectionState new_voice_connection_state)
+ void setVoiceConnectionState(EVoiceConnectionState new_voice_connection_state)
{
if (new_voice_connection_state & VOICE_STATE_SESSION_STOPPING)
{