From 309fd3021d3184e5ce6aee5e4035ff95bbd56f8e Mon Sep 17 00:00:00 2001 From: Simon Fels Date: Wed, 22 Jun 2016 18:50:35 +0200 Subject: [PATCH] Correct camera message processing to not cause CPU usage peaks --- src/anbox/support/camera_message_processor.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/anbox/support/camera_message_processor.cpp b/src/anbox/support/camera_message_processor.cpp index 8653ba1..985e203 100644 --- a/src/anbox/support/camera_message_processor.cpp +++ b/src/anbox/support/camera_message_processor.cpp @@ -39,16 +39,17 @@ bool CameraMessageProcessor::process_data(const std::vector &data) } void CameraMessageProcessor::process_commands() { - while (true) { - size_t size; - for (size = 0; size < buffer_.size(); size++) { + while (buffer_.size() > 0) { + size_t size = 0; + while (size < buffer_.size()) { if (buffer_.at(size) == 0x0) break; + size++; } std::string command; command.insert(0, reinterpret_cast(buffer_.data()), size); - buffer_.erase(buffer_.begin(), buffer_.begin() + size); + buffer_.erase(buffer_.begin(), buffer_.begin() + size + 1); handle_command(command); }