summaryrefslogtreecommitdiff
path: root/indra/newview/llinventorymodelbackgroundfetch.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/llinventorymodelbackgroundfetch.cpp')
-rw-r--r--indra/newview/llinventorymodelbackgroundfetch.cpp21
1 files changed, 9 insertions, 12 deletions
diff --git a/indra/newview/llinventorymodelbackgroundfetch.cpp b/indra/newview/llinventorymodelbackgroundfetch.cpp
index 4a77edc565..406c8b89d0 100644
--- a/indra/newview/llinventorymodelbackgroundfetch.cpp
+++ b/indra/newview/llinventorymodelbackgroundfetch.cpp
@@ -76,13 +76,6 @@
// * Review the download rate throttling. Slow then fast?
// Detect bandwidth usage and speed up when it drops?
//
-// * A lot of calls to notifyObservers(). It looks like
-// these could be collapsed by maintaining a 'dirty'
-// bit and there appears to be an attempt to do this.
-// But it isn't used or is used in a limited fashion.
-// Are there semanic issues requiring a call after certain
-// updateItem() calls?
-//
// * An error on a fetch could be due to one item in the batch.
// If the batch were broken up, perhaps more of the inventory
// would download. (Handwave here, not certain this is an
@@ -360,9 +353,12 @@ void LLInventoryModelBackgroundFetch::incrFetchCount(S32 fetching)
}
}
+static LLTrace::BlockTimerStatHandle FTM_BULK_FETCH("Bulk Fetch");
+
// Bundle up a bunch of requests to send all at once.
void LLInventoryModelBackgroundFetch::bulkFetch()
{
+ LL_RECORD_BLOCK_TIME(FTM_BULK_FETCH);
//Background fetch is called from gIdleCallbacks in a loop until background fetch is stopped.
//If there are items in mFetchQueue, we want to check the time since the last bulkFetch was
//sent. If it exceeds our retry time, go ahead and fire off another batch.
@@ -390,6 +386,12 @@ void LLInventoryModelBackgroundFetch::bulkFetch()
{
// Process completed background HTTP requests
gInventory.handleResponses(false);
+ // Just processed a bunch of items.
+ // Note: do we really need notifyObservers() here?
+ // OnIdle it will be called anyway due to Add flag for processed item.
+ // It seems like in some cases we are updaiting on fail (no flag),
+ // but is there anything to update?
+ gInventory.notifyObservers();
}
if ((mFetchCount > max_concurrent_fetches) ||
@@ -708,7 +710,6 @@ void BGFolderHttpHandler::processData(LLSD & content, LLCore::HttpResponse * res
titem->setParent(lost_uuid);
titem->updateParentOnServer(FALSE);
gInventory.updateItem(titem);
- gInventory.notifyObservers();
}
}
}
@@ -781,8 +782,6 @@ void BGFolderHttpHandler::processData(LLSD & content, LLCore::HttpResponse * res
{
fetcher->setAllFoldersFetched();
}
-
- gInventory.notifyObservers();
}
@@ -825,7 +824,6 @@ void BGFolderHttpHandler::processFailure(LLCore::HttpStatus status, LLCore::Http
fetcher->setAllFoldersFetched();
}
}
- gInventory.notifyObservers();
}
@@ -863,7 +861,6 @@ void BGFolderHttpHandler::processFailure(const char * const reason, LLCore::Http
fetcher->setAllFoldersFetched();
}
}
- gInventory.notifyObservers();
}