summaryrefslogtreecommitdiff
path: root/indra/newview
diff options
context:
space:
mode:
authorRider Linden <rider@lindenlab.com>2016-04-19 14:10:57 -0700
committerRider Linden <rider@lindenlab.com>2016-04-19 14:10:57 -0700
commit86a3e1a3dc59c964d78c509e99a59d52eea32b34 (patch)
tree7a01c4546b020ebdc49a3007244529d017bd1ac6 /indra/newview
parente7f03a77bfe4173cd33b5242eb27aa9469c4702c (diff)
MAINT-6336: Crasher on disconnect in DDoS.
Diffstat (limited to 'indra/newview')
-rwxr-xr-xindra/newview/llvoicevivox.cpp5
1 files changed, 2 insertions, 3 deletions
diff --git a/indra/newview/llvoicevivox.cpp b/indra/newview/llvoicevivox.cpp
index e015d4fa5e..518b5bdc65 100755
--- a/indra/newview/llvoicevivox.cpp
+++ b/indra/newview/llvoicevivox.cpp
@@ -1223,15 +1223,14 @@ bool LLVivoxVoiceClient::addAndJoinSession(const sessionStatePtr_t &nextSession)
LLSD timeoutResult;
timeoutResult["session"] = LLSD::String("timeout");
- LLEventTimeout voicePumpTimeout(voicePump);
-
-
// It appears that I need to wait for BOTH the SessionGroup.AddSession response and the SessionStateChangeEvent with state 4
// before continuing from this state. They can happen in either order, and if I don't wait for both, things can get stuck.
// For now, the SessionGroup.AddSession response handler sets mSessionHandle and the SessionStateChangeEvent handler transitions to stateSessionJoined.
// This is a cheap way to make sure both have happened before proceeding.
do
{
+ LLEventTimeout voicePumpTimeout(voicePump);
+
voicePumpTimeout.eventAfter(SESSION_JOIN_TIMEOUT, timeoutResult);
result = llcoro::suspendUntilEventOn(voicePumpTimeout);