summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/mbgl/util/run_loop.hpp4
-rw-r--r--platform/default/thread_pool.cpp4
-rw-r--r--platform/node/src/node_thread_pool.cpp4
-rw-r--r--src/mbgl/actor/mailbox.cpp6
-rw-r--r--src/mbgl/actor/mailbox.hpp2
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;