Use app-local queue for messages coming from application.

Messages are now deferred until application thread call stack unwinds, events are checked.
This commit is contained in:
Jared Boone 2016-06-21 11:00:42 -07:00
parent dbe735233a
commit 76c5fe96af
3 changed files with 6 additions and 6 deletions

View File

@ -119,10 +119,6 @@ void EventDispatcher::request_stop() {
is_running = false;
}
void EventDispatcher::send_message(Message* const message) {
message_map.send(message);
}
void EventDispatcher::set_display_sleep(const bool sleep) {
// TODO: Distribute display sleep message more broadly, shut down data generation
// on baseband side, since all that data is being discarded during sleep.

View File

@ -80,7 +80,11 @@ public:
}
}
static void send_message(Message* const message);
template<typename T>
static void send_message(T& message) {
shared_memory.app_local_queue.push(message);
events_flag_isr(EVT_MASK_LOCAL);
}
private:
static constexpr auto EVT_MASK_RTC_TICK = EVENT_MASK(0);

View File

@ -63,7 +63,7 @@ SystemStatusView::SystemStatusView() {
button_sleep.on_select = [this](ImageButton&) {
DisplaySleepMessage message;
EventDispatcher::send_message(&message);
EventDispatcher::send_message(message);
};
}