diff options
author | Andrey Kleshchev <andreykproductengine@lindenlab.com> | 2023-11-23 00:57:46 +0200 |
---|---|---|
committer | akleshchev <117672381+akleshchev@users.noreply.github.com> | 2023-11-23 17:57:19 +0200 |
commit | a1fed466f0cc0c08d3cdcba88e02230c94e763b0 (patch) | |
tree | efa0d5d694ff271f49ea8e3b43a62362d42a5314 /indra/llcommon/llevents.h | |
parent | 7dbe4540196dcae10d728f8a15f3fa7c9225a650 (diff) |
SL-17434 Crash clearing LLEventPumps
We actively use event pumps's connections in threads, make sure nothing
modifies list of connections during reset.
And in case this doesn't fix the issue list affected pump before it
crashes to have a better idea of what is going on.
Diffstat (limited to 'indra/llcommon/llevents.h')
-rw-r--r-- | indra/llcommon/llevents.h | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/indra/llcommon/llevents.h b/indra/llcommon/llevents.h index ae6e5aabc9..b5c4e58c9c 100644 --- a/indra/llcommon/llevents.h +++ b/indra/llcommon/llevents.h @@ -293,7 +293,7 @@ public: * Reset all known LLEventPump instances * workaround for DEV-35406 crash on shutdown */ - void reset(); + void reset(bool log_pumps = false); private: friend class LLEventPump; @@ -519,7 +519,7 @@ public: /// Get the LLBoundListener associated with the passed name (dummy /// LLBoundListener if not found) - virtual LLBoundListener getListener(const std::string& name) const; + virtual LLBoundListener getListener(const std::string& name); /** * Instantiate one of these to block an existing connection: * @code @@ -562,6 +562,7 @@ private: LLHandle<LLEventPumps> mRegistry; std::string mName; + LLMutex mConnectionListMutex; protected: virtual LLBoundListener listen_impl(const std::string& name, const LLEventListener&, |