diff options
Diffstat (limited to 'src/events/event_queue.cpp')
| -rw-r--r-- | src/events/event_queue.cpp | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/src/events/event_queue.cpp b/src/events/event_queue.cpp index 06f747ab..c69b1e72 100644 --- a/src/events/event_queue.cpp +++ b/src/events/event_queue.cpp @@ -14,11 +14,22 @@ namespace events { static const std::size_t kMaxPendingEvents = 16; EventQueue::EventQueue() - : handle_(xQueueCreate(kMaxPendingEvents, sizeof(WorkItem*))) {} + : system_handle_(xQueueCreate(kMaxPendingEvents, sizeof(WorkItem*))), + ui_handle_(xQueueCreate(kMaxPendingEvents, sizeof(WorkItem*))) {} -auto EventQueue::Service(TickType_t max_wait_time) -> bool { +auto EventQueue::ServiceSystem(TickType_t max_wait_time) -> bool { WorkItem* item; - if (xQueueReceive(handle_, &item, max_wait_time)) { + if (xQueueReceive(system_handle_, &item, max_wait_time)) { + (*item)(); + delete item; + return true; + } + return false; +} + +auto EventQueue::ServiceUi(TickType_t max_wait_time) -> bool { + WorkItem* item; + if (xQueueReceive(ui_handle_, &item, max_wait_time)) { (*item)(); delete item; return true; |
