[core] extract weak_ptr mailbox->receive into Mailbox::maybeReceive
This commit is contained in:
@@ -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);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -22,9 +22,7 @@ ThreadPool::ThreadPool(std::size_t count) {
|
||||
queue.pop();
|
||||
lock.unlock();
|
||||
|
||||
if (auto locked = mailbox.lock()) {
|
||||
locked->receive();
|
||||
}
|
||||
Mailbox::maybeReceive(mailbox);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -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() {
|
||||
|
||||
@@ -52,4 +52,10 @@ void Mailbox::receive() {
|
||||
}
|
||||
}
|
||||
|
||||
void Mailbox::maybeReceive(std::weak_ptr<Mailbox> mailbox) {
|
||||
if (auto locked = mailbox.lock()) {
|
||||
locked->receive();
|
||||
}
|
||||
}
|
||||
|
||||
} // namespace mbgl
|
||||
|
||||
@@ -18,6 +18,8 @@ public:
|
||||
void close();
|
||||
void receive();
|
||||
|
||||
static void maybeReceive(std::weak_ptr<Mailbox>);
|
||||
|
||||
private:
|
||||
Scheduler& scheduler;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user