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 /include/mbgl/actor/actor.hpp | |
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 'include/mbgl/actor/actor.hpp')
-rw-r--r-- | include/mbgl/actor/actor.hpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/include/mbgl/actor/actor.hpp b/include/mbgl/actor/actor.hpp index 0052fad242..97964ae531 100644 --- a/include/mbgl/actor/actor.hpp +++ b/include/mbgl/actor/actor.hpp @@ -55,6 +55,10 @@ public: Actor(Scheduler& scheduler, Args&&... args) : target(scheduler, parent, std::forward<Args>(args)...) {} + template <class... Args> + Actor(std::shared_ptr<Scheduler> scheduler, Args&&... args) + : retainer(std::move(scheduler)), target(*retainer, parent, std::forward<Args>(args)...) {} + Actor(const Actor&) = delete; ActorRef<std::decay_t<Object>> self() { @@ -62,6 +66,7 @@ public: } private: + std::shared_ptr<Scheduler> retainer; AspiringActor<Object> parent; EstablishedActor<Object> target; }; |