From d8b3b4cb6b4c0b6d2ecfe8d2dcbb4c90a9b98f42 Mon Sep 17 00:00:00 2001 From: Jared Boone Date: Thu, 27 Aug 2015 14:27:29 -0700 Subject: [PATCH] Check queue empty only once when reading messages. There was a second is_empty() call hidden in the pop() call, so the while(condition) was redundant. --- firmware/application/main.cpp | 4 +++- firmware/baseband/main.cpp | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/firmware/application/main.cpp b/firmware/application/main.cpp index 85b0cecf..a0c9f3c5 100755 --- a/firmware/application/main.cpp +++ b/firmware/application/main.cpp @@ -123,12 +123,14 @@ private: } void handle_application_queue() { - while( !shared_memory.application_queue.is_empty() ) { + while(true) { std::array message_buffer; const Message* const message = reinterpret_cast(message_buffer.data()); const auto message_size = shared_memory.application_queue.pop(message_buffer.data(), message_buffer.size()); if( message_size ) { context.message_map.send(message); + } else { + break; } } } diff --git a/firmware/baseband/main.cpp b/firmware/baseband/main.cpp index 297d63c0..37455507 100755 --- a/firmware/baseband/main.cpp +++ b/firmware/baseband/main.cpp @@ -242,12 +242,14 @@ private: } void handle_baseband_queue() { - while( !shared_memory.baseband_queue.is_empty() ) { + while(true) { std::array message_buffer; const Message* const message = reinterpret_cast(message_buffer.data()); const auto message_size = shared_memory.baseband_queue.pop(message_buffer.data(), message_buffer.size()); if( message_size ) { message_map.send(message); + } else { + break; } } }