diff options
author | Mikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com> | 2019-12-02 10:40:59 +0200 |
---|---|---|
committer | Mikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com> | 2019-12-02 14:12:18 +0200 |
commit | 7bacf5696ca90dd3f3496988ad0658b357cb7ec1 (patch) | |
tree | 55c0988f8ea6a5c2f32c1f9df7d4e3f0bc26481c /src/mbgl/actor | |
parent | e373d8a5924e4f4cf3904ecacbf1d1cf86a5d60f (diff) | |
download | qtlocation-mapboxgl-7bacf5696ca90dd3f3496988ad0658b357cb7ec1.tar.gz |
[core] Introduce Pass<> class and use it for Scheduler
Thus we enforce client to retain the returned `Scheduler` objects.
Diffstat (limited to 'src/mbgl/actor')
-rw-r--r-- | src/mbgl/actor/scheduler.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
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> Scheduler::GetBackground() { +PassRefPtr<Scheduler> Scheduler::GetBackground() { static std::weak_ptr<Scheduler> weak; static std::mutex mtx; @@ -38,11 +38,11 @@ std::shared_ptr<Scheduler> Scheduler::GetBackground() { weak = scheduler = std::make_shared<ThreadPool>(); } - return scheduler; + return PassRefPtr<Scheduler>(std::move(scheduler)); } // static -std::shared_ptr<Scheduler> Scheduler::GetSequenced() { +PassRefPtr<Scheduler> Scheduler::GetSequenced() { const std::size_t kSchedulersCount = 10; static std::vector<std::weak_ptr<Scheduler>> weaks(kSchedulersCount); static std::mutex mtx; @@ -65,7 +65,7 @@ std::shared_ptr<Scheduler> Scheduler::GetSequenced() { break; } - return result; + return PassRefPtr<Scheduler>(std::move(result)); } } //namespace mbgl |