summaryrefslogtreecommitdiff
path: root/indra
diff options
context:
space:
mode:
authorAndrey Kleshchev <andreykproductengine@lindenlab.com>2021-10-08 23:56:43 +0300
committerAndrey Kleshchev <andreykproductengine@lindenlab.com>2021-10-08 23:56:43 +0300
commitc1943e5efb18a0786a538237eee4bee8a7330e56 (patch)
tree60a32b603eebac15c162de9f826585880771d5f0 /indra
parent404c498795c0bbc2ef86a6436f700986e4dbc651 (diff)
SL-16161 Don't process new plugin messages on shutdown
Some pending messages might try to update non-existing view or cause a pop up, neither should be avaliable by this point, so just don't process them
Diffstat (limited to 'indra')
-rw-r--r--indra/llplugin/llpluginprocessparent.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/indra/llplugin/llpluginprocessparent.cpp b/indra/llplugin/llpluginprocessparent.cpp
index 73327ce2ee..7a704b71f3 100644
--- a/indra/llplugin/llpluginprocessparent.cpp
+++ b/indra/llplugin/llpluginprocessparent.cpp
@@ -192,6 +192,7 @@ void LLPluginProcessParent::shutdown()
&& state != STATE_ERROR)
{
(*it).second->setState(STATE_GOODBYE);
+ (*it).second->mOwner = NULL;
}
if (state != STATE_DONE)
{
@@ -407,7 +408,10 @@ void LLPluginProcessParent::idle(void)
mMessagePipe->pumpOutput();
// Only do input processing here if this instance isn't in a pollset.
- if(!mPolledInput)
+ // If we are shutting down plugin, owner is null and we can't process
+ // input, we are here only to send shutdown_plugin message
+ if(!mPolledInput
+ && mState != STATE_GOODBYE)
{
mMessagePipe->pumpInput();
}