diff options
-rw-r--r-- | include/mbgl/util/run_loop.hpp | 4 | ||||
-rw-r--r-- | platform/default/thread_pool.cpp | 4 | ||||
-rw-r--r-- | platform/node/src/node_thread_pool.cpp | 4 | ||||
-rw-r--r-- | src/mbgl/actor/mailbox.cpp | 6 | ||||
-rw-r--r-- | src/mbgl/actor/mailbox.hpp | 2 |
5 files changed, 11 insertions, 9 deletions
diff --git a/include/mbgl/util/run_loop.hpp b/include/mbgl/util/run_loop.hpp index 939531d6c3..5236850d83 100644 --- a/include/mbgl/util/run_loop.hpp +++ b/include/mbgl/util/run_loop.hpp @@ -83,9 +83,7 @@ private: void schedule(std::weak_ptr<Mailbox> mailbox) override { invoke([mailbox] () { - if (auto locked = mailbox.lock()) { - locked->receive(); - } + Mailbox::maybeReceive(mailbox); }); } diff --git a/platform/default/thread_pool.cpp b/platform/default/thread_pool.cpp index 7108312c58..b7e02db157 100644 --- a/platform/default/thread_pool.cpp +++ b/platform/default/thread_pool.cpp @@ -22,9 +22,7 @@ ThreadPool::ThreadPool(std::size_t count) { queue.pop(); lock.unlock(); - if (auto locked = mailbox.lock()) { - locked->receive(); - } + Mailbox::maybeReceive(mailbox); } }); } diff --git a/platform/node/src/node_thread_pool.cpp b/platform/node/src/node_thread_pool.cpp index a9faef6f09..fd6df575fc 100644 --- a/platform/node/src/node_thread_pool.cpp +++ b/platform/node/src/node_thread_pool.cpp @@ -27,9 +27,7 @@ NodeThreadPool::Worker::Worker(std::weak_ptr<mbgl::Mailbox> mailbox_) mailbox(std::move(mailbox_)) {}; void NodeThreadPool::Worker::Execute() { - if (auto locked = mailbox.lock()) { - locked->receive(); - } + mbgl::Mailbox::maybeReceive(mailbox); } void NodeThreadPool::Worker::WorkComplete() { diff --git a/src/mbgl/actor/mailbox.cpp b/src/mbgl/actor/mailbox.cpp index ae3c0967af..5f60629833 100644 --- a/src/mbgl/actor/mailbox.cpp +++ b/src/mbgl/actor/mailbox.cpp @@ -52,4 +52,10 @@ void Mailbox::receive() { } } +void Mailbox::maybeReceive(std::weak_ptr<Mailbox> mailbox) { + if (auto locked = mailbox.lock()) { + locked->receive(); + } +} + } // namespace mbgl diff --git a/src/mbgl/actor/mailbox.hpp b/src/mbgl/actor/mailbox.hpp index 5d5e8cb924..cff0de243a 100644 --- a/src/mbgl/actor/mailbox.hpp +++ b/src/mbgl/actor/mailbox.hpp @@ -18,6 +18,8 @@ public: void close(); void receive(); + static void maybeReceive(std::weak_ptr<Mailbox>); + private: Scheduler& scheduler; |