#include <atomic_queue.h>
|
| AtomicBuffer (size_t size) |
|
T | Pop () |
|
void | Pop (T &value) |
|
void | Push (const T &item) |
|
void | Push (T &&item) |
|
template<class... Args> |
void | Emplace (Args &&... args) |
|
void | Terminate () |
|
|
void | IncrementLoop (size_t &idx) |
|
void | IncrementWrite () |
|
|
std::vector< T > | queue_ |
|
std::mutex | m_ |
|
std::condition_variable | cv_ |
|
std::sig_atomic_t | terminate_ = false |
|
size_t | num_unread_ = 0 |
|
size_t | idx_write_ = 0 |
|
size_t | idx_read_ = 0 |
|
template<typename T>
class ctrl_utils::AtomicBuffer< T >
Fixed size atomic queue.
◆ Emplace()
template<typename T >
template<class... Args>
Emplaces an item into the queue.
◆ Pop() [1/2]
Waits until the queue is ready and then pops an item.
◆ Pop() [2/2]
Waits until the queue is ready and then pops an element.
◆ Push() [1/2]
Pushes an item to the queue.
◆ Push() [2/2]
Pushes an item to the queue.
◆ Terminate()
Terminates the queue.
All currently waiting threads will receive an empty-initialized T.
The documentation for this class was generated from the following file:
- /home/runner/work/ctrl-utils/ctrl-utils/include/ctrl_utils/atomic_queue.h