From 7bacf5696ca90dd3f3496988ad0658b357cb7ec1 Mon Sep 17 00:00:00 2001 From: Mikhail Pozdnyakov Date: Mon, 2 Dec 2019 10:40:59 +0200 Subject: [core] Introduce Pass<> class and use it for Scheduler Thus we enforce client to retain the returned `Scheduler` objects. --- src/mbgl/actor/scheduler.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/mbgl/actor/scheduler.cpp b/src/mbgl/actor/scheduler.cpp index 0e051d0273..d765cfcf65 100644 --- a/src/mbgl/actor/scheduler.cpp +++ b/src/mbgl/actor/scheduler.cpp @@ -27,7 +27,7 @@ Scheduler* Scheduler::GetCurrent() { } // static -std::shared_ptr Scheduler::GetBackground() { +PassRefPtr Scheduler::GetBackground() { static std::weak_ptr weak; static std::mutex mtx; @@ -38,11 +38,11 @@ std::shared_ptr Scheduler::GetBackground() { weak = scheduler = std::make_shared(); } - return scheduler; + return PassRefPtr(std::move(scheduler)); } // static -std::shared_ptr Scheduler::GetSequenced() { +PassRefPtr Scheduler::GetSequenced() { const std::size_t kSchedulersCount = 10; static std::vector> weaks(kSchedulersCount); static std::mutex mtx; @@ -65,7 +65,7 @@ std::shared_ptr Scheduler::GetSequenced() { break; } - return result; + return PassRefPtr(std::move(result)); } } //namespace mbgl -- cgit v1.2.1