ctrl-utils
Public Member Functions | Protected Attributes | List of all members
ctrl_utils::AtomicQueue< T > Class Template Reference

Public Member Functions

Pop ()
 
void Pop (T &value)
 
void Push (const T &item)
 
void Push (T &&item)
 
template<class... Args>
void Emplace (Args &&... args)
 
void Terminate ()
 

Protected Attributes

std::queue< T > queue_
 
std::mutex m_
 
std::condition_variable cv_
 
std::sig_atomic_t terminate_ = false
 

Member Function Documentation

◆ Emplace()

template<typename T >
template<class... Args>
void ctrl_utils::AtomicQueue< T >::Emplace ( Args &&...  args)
inline

Emplaces an item into the queue.

◆ Pop() [1/2]

template<typename T >
T ctrl_utils::AtomicQueue< T >::Pop ( )
inline

Waits until the queue is ready and then pops an item.

◆ Pop() [2/2]

template<typename T >
void ctrl_utils::AtomicQueue< T >::Pop ( T &  value)
inline

Waits until the queue is ready and then pops an element.

◆ Push() [1/2]

template<typename T >
void ctrl_utils::AtomicQueue< T >::Push ( const T &  item)
inline

Pushes an item to the queue.

◆ Push() [2/2]

template<typename T >
void ctrl_utils::AtomicQueue< T >::Push ( T &&  item)
inline

Pushes an item to the queue.

◆ Terminate()

template<typename T >
void ctrl_utils::AtomicQueue< T >::Terminate ( )
inline

Terminates the queue.

All currently waiting threads will receive an empty-initialized T.


The documentation for this class was generated from the following file: