use std::list instead of std::deque for events

std::deque loves to allocate 512 bytes in internal memory just for fun
custom
jacqueline 1 year ago
parent 2b19e57034
commit b463ceaef4
  1. 6
      src/events/include/event_queue.hpp

@ -29,7 +29,7 @@ class Queue {
auto Add(std::function<void(void)> fn) { auto Add(std::function<void(void)> fn) {
{ {
std::lock_guard<std::mutex> lock{mut_}; std::lock_guard<std::mutex> lock{mut_};
events_.push(fn); events_.push_back(fn);
} }
xSemaphoreGive(has_events_); xSemaphoreGive(has_events_);
} }
@ -50,7 +50,7 @@ class Queue {
} }
had_work = true; had_work = true;
fn = events_.front(); fn = events_.front();
events_.pop(); events_.pop_front();
} }
std::invoke(fn); std::invoke(fn);
} }
@ -64,7 +64,7 @@ class Queue {
private: private:
SemaphoreHandle_t has_events_; SemaphoreHandle_t has_events_;
std::mutex mut_; std::mutex mut_;
std::queue<std::function<void(void)>> events_; std::list<std::function<void(void)>> events_;
}; };
template <class Machine> template <class Machine>

Loading…
Cancel
Save