diff options
Diffstat (limited to 'indra/llmessage')
| -rw-r--r-- | indra/llmessage/llavatarnamecache.cpp | 6 | ||||
| -rw-r--r-- | indra/llmessage/llcoproceduremanager.cpp | 5 | ||||
| -rw-r--r-- | indra/llmessage/llcorehttputil.cpp | 42 | ||||
| -rw-r--r-- | indra/llmessage/llcorehttputil.h | 4 | 
4 files changed, 54 insertions, 3 deletions
| diff --git a/indra/llmessage/llavatarnamecache.cpp b/indra/llmessage/llavatarnamecache.cpp index 846549b368..87fd5a154f 100644 --- a/indra/llmessage/llavatarnamecache.cpp +++ b/indra/llmessage/llavatarnamecache.cpp @@ -253,7 +253,9 @@ void LLAvatarNameCache::handleAvNameCacheSuccess(const LLSD &data, const LLSD &h          {              const LLUUID& agent_id = *it; -            LL_WARNS("AvNameCache") << "LLAvatarNameResponder::result " +            // If cap fails, response can contain a lot of names, +            // don't spam too much +            LL_DEBUGS("AvNameCache") << "LLAvatarNameResponder::result "                  << "failed id " << agent_id                  << LL_ENDL; @@ -272,7 +274,7 @@ void LLAvatarNameCache::handleAgentError(const LLUUID& agent_id)  	if (existing == mCache.end())      {          // there is no existing cache entry, so make a temporary name from legacy -        LL_WARNS("AvNameCache") << "LLAvatarNameCache get legacy for agent " +        LL_DEBUGS("AvNameCache") << "LLAvatarNameCache get legacy for agent "  								<< agent_id << LL_ENDL;          gCacheName->get(agent_id, false,  // legacy compatibility                          boost::bind(&LLAvatarNameCache::legacyNameFetch, _1, _2, _3)); diff --git a/indra/llmessage/llcoproceduremanager.cpp b/indra/llmessage/llcoproceduremanager.cpp index be014e7b1e..d310cefd1e 100644 --- a/indra/llmessage/llcoproceduremanager.cpp +++ b/indra/llmessage/llcoproceduremanager.cpp @@ -47,7 +47,10 @@ static const std::map<std::string, U32> DefaultPoolSizes{  };  static const U32 DEFAULT_POOL_SIZE = 5; -const U32 LLCoprocedureManager::DEFAULT_QUEUE_SIZE = 4096; +// SL-14399: When we teleport to a brand-new simulator, the coprocedure queue +// gets absolutely slammed with fetch requests. Make this queue effectively +// unlimited. +const U32 LLCoprocedureManager::DEFAULT_QUEUE_SIZE = 1024*1024;  //=========================================================================  class LLCoprocedurePool: private boost::noncopyable diff --git a/indra/llmessage/llcorehttputil.cpp b/indra/llmessage/llcorehttputil.cpp index c8c9280029..6b9ce54c92 100644 --- a/indra/llmessage/llcorehttputil.cpp +++ b/indra/llmessage/llcorehttputil.cpp @@ -1336,6 +1336,48 @@ void HttpCoroutineAdapter::trivialPostCoro(std::string url, LLCore::HttpRequest:  } +/*static*/ +void HttpCoroutineAdapter::callbackHttpDel(const std::string &url, LLCore::HttpRequest::policy_t policyId, completionCallback_t success, +                                           completionCallback_t failure) +{ +    LLCoros::instance().launch("HttpCoroutineAdapter::genericDelCoro", +                               boost::bind(&HttpCoroutineAdapter::trivialDelCoro, url, policyId, success, failure)); +} + +/*static*/ +void HttpCoroutineAdapter::trivialDelCoro(std::string url, LLCore::HttpRequest::policy_t policyId, completionCallback_t success, +                                          completionCallback_t failure) +{ +    LLCoreHttpUtil::HttpCoroutineAdapter::ptr_t httpAdapter(new LLCoreHttpUtil::HttpCoroutineAdapter("genericDelCoro", policyId)); +    LLCore::HttpRequest::ptr_t                  httpRequest(new LLCore::HttpRequest); +    LLCore::HttpOptions::ptr_t                  httpOpts(new LLCore::HttpOptions); + +    httpOpts->setWantHeaders(true); + +    LL_INFOS("HttpCoroutineAdapter", "genericDelCoro") << "Generic DEL for " << url << LL_ENDL; + +    LLSD result = httpAdapter->deleteAndSuspend(httpRequest, url, httpOpts); + +    LLSD               httpResults = result[LLCoreHttpUtil::HttpCoroutineAdapter::HTTP_RESULTS]; +    LLCore::HttpStatus status      = LLCoreHttpUtil::HttpCoroutineAdapter::getStatusFromLLSD(httpResults); + +    if (!status) +    { +        if (failure) +        { +            failure(httpResults); +        } +    } +    else +    { +        if (success) +        { +            success(result); +        } +    } +} + +  } // end namespace LLCoreHttpUtil diff --git a/indra/llmessage/llcorehttputil.h b/indra/llmessage/llcorehttputil.h index 6f0b865f83..8df1425f2a 100644 --- a/indra/llmessage/llcorehttputil.h +++ b/indra/llmessage/llcorehttputil.h @@ -608,6 +608,9 @@ public:          callbackHttpPost(url, LLCore::HttpRequest::DEFAULT_POLICY_ID, postData, success, failure);      } +    static void callbackHttpDel(const std::string &url, LLCore::HttpRequest::policy_t policyId, completionCallback_t success = NULL, +                            completionCallback_t failure = NULL); +      /// Generic Get and post routines for HTTP via coroutines.      /// These static methods do all required setup for the GET or POST operation.      /// When the operation completes successfully they will put the success message in the log at INFO level,  @@ -669,6 +672,7 @@ private:      static void trivialGetCoro(std::string url, LLCore::HttpRequest::policy_t policyId, completionCallback_t success, completionCallback_t failure);      static void trivialPostCoro(std::string url, LLCore::HttpRequest::policy_t policyId, LLSD postData, completionCallback_t success, completionCallback_t failure); +    static void trivialDelCoro(std::string url, LLCore::HttpRequest::policy_t policyId, completionCallback_t success, completionCallback_t failure);      void checkDefaultHeaders(LLCore::HttpHeaders::ptr_t &headers); | 
