diff options
author | Thiago Marcos P. Santos <tmpsantos@gmail.com> | 2019-02-14 16:56:17 +0200 |
---|---|---|
committer | Thiago Marcos P. Santos <tmpsantos@gmail.com> | 2019-05-10 14:20:38 +0300 |
commit | 06f1dc48a2fb317979ab48ce323115be5bd48f16 (patch) | |
tree | 5ef1e78a1f98a7a26034ca519e267bda235b2817 /platform/node | |
parent | 947bc75f56fae7f1e70f21b98730dc6b460b9194 (diff) | |
download | qtlocation-mapboxgl-06f1dc48a2fb317979ab48ce323115be5bd48f16.tar.gz |
[core] Make the BackgroundScheduler a singleton
- Do not carry it over everywhere as parameter, it is a shared
instance anyway and the lifecycle is pretty much the app lifecycle
from the moment we instantiate a map.
- Rename to BackgroundScheduler because it is a Scheduler that will
do tasks in the background, we don't make assumptions if it is a
thread pool or a single thread.
- Most importantly, remove the dependency from `core` on `platform`.
Diffstat (limited to 'platform/node')
-rw-r--r-- | platform/node/src/node_map.cpp | 8 | ||||
-rw-r--r-- | platform/node/src/node_map.hpp | 3 | ||||
-rw-r--r-- | platform/node/src/node_thread_pool.cpp | 12 |
3 files changed, 16 insertions, 7 deletions
diff --git a/platform/node/src/node_map.cpp b/platform/node/src/node_map.cpp index 7156a1f1bf..0a7da3a83a 100644 --- a/platform/node/src/node_map.cpp +++ b/platform/node/src/node_map.cpp @@ -630,8 +630,8 @@ void NodeMap::cancel() { reinterpret_cast<NodeMap *>(h->data)->renderFinished(); }); - frontend = std::make_unique<mbgl::HeadlessFrontend>(mbgl::Size{ 256, 256 }, pixelRatio, threadpool); - map = std::make_unique<mbgl::Map>(*frontend, mapObserver, threadpool, + frontend = std::make_unique<mbgl::HeadlessFrontend>(mbgl::Size{ 256, 256 }, pixelRatio); + map = std::make_unique<mbgl::Map>(*frontend, mapObserver, mbgl::MapOptions().withSize(frontend->getSize()) .withPixelRatio(pixelRatio) .withMapMode(mode) @@ -1214,8 +1214,8 @@ NodeMap::NodeMap(v8::Local<v8::Object> options) : true; }()) , mapObserver(NodeMapObserver()) - , frontend(std::make_unique<mbgl::HeadlessFrontend>(mbgl::Size { 256, 256 }, pixelRatio, threadpool)) - , map(std::make_unique<mbgl::Map>(*frontend, mapObserver, threadpool, + , frontend(std::make_unique<mbgl::HeadlessFrontend>(mbgl::Size { 256, 256 }, pixelRatio)) + , map(std::make_unique<mbgl::Map>(*frontend, mapObserver, mbgl::MapOptions().withSize(frontend->getSize()) .withPixelRatio(pixelRatio) .withMapMode(mode) diff --git a/platform/node/src/node_map.hpp b/platform/node/src/node_map.hpp index 65664b34bb..d45dbec92b 100644 --- a/platform/node/src/node_map.hpp +++ b/platform/node/src/node_map.hpp @@ -1,7 +1,5 @@ #pragma once -#include "node_thread_pool.hpp" - #include <mbgl/map/map.hpp> #include <mbgl/storage/file_source.hpp> #include <mbgl/util/image.hpp> @@ -79,7 +77,6 @@ public: const float pixelRatio; mbgl::MapMode mode; bool crossSourceCollisions; - NodeThreadPool threadpool; NodeMapObserver mapObserver; std::unique_ptr<mbgl::HeadlessFrontend> frontend; std::unique_ptr<mbgl::Map> map; diff --git a/platform/node/src/node_thread_pool.cpp b/platform/node/src/node_thread_pool.cpp index 1f37565e8a..de403c605c 100644 --- a/platform/node/src/node_thread_pool.cpp +++ b/platform/node/src/node_thread_pool.cpp @@ -2,6 +2,7 @@ #include "util/async_queue.hpp" #include <mbgl/actor/mailbox.hpp> +#include <mbgl/platform/background_scheduler.hpp> namespace node_mbgl { @@ -35,3 +36,14 @@ void NodeThreadPool::Worker::WorkComplete() { } } // namespace node_mbgl + +namespace mbgl { +namespace platform { + +Scheduler& GetBackgroundScheduler() { + static node_mbgl::NodeThreadPool pool; + return pool; +} + +} // namespace platform +} // namespace mbgl |