summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRider Linden <rider@lindenlab.com>2019-03-18 14:05:02 -0700
committerRider Linden <rider@lindenlab.com>2019-03-18 14:05:02 -0700
commitee68e52dc83d5f00acb4da96aca6148ffbd89920 (patch)
tree9feb6d5290fb7b71d5cdd50d8909e5d1d349f859
parent179c412a6d1476f17873acc73e54ea8a4f191748 (diff)
parent5f01cf3b1c76a53a576a10820e2cb366d1e76714 (diff)
Merge
-rw-r--r--indra/llcommon/llevents.h12
-rw-r--r--indra/newview/llvoicevivox.cpp5
2 files changed, 12 insertions, 5 deletions
diff --git a/indra/llcommon/llevents.h b/indra/llcommon/llevents.h
index 5d60c63810..62d97007ac 100644
--- a/indra/llcommon/llevents.h
+++ b/indra/llcommon/llevents.h
@@ -582,11 +582,12 @@ public:
/// Generate a distinct name for a listener -- see listen()
static std::string inventName(const std::string& pfx="listener");
-private:
- friend class LLEventPumps;
/// flush queued events
virtual void flush() {}
+private:
+ friend class LLEventPumps;
+
virtual void reset();
@@ -675,12 +676,14 @@ public:
virtual ~LLEventMailDrop() {}
/// Post an event to all listeners
- virtual bool post(const LLSD& event);
+ virtual bool post(const LLSD& event) override;
+ /// Remove any history stored in the mail drop.
+ virtual void flush() override { mEventHistory.clear(); LLEventStream::flush(); };
protected:
virtual LLBoundListener listen_impl(const std::string& name, const LLEventListener&,
const NameList& after,
- const NameList& before);
+ const NameList& before) override;
private:
typedef std::list<LLSD> EventList;
@@ -703,7 +706,6 @@ public:
/// Post an event to all listeners
virtual bool post(const LLSD& event);
-private:
/// flush queued events
virtual void flush();
diff --git a/indra/newview/llvoicevivox.cpp b/indra/newview/llvoicevivox.cpp
index cf40058c34..0d3f65502a 100644
--- a/indra/newview/llvoicevivox.cpp
+++ b/indra/newview/llvoicevivox.cpp
@@ -1460,6 +1460,11 @@ bool LLVivoxVoiceClient::addAndJoinSession(const sessionStatePtr_t &nextSession)
LLSD timeoutResult(LLSDMap("session", "timeout"));
+ // We are about to start a whole new session. Anything that MIGHT still be in our
+ // maildrop is going to be stale and cause us much wailing and gnashing of teeth.
+ // Just flush it all out and start new.
+ voicePump.flush();
+
// 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.