diff options
author | Xiaohong Bao <bao@lindenlab.com> | 2010-05-28 17:05:06 -0600 |
---|---|---|
committer | Xiaohong Bao <bao@lindenlab.com> | 2010-05-28 17:05:06 -0600 |
commit | c1170cfa48ec404556fe65b171b98566d40e1dab (patch) | |
tree | 17287c63f3a4fb426cd62b672ffd11cf83a56e43 | |
parent | 28d4fe68f8a44924df294473471b47ccb11a2eb1 (diff) |
A possible fix for EXT-7032: [crashhunters] crash in libcurl background thread on windows.
killed accessing the asset server for map textures after http returns 404.
-rw-r--r-- | indra/newview/lltexturefetch.cpp | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/indra/newview/lltexturefetch.cpp b/indra/newview/lltexturefetch.cpp index 913a0b92c2..2e1e4ca238 100644 --- a/indra/newview/lltexturefetch.cpp +++ b/indra/newview/lltexturefetch.cpp @@ -260,6 +260,7 @@ private: BOOL mHaveAllData; BOOL mInLocalCache; bool mCanUseHTTP ; + bool mCanUseNET ; //can get from asset server. S32 mHTTPFailCount; S32 mRetryAttempt; S32 mActiveCount; @@ -422,6 +423,8 @@ LLTextureFetchWorker::LLTextureFetchWorker(LLTextureFetch* fetcher, mTotalPackets(0), mImageCodec(IMG_CODEC_INVALID) { + mCanUseNET = mUrl.empty() ; + calcWorkPriority(); mType = host.isOk() ? LLImageBase::TYPE_AVATAR_BAKE : LLImageBase::TYPE_NORMAL; // llinfos << "Create: " << mID << " mHost:" << host << " Discard=" << discard << llendl; @@ -900,13 +903,16 @@ bool LLTextureFetchWorker::doWork(S32 param) if (mGetStatus == HTTP_NOT_FOUND) { mHTTPFailCount = max_attempts = 1; // Don't retry - llwarns << "Texture missing from server (404): " << mUrl << llendl; + //llwarns << "Texture missing from server (404): " << mUrl << llendl; //roll back to try UDP - mState = INIT ; - mCanUseHTTP = false ; - setPriority(LLWorkerThread::PRIORITY_HIGH | mWorkPriority); - return false ; + if(mCanUseNET) + { + mState = INIT ; + mCanUseHTTP = false ; + setPriority(LLWorkerThread::PRIORITY_HIGH | mWorkPriority); + return false ; + } } else if (mGetStatus == HTTP_SERVICE_UNAVAILABLE) { |