diff options
Diffstat (limited to 'indra/newview/lleventpoll.cpp')
-rw-r--r-- | indra/newview/lleventpoll.cpp | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/indra/newview/lleventpoll.cpp b/indra/newview/lleventpoll.cpp index 299fffd9ab..4b5fd8a758 100644 --- a/indra/newview/lleventpoll.cpp +++ b/indra/newview/lleventpoll.cpp @@ -166,6 +166,14 @@ namespace Details // LL_DEBUGS("LLEventPollImpl::eventPollCoro") << "<" << counter << "> result = " // << LLSDXMLStreamer(result) << LL_ENDL; + if (gDisconnected) + { + // Lost connection or disconnected during quit, don't process sim/region update + // messages, they might populate some cleaned up classes (LLWorld, region and object list) + LL_INFOS("LLEventPollImpl") << "Dropping event messages" << LL_ENDL; + break; + } + LLSD httpResults = result["http_result"]; LLCore::HttpStatus status = LLCoreHttpUtil::HttpCoroutineAdapter::getStatusFromLLSD(httpResults); @@ -210,7 +218,7 @@ namespace Details llcoro::suspendUntilTimeout(waitToRetry); - if (mDone) + if (mDone || gDisconnected) break; LL_INFOS("LLEventPollImpl") << "<" << counter << "> About to retry request." << LL_ENDL; continue; |