diff options
Diffstat (limited to 'indra/llmessage')
| -rw-r--r-- | indra/llmessage/llassetstorage.h | 2 | ||||
| -rw-r--r-- | indra/llmessage/llavatarnamecache.cpp | 50 | ||||
| -rw-r--r-- | indra/llmessage/llcoproceduremanager.cpp | 8 | ||||
| -rw-r--r-- | indra/llmessage/llcoproceduremanager.h | 3 | 
4 files changed, 39 insertions, 24 deletions
| diff --git a/indra/llmessage/llassetstorage.h b/indra/llmessage/llassetstorage.h index c799d8eefc..7e4572f50f 100644 --- a/indra/llmessage/llassetstorage.h +++ b/indra/llmessage/llassetstorage.h @@ -262,7 +262,7 @@ public:      virtual void logAssetStorageInfo() = 0; -	void checkForTimeouts(); +	virtual void checkForTimeouts();  	void getEstateAsset(const LLHost &object_sim, const LLUUID &agent_id, const LLUUID &session_id,  									const LLUUID &asset_id, LLAssetType::EType atype, EstateAssetType etype, diff --git a/indra/llmessage/llavatarnamecache.cpp b/indra/llmessage/llavatarnamecache.cpp index 7380df041d..c67f59bc0c 100644 --- a/indra/llmessage/llavatarnamecache.cpp +++ b/indra/llmessage/llavatarnamecache.cpp @@ -145,10 +145,10 @@ void LLAvatarNameCache::requestAvatarNameCache_(std::string url, std::vector<LLU      }      LLSD httpResults; +    bool success = true;      try      { -        bool success = true;          LLCoreHttpUtil::HttpCoroutineAdapter httpAdapter("NameCache", sHttpPolicy);          LLSD results = httpAdapter.getAndSuspend(sHttpRequest, url); @@ -163,35 +163,47 @@ void LLAvatarNameCache::requestAvatarNameCache_(std::string url, std::vector<LLU          else          {              httpResults = results["http_result"]; -            success = httpResults["success"].asBoolean(); -            if (!success) +            if (!httpResults.isMap())              { -                LL_WARNS("AvNameCache") << "Error result from LLCoreHttpUtil::HttpCoroHandler. Code " -                    << httpResults["status"] << ": '" << httpResults["message"] << "'" << LL_ENDL; +                success = false; +                LL_WARNS("AvNameCache") << " Invalid http_result returned from LLCoreHttpUtil::HttpCoroHandler." << LL_ENDL;              } -        } - -        if (!success) -        {   // on any sort of failure add dummy records for any agent IDs  -            // in this request that we do not have cached already -            std::vector<LLUUID>::const_iterator it = agentIds.begin(); -            for ( ; it != agentIds.end(); ++it) +            else              { -                const LLUUID& agent_id = *it; -                LLAvatarNameCache::getInstance()->handleAgentError(agent_id); +                success = httpResults["success"].asBoolean(); +                if (!success) +                { +                    LL_WARNS("AvNameCache") << "Error result from LLCoreHttpUtil::HttpCoroHandler. Code " +                        << httpResults["status"] << ": '" << httpResults["message"] << "'" << LL_ENDL; +                }              } -            return;          } -        LLAvatarNameCache::getInstance()->handleAvNameCacheSuccess(results, httpResults); +        if (LLAvatarNameCache::instanceExists()) +        { +            if (!success) +            {   // on any sort of failure add dummy records for any agent IDs  +                // in this request that we do not have cached already +                std::vector<LLUUID>::const_iterator it = agentIds.begin(); +                for (; it != agentIds.end(); ++it) +                { +                    const LLUUID& agent_id = *it; +                    LLAvatarNameCache::getInstance()->handleAgentError(agent_id); +                } +                return; +            } +            LLAvatarNameCache::getInstance()->handleAvNameCacheSuccess(results, httpResults); +        }      }      catch (...)      {          LOG_UNHANDLED_EXCEPTION(STRINGIZE("coroutine " << LLCoros::getName() -                                          << "('" << url << "', " << agentIds.size() -                                          << " http result: " << httpResults.asString() -                                          << " Agent Ids)")); +                                          << "('" << url << "', " +                                          << agentIds.size() << "Agent Ids," +                                          << " http result: " << S32(success) +                                          << " has response: " << S32(httpResults.size()) +                                          << ")"));          throw;      }  } diff --git a/indra/llmessage/llcoproceduremanager.cpp b/indra/llmessage/llcoproceduremanager.cpp index a4fe3a2a8e..4d76dacdf7 100644 --- a/indra/llmessage/llcoproceduremanager.cpp +++ b/indra/llmessage/llcoproceduremanager.cpp @@ -47,7 +47,7 @@ static const std::map<std::string, U32> DefaultPoolSizes{  };  static const U32 DEFAULT_POOL_SIZE = 5; -static const U32 DEFAULT_QUEUE_SIZE = 4096; +const U32 LLCoprocedureManager::DEFAULT_QUEUE_SIZE = 4096;  //=========================================================================  class LLCoprocedurePool: private boost::noncopyable @@ -194,7 +194,7 @@ void LLCoprocedureManager::setPropertyMethods(SettingQuery_t queryfn, SettingUpd      mPropertyDefineFn = updatefn;      // workaround until we get mutex into initializePool -    initializePool("VAssetStorage"); +    initializePool("AssetStorage");      initializePool("Upload");  } @@ -281,7 +281,7 @@ LLCoprocedurePool::LLCoprocedurePool(const std::string &poolName, size_t size):      mPoolSize(size),      mActiveCoprocsCount(0),      mPending(0), -    mPendingCoprocs(boost::make_shared<CoprocQueue_t>(DEFAULT_QUEUE_SIZE)), +    mPendingCoprocs(boost::make_shared<CoprocQueue_t>(LLCoprocedureManager::DEFAULT_QUEUE_SIZE)),      mHTTPPolicy(LLCore::HttpRequest::DEFAULT_POLICY_ID),      mCoroMapping()  { @@ -332,7 +332,7 @@ LLCoprocedurePool::LLCoprocedurePool(const std::string &poolName, size_t size):          mCoroMapping.insert(CoroAdapterMap_t::value_type(pooledCoro, httpAdapter));      } -    LL_INFOS("CoProcMgr") << "Created coprocedure pool named \"" << mPoolName << "\" with " << size << " items, queue max " << DEFAULT_QUEUE_SIZE << LL_ENDL; +    LL_INFOS("CoProcMgr") << "Created coprocedure pool named \"" << mPoolName << "\" with " << size << " items, queue max " << LLCoprocedureManager::DEFAULT_QUEUE_SIZE << LL_ENDL;  }  LLCoprocedurePool::~LLCoprocedurePool()  diff --git a/indra/llmessage/llcoproceduremanager.h b/indra/llmessage/llcoproceduremanager.h index 70204ba02b..d5557c129f 100644 --- a/indra/llmessage/llcoproceduremanager.h +++ b/indra/llmessage/llcoproceduremanager.h @@ -91,6 +91,9 @@ private:      SettingQuery_t mPropertyQueryFn;      SettingUpdate_t mPropertyDefineFn; + +public: +    static const U32 DEFAULT_QUEUE_SIZE;  };  #endif | 
