4#include "TinyRobotics/utils/AllocatorPSRAM.h"
5#include "TinyRobotics/concurrency/LockGuard.h"
8namespace tinyrobotics {
11
12
13
14
15
16
17
18
19
20template <
class T,
class TMutex,
class TAllocator =
AllocatorPSRAM<T>>
23 SynchronizedQueue() =
default;
25 bool enqueue(T& data) {
27 return l.push_front(data);
32 if (l.end()->prior ==
nullptr)
return false;
33 data = *(l.end()->prior);
37 bool dequeue(T& data) {
39 return l.pop_back(data);
58 std::list<T, TAllocator> l;
Custom allocator that uses ESP32's PSRAM for memory allocation.
Definition: AllocatorPSRAM.h:21
RAII implementaion using a Mutex: Only a few microcontrollers provide lock guards,...
Definition: LockGuard.h:18
FIFO Queue which is based on a List that is thread save.
Definition: SynchronizedQueue.h:21