From bb85ec442dd7b5b0966d73bc6b868d33bb03e5e9 Mon Sep 17 00:00:00 2001 From: Alexander Shalamov Date: Fri, 31 Jan 2020 17:06:37 +0200 Subject: [core] Add hooks for setting experimental thread priorities for mbgl threads --- platform/android/src/asset_manager_file_source.cpp | 11 +++++++---- platform/default/src/mbgl/storage/asset_file_source.cpp | 5 +++-- platform/default/src/mbgl/storage/database_file_source.cpp | 7 ++++++- platform/default/src/mbgl/storage/local_file_source.cpp | 5 +++-- platform/default/src/mbgl/storage/main_resource_loader.cpp | 8 +++++++- platform/default/src/mbgl/storage/online_file_source.cpp | 11 +++++++---- 6 files changed, 33 insertions(+), 14 deletions(-) (limited to 'platform') diff --git a/platform/android/src/asset_manager_file_source.cpp b/platform/android/src/asset_manager_file_source.cpp index 73ecec2b05..a8045a2b96 100644 --- a/platform/android/src/asset_manager_file_source.cpp +++ b/platform/android/src/asset_manager_file_source.cpp @@ -1,5 +1,6 @@ #include "asset_manager_file_source.hpp" +#include #include #include #include @@ -39,11 +40,13 @@ private: AAssetManager* assetManager; }; -AssetManagerFileSource::AssetManagerFileSource(jni::JNIEnv& env, const jni::Object& assetManager_) +AssetManagerFileSource::AssetManagerFileSource(jni::JNIEnv& env, + const jni::Object& assetManager_) : assetManager(jni::NewGlobal(env, assetManager_)), - impl(std::make_unique>("AssetManagerFileSource", - AAssetManager_fromJava(&env, jni::Unwrap(assetManager.get())))) { -} + impl(std::make_unique>( + util::makeThreadPrioritySetter(platform::EXPERIMENTAL_THREAD_PRIORITY_FILE), + "AssetManagerFileSource", + AAssetManager_fromJava(&env, jni::Unwrap(assetManager.get())))) {} AssetManagerFileSource::~AssetManagerFileSource() = default; diff --git a/platform/default/src/mbgl/storage/asset_file_source.cpp b/platform/default/src/mbgl/storage/asset_file_source.cpp index 7abd609b19..a9ede06508 100644 --- a/platform/default/src/mbgl/storage/asset_file_source.cpp +++ b/platform/default/src/mbgl/storage/asset_file_source.cpp @@ -1,3 +1,4 @@ +#include #include #include #include @@ -42,8 +43,8 @@ private: }; AssetFileSource::AssetFileSource(const std::string& root) - : impl(std::make_unique>("AssetFileSource", root)) { -} + : impl(std::make_unique>( + util::makeThreadPrioritySetter(platform::EXPERIMENTAL_THREAD_PRIORITY_FILE), "AssetFileSource", root)) {} AssetFileSource::~AssetFileSource() = default; diff --git a/platform/default/src/mbgl/storage/database_file_source.cpp b/platform/default/src/mbgl/storage/database_file_source.cpp index b46693849a..f0b4849cb0 100644 --- a/platform/default/src/mbgl/storage/database_file_source.cpp +++ b/platform/default/src/mbgl/storage/database_file_source.cpp @@ -1,3 +1,4 @@ +#include #include #include #include @@ -7,6 +8,7 @@ #include #include #include +#include #include namespace mbgl { @@ -149,7 +151,10 @@ class DatabaseFileSource::Impl { public: Impl(std::shared_ptr onlineFileSource, const std::string& cachePath) : thread(std::make_unique>( - "DatabaseFileSource", std::move(onlineFileSource), cachePath)) {} + util::makeThreadPrioritySetter(platform::EXPERIMENTAL_THREAD_PRIORITY_DATABASE), + "DatabaseFileSource", + std::move(onlineFileSource), + cachePath)) {} ActorRef actor() const { return thread->actor(); } diff --git a/platform/default/src/mbgl/storage/local_file_source.cpp b/platform/default/src/mbgl/storage/local_file_source.cpp index 54f12baf79..5009146c8e 100644 --- a/platform/default/src/mbgl/storage/local_file_source.cpp +++ b/platform/default/src/mbgl/storage/local_file_source.cpp @@ -1,3 +1,4 @@ +#include #include #include #include @@ -36,8 +37,8 @@ public: }; LocalFileSource::LocalFileSource() - : impl(std::make_unique>("LocalFileSource")) { -} + : impl(std::make_unique>( + util::makeThreadPrioritySetter(platform::EXPERIMENTAL_THREAD_PRIORITY_FILE), "LocalFileSource")) {} LocalFileSource::~LocalFileSource() = default; diff --git a/platform/default/src/mbgl/storage/main_resource_loader.cpp b/platform/default/src/mbgl/storage/main_resource_loader.cpp index 91ae0a1d71..fb69a8c4f4 100644 --- a/platform/default/src/mbgl/storage/main_resource_loader.cpp +++ b/platform/default/src/mbgl/storage/main_resource_loader.cpp @@ -1,5 +1,6 @@ #include #include +#include #include #include #include @@ -131,7 +132,12 @@ public: onlineFileSource(std::move(onlineFileSource_)), supportsCacheOnlyRequests_(bool(databaseFileSource)), thread(std::make_unique>( - "ResourceLoaderThread", assetFileSource, databaseFileSource, localFileSource, onlineFileSource)) {} + util::makeThreadPrioritySetter(platform::EXPERIMENTAL_THREAD_PRIORITY_WORKER), + "ResourceLoaderThread", + assetFileSource, + databaseFileSource, + localFileSource, + onlineFileSource)) {} std::unique_ptr request(const Resource& resource, Callback callback) { auto req = std::make_unique(std::move(callback)); diff --git a/platform/default/src/mbgl/storage/online_file_source.cpp b/platform/default/src/mbgl/storage/online_file_source.cpp index 0f5b438e1d..37b1f7ca8e 100644 --- a/platform/default/src/mbgl/storage/online_file_source.cpp +++ b/platform/default/src/mbgl/storage/online_file_source.cpp @@ -1,8 +1,8 @@ -#include +#include +#include #include #include - -#include +#include #include #include #include @@ -15,6 +15,7 @@ #include #include #include +#include #include #include #include @@ -293,7 +294,9 @@ private: class OnlineFileSource::Impl { public: - Impl() : thread(std::make_unique>("OnlineFileSource")) {} + Impl() + : thread(std::make_unique>( + util::makeThreadPrioritySetter(platform::EXPERIMENTAL_THREAD_PRIORITY_NETWORK), "OnlineFileSource")) {} std::unique_ptr request(Callback callback, Resource res) { auto req = std::make_unique(std::move(callback)); -- cgit v1.2.1