diff options
author | Andrey Kleshchev <andreykproductengine@lindenlab.com> | 2023-04-28 23:37:34 +0300 |
---|---|---|
committer | Andrey Kleshchev <andreykproductengine@lindenlab.com> | 2023-04-28 23:41:25 +0300 |
commit | 03c263a1cdd88ec5967e751cba8640edf9896e51 (patch) | |
tree | e8b3ef45cccc142be3ef39058b6da54abaa83b94 | |
parent | 80bfc56ff070614fee5b353056076ebed90f9039 (diff) |
SL-19533 Fix 'fetching' state timeout
-rw-r--r-- | indra/newview/app_settings/settings.xml | 11 | ||||
-rw-r--r-- | indra/newview/llaisapi.cpp | 3 | ||||
-rw-r--r-- | indra/newview/llaisapi.h | 1 | ||||
-rw-r--r-- | indra/newview/llinventorymodelbackgroundfetch.cpp | 6 | ||||
-rw-r--r-- | indra/newview/llviewerinventory.cpp | 11 |
5 files changed, 27 insertions, 5 deletions
diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index a2a1b3f117..43d3f63a34 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -15283,6 +15283,17 @@ <key>Value</key> <integer>1</integer> </map> + <key>BatchSizeAIS3</key> + <map> + <key>Comment</key> + <string>Amount of folder ais packs into category subset request</string> + <key>Persist</key> + <integer>1</integer> + <key>Type</key> + <string>S32</string> + <key>Value</key> + <integer>20</integer> + </map> <key>PoolSizeAIS</key> <map> <key>Comment</key> diff --git a/indra/newview/llaisapi.cpp b/indra/newview/llaisapi.cpp index 951860e39d..b09b8ec517 100644 --- a/indra/newview/llaisapi.cpp +++ b/indra/newview/llaisapi.cpp @@ -46,6 +46,7 @@ //========================================================================= const std::string AISAPI::INVENTORY_CAP_NAME("InventoryAPIv3"); const std::string AISAPI::LIBRARY_CAP_NAME("LibraryAPIv3"); +const S32 AISAPI::HTTP_TIMEOUT = 180; std::list<AISAPI::ais_query_item_t> AISAPI::sPostponedQuery; @@ -823,7 +824,7 @@ void AISAPI::InvokeAISCommandCoro(LLCoreHttpUtil::HttpCoroutineAdapter::ptr_t ht LLCore::HttpRequest::ptr_t httpRequest(new LLCore::HttpRequest()); LLCore::HttpHeaders::ptr_t httpHeaders; - httpOptions->setTimeout(180); + httpOptions->setTimeout(HTTP_TIMEOUT); LL_DEBUGS("Inventory") << "Request url: " << url << LL_ENDL; diff --git a/indra/newview/llaisapi.h b/indra/newview/llaisapi.h index 6270a34081..973c82a847 100644 --- a/indra/newview/llaisapi.h +++ b/indra/newview/llaisapi.h @@ -38,6 +38,7 @@ class AISAPI { public: + static const S32 HTTP_TIMEOUT; typedef enum { INVENTORY, LIBRARY diff --git a/indra/newview/llinventorymodelbackgroundfetch.cpp b/indra/newview/llinventorymodelbackgroundfetch.cpp index 5f7950df08..8f1012868f 100644 --- a/indra/newview/llinventorymodelbackgroundfetch.cpp +++ b/indra/newview/llinventorymodelbackgroundfetch.cpp @@ -729,10 +729,12 @@ void LLInventoryModelBackgroundFetch::bulkFetchViaAis(const FetchQueueInfo& fetc gInventory.getDirectDescendentsOf(cat_id, categories, items); LLViewerInventoryCategory::EFetchType target_state = LLViewerInventoryCategory::FETCH_RECURSIVE; - // technically limit is 'as many as you can put into url', but for now stop at 10 - const S32 batch_limit = 20; bool content_done = true; + // Top limit is 'as many as you can put into url' + static LLCachedControl<S32> ais_batch(gSavedSettings, "BatchSizeAIS3", 20); + S32 batch_limit = llclamp(ais_batch(), 1, 40); + for (LLInventoryModel::cat_array_t::iterator it = categories->begin(); it != categories->end(); ++it) diff --git a/indra/newview/llviewerinventory.cpp b/indra/newview/llviewerinventory.cpp index 96f0b500a0..80e4f5f6d5 100644 --- a/indra/newview/llviewerinventory.cpp +++ b/indra/newview/llviewerinventory.cpp @@ -690,9 +690,16 @@ void LLViewerInventoryCategory::setFetching(LLViewerInventoryCategory::EFetchTyp { if (mDescendentsRequested.hasExpired() || (mFetching == FETCH_NONE)) { - const F32 FETCH_TIMER_EXPIRY = 30.0f; mDescendentsRequested.reset(); - mDescendentsRequested.setTimerExpirySec(FETCH_TIMER_EXPIRY); + if (AISAPI::isAvailable()) + { + mDescendentsRequested.setTimerExpirySec(AISAPI::HTTP_TIMEOUT); + } + else + { + const F32 FETCH_TIMER_EXPIRY = 30.0f; + mDescendentsRequested.setTimerExpirySec(FETCH_TIMER_EXPIRY); + } } mFetching = fetching; } |