diff options
author | Andrey Kleshchev <andreykproductengine@lindenlab.com> | 2023-04-11 19:26:21 +0300 |
---|---|---|
committer | Andrey Kleshchev <andreykproductengine@lindenlab.com> | 2023-04-11 19:26:21 +0300 |
commit | 8171224a6510ac8b984dace5f10a6f92cb1e2942 (patch) | |
tree | 50ef699d8700c1f11216af51b4ed3408d4e909cf /indra/newview/llinventorymodelbackgroundfetch.cpp | |
parent | 69e3b5fb4014ef900b129ebde49325f1b074e773 (diff) |
SL-19533 Don't fetch items if recursive fetch isn't done
Diffstat (limited to 'indra/newview/llinventorymodelbackgroundfetch.cpp')
-rw-r--r-- | indra/newview/llinventorymodelbackgroundfetch.cpp | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/indra/newview/llinventorymodelbackgroundfetch.cpp b/indra/newview/llinventorymodelbackgroundfetch.cpp index 35b9442966..0099e81b8f 100644 --- a/indra/newview/llinventorymodelbackgroundfetch.cpp +++ b/indra/newview/llinventorymodelbackgroundfetch.cpp @@ -191,7 +191,7 @@ LLInventoryModelBackgroundFetch::LLInventoryModelBackgroundFetch(): mFolderFetchActive(false), mFetchCount(0), mFetchFolderCount(0), - mAllFoldersFetched(false), + mAllRecursiveFoldersFetched(false), mRecursiveInventoryFetchStarted(false), mRecursiveLibraryFetchStarted(false), mMinTimeBetweenFetches(0.3f) @@ -242,7 +242,7 @@ bool LLInventoryModelBackgroundFetch::inventoryFetchInProgress() const bool LLInventoryModelBackgroundFetch::isEverythingFetched() const { - return mAllFoldersFetched; + return mAllRecursiveFoldersFetched; } BOOL LLInventoryModelBackgroundFetch::folderFetchActive() const @@ -395,7 +395,7 @@ void LLInventoryModelBackgroundFetch::setAllFoldersFetched() if (mRecursiveInventoryFetchStarted && mRecursiveLibraryFetchStarted) { - mAllFoldersFetched = true; + mAllRecursiveFoldersFetched = true; //LL_INFOS(LOG_INV) << "All folders fetched, validating" << LL_ENDL; //gInventory.validate(); } @@ -576,12 +576,17 @@ void LLInventoryModelBackgroundFetch::bulkFetchViaAis() curent_time = LLTimer::getTotalSeconds(); } - while (!mFetchItemQueue.empty() && mFetchCount < max_concurrent_fetches && curent_time < end_time) + if (mRecursiveInventoryFetchStarted && mAllRecursiveFoldersFetched) { - const FetchQueueInfo & fetch_info(mFetchItemQueue.front()); - bulkFetchViaAis(fetch_info); - mFetchItemQueue.pop_front(); - curent_time = LLTimer::getTotalSeconds(); + // Don't fetch items if recursive fetch isn't done, + // it gets both items and folders and should get the items in question faster + while (!mFetchItemQueue.empty() && mFetchCount < max_concurrent_fetches && curent_time < end_time) + { + const FetchQueueInfo& fetch_info(mFetchItemQueue.front()); + bulkFetchViaAis(fetch_info); + mFetchItemQueue.pop_front(); + curent_time = LLTimer::getTotalSeconds(); + } } LL_DEBUGS(LOG_INV , "AIS3") << "Total active fetches: " << mFetchCount |