diff options
author | Andrey Kleshchev <andreykproductengine@lindenlab.com> | 2020-07-06 20:11:43 +0300 |
---|---|---|
committer | Andrey Kleshchev <andreykproductengine@lindenlab.com> | 2020-07-06 20:13:01 +0300 |
commit | 52ff68ce5127538e14dd1408bbd9568b397f3485 (patch) | |
tree | a15e0158a0bd10c88c9e326c8da79c6afa81f053 /indra/llplugin | |
parent | d585a809f9029347a798860bce71ea4399c705f3 (diff) |
SL-13497 Sometimes plugin process isn't terminated correctly.
Diffstat (limited to 'indra/llplugin')
-rw-r--r-- | indra/llplugin/llpluginprocessparent.cpp | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/indra/llplugin/llpluginprocessparent.cpp b/indra/llplugin/llpluginprocessparent.cpp index eb6cb1b503..7d18bae947 100644 --- a/indra/llplugin/llpluginprocessparent.cpp +++ b/indra/llplugin/llpluginprocessparent.cpp @@ -152,8 +152,18 @@ void LLPluginProcessParent::shutdown() mapInstances_t::iterator it; for (it = sInstances.begin(); it != sInstances.end(); ++it) { - (*it).second->setState(STATE_GOODBYE); - (*it).second->idle(); + EState state = (*it).second->mState; + if (state != STATE_CLEANUP + || state != STATE_EXITING + || state != STATE_DONE + || state != STATE_ERROR) + { + (*it).second->setState(STATE_GOODBYE); + } + if (state != STATE_DONE) + { + (*it).second->idle(); + } } sInstances.clear(); } |