summaryrefslogtreecommitdiff
path: root/platform/default/mbgl/storage/offline_download.cpp
diff options
context:
space:
mode:
authorChris Loer <chris.loer@gmail.com>2018-09-18 15:06:40 -0700
committerChris Loer <chris.loer@gmail.com>2018-09-18 15:06:40 -0700
commitaaf73b44f13b3b50ccd1c7779ca3cc64b80fcbf4 (patch)
treed9e65bb806bf8041714e82e7f62dee89ff616dac /platform/default/mbgl/storage/offline_download.cpp
parenta938c3ef68af249bb3199bde2818436a0bff0952 (diff)
downloadqtlocation-mapboxgl-upstream/offline-concurrency.tar.gz
[core, offline] Limit offline downloads to use half of maximum concurrent file requests.upstream/offline-concurrency
Fixes issue #12655: don't let offline downloads starve interactive tile downloads.
Diffstat (limited to 'platform/default/mbgl/storage/offline_download.cpp')
-rw-r--r--platform/default/mbgl/storage/offline_download.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/platform/default/mbgl/storage/offline_download.cpp b/platform/default/mbgl/storage/offline_download.cpp
index 118f3aad88..da53271bd4 100644
--- a/platform/default/mbgl/storage/offline_download.cpp
+++ b/platform/default/mbgl/storage/offline_download.cpp
@@ -88,7 +88,8 @@ OfflineDownload::OfflineDownload(int64_t id_,
: id(id_),
definition(definition_),
offlineDatabase(offlineDatabase_),
- onlineFileSource(onlineFileSource_) {
+ onlineFileSource(onlineFileSource_),
+ maximumConcurrentRequests(std::max<uint32_t>(HTTPFileSource::maximumConcurrentRequests() / 2, 1)) {
setObserver(nullptr);
}
@@ -338,7 +339,7 @@ void OfflineDownload::continueDownload() {
return;
}
- while (!resourcesRemaining.empty() && requests.size() < HTTPFileSource::maximumConcurrentRequests()) {
+ while (!resourcesRemaining.empty() && requests.size() < maximumConcurrentRequests) {
ensureResource(resourcesRemaining.front());
resourcesRemaining.pop_front();
}