void RunLoop::process() { Queue queue_; withMutex([&] { queue_.swap(queue); }); while (!queue_.empty()) { (*(queue_.front()))(); queue_.pop(); } }
void RunLoop::push(std::shared_ptr<WorkTask> task) { withMutex([&] { queue.push(std::move(task)); }); impl->async->send(); }