summaryrefslogtreecommitdiff
path: root/include/mbgl/actor/actor.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'include/mbgl/actor/actor.hpp')
-rw-r--r--include/mbgl/actor/actor.hpp5
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;
};