diff options
author | Alexander Shalamov <alexander.shalamov@mapbox.com> | 2019-05-02 11:37:02 +0200 |
---|---|---|
committer | Alexander Shalamov <alexander.shalamov@mapbox.com> | 2019-05-03 10:01:19 +0300 |
commit | 86b94e30e17af5404ff69c5fef19abc2bc8b6fa1 (patch) | |
tree | bba7f938d2b88984244e1c11cbd8079d2efcc6f1 | |
parent | f7915fdc51f4924df2e2630b64908938ffa49830 (diff) | |
download | qtlocation-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.hpp | 2 | ||||
-rw-r--r-- | src/mbgl/style/sources/custom_geometry_source.cpp | 3 |
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; |