summaryrefslogtreecommitdiff
path: root/indra/llplugin
diff options
context:
space:
mode:
authorAndrey Kleshchev <andreykproductengine@lindenlab.com>2020-08-10 20:44:52 +0300
committerAndrey Kleshchev <andreykproductengine@lindenlab.com>2020-08-10 20:44:52 +0300
commit8213cc896c74ca08ee231aa557eac302445c933e (patch)
treecf8ec39ebf2b88124ea3fa0ebee6fc7788231821 /indra/llplugin
parent6abf2ca503949345f12da03ed76848d703158f6f (diff)
SL-3704 Give plugins some time to terminate
requestExit() doesn't close CEF, command sets CEF into closing state which will be processed on update()
Diffstat (limited to 'indra/llplugin')
-rw-r--r--indra/llplugin/llpluginprocesschild.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/indra/llplugin/llpluginprocesschild.cpp b/indra/llplugin/llpluginprocesschild.cpp
index c5304d2ccf..d93ec8cf4b 100644
--- a/indra/llplugin/llpluginprocesschild.cpp
+++ b/indra/llplugin/llpluginprocesschild.cpp
@@ -225,6 +225,18 @@ void LLPluginProcessChild::idle(void)
}
setState(STATE_UNLOADED);
}
+
+ if (mInstance)
+ {
+ // Provide some time to the plugin
+ // example: CEF on "cleanup" sets shutdown request, but it still needs idle loop to actually shutdown
+ LLPluginMessage message("base", "idle");
+ message.setValueReal("time", PLUGIN_IDLE_SECONDS);
+ sendMessageToPlugin(message);
+
+ mInstance->idle();
+ }
+
break;
case STATE_UNLOADED: