summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Shalamov <alexander.shalamov@mapbox.com>2019-05-02 11:37:02 +0200
committerAlexander Shalamov <alexander.shalamov@mapbox.com>2019-05-03 10:01:19 +0300
commit86b94e30e17af5404ff69c5fef19abc2bc8b6fa1 (patch)
treebba7f938d2b88984244e1c11cbd8079d2efcc6f1
parentf7915fdc51f4924df2e2630b64908938ffa49830 (diff)
downloadqtlocation-mapboxgl-86b94e30e17af5404ff69c5fef19abc2bc8b6fa1.tar.gz
[core] Keep shared_ptr to thread pool in CustomGeometrySource
CustomGeometrySource should keep strong reference to shared thread pool that is used by CustomTileLoader.
-rw-r--r--include/mbgl/style/sources/custom_geometry_source.hpp2
-rw-r--r--src/mbgl/style/sources/custom_geometry_source.cpp3
2 files changed, 4 insertions, 1 deletions
diff --git a/include/mbgl/style/sources/custom_geometry_source.hpp b/include/mbgl/style/sources/custom_geometry_source.hpp
index 9daeeb3819..3f29d0c0fb 100644
--- a/include/mbgl/style/sources/custom_geometry_source.hpp
+++ b/include/mbgl/style/sources/custom_geometry_source.hpp
@@ -12,6 +12,7 @@ class OverscaledTileID;
class CanonicalTileID;
template <class T>
class Actor;
+class ThreadPool;
namespace style {
@@ -46,6 +47,7 @@ public:
class Impl;
const Impl& impl() const;
private:
+ std::shared_ptr<ThreadPool> threadPool;
std::unique_ptr<Actor<CustomTileLoader>> loader;
};
diff --git a/src/mbgl/style/sources/custom_geometry_source.cpp b/src/mbgl/style/sources/custom_geometry_source.cpp
index 6ce7c1be11..7420be9320 100644
--- a/src/mbgl/style/sources/custom_geometry_source.cpp
+++ b/src/mbgl/style/sources/custom_geometry_source.cpp
@@ -14,7 +14,8 @@ namespace style {
CustomGeometrySource::CustomGeometrySource(std::string id,
const CustomGeometrySource::Options options)
: Source(makeMutable<CustomGeometrySource::Impl>(std::move(id), options)),
- loader(std::make_unique<Actor<CustomTileLoader>>(*sharedThreadPool(), options.fetchTileFunction, options.cancelTileFunction)) {
+ threadPool(sharedThreadPool()),
+ loader(std::make_unique<Actor<CustomTileLoader>>(*threadPool, options.fetchTileFunction, options.cancelTileFunction)) {
}
CustomGeometrySource::~CustomGeometrySource() = default;