diff options
Diffstat (limited to 'src/wayland.hpp')
-rw-r--r-- | src/wayland.hpp | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/src/wayland.hpp b/src/wayland.hpp index c3d4c2f..20e88c5 100644 --- a/src/wayland.hpp +++ b/src/wayland.hpp @@ -276,15 +276,20 @@ struct controller : public wayland_proxy<struct ivi_controller> { std::map<uint32_t, std::unique_ptr<struct layer>> layers; std::map<uint32_t, std::unique_ptr<struct screen>> screens; - std::vector<std::function<void(struct controller *)>> pending; + typedef std::pair<char const *, std::function<void(struct controller *)>> + name_task_pair; + std::vector<name_task_pair> pending; - void add_task(std::function<void(struct controller *)> &&f) { - this->pending.emplace_back(f); + void add_task(char const *name, + std::function<void(struct controller *)> &&f) { + this->pending.emplace_back(std::make_pair(name, f)); } + void execute_pending() { if (!this->pending.empty()) { for (auto &t : this->pending) { - t(this); + logdebug("executing task '%s'", t.first); + t.second(this); } this->pending.clear(); ivi_controller_commit_changes(this->proxy); |