24#ifndef _CORE_UTILS_LOCK_QUEUE_H_
25#define _CORE_UTILS_LOCK_QUEUE_H_
27#include <core/threading/mutex.h>
28#include <core/utils/refptr.h>
43template <
typename Type>
96template <
typename Type>
101template <
typename Type>
103: std::queue<Type>::queue(ll), mutex_(new
Mutex())
107template <
typename Type>
112template <
typename Type>
119template <
typename Type>
123 return mutex_->try_lock();
126template <
typename Type>
130 return mutex_->unlock();
133template <
typename Type>
138 std::queue<Type>::push(x);
142template <
typename Type>
147 std::queue<Type>::pop();
151template <
typename Type>
156 while (!std::queue<Type>::empty()) {
157 std::queue<Type>::pop();
bool try_lock() const
Try to lock queue.
virtual ~LockQueue()
Destructor.
void clear()
Clear the queue.
LockQueue(const LockQueue< Type > &ll)
Copy constructor.
RefPtr< Mutex > mutex() const
Get access to the internal mutex.
void pop_locked()
Pop element from queue with lock protection.
void push_locked(const Type &x)
Push element to queue with lock protection.
void lock() const
Lock queue.
void unlock() const
Unlock list.
Mutex mutual exclusion lock.
RefPtr<> is a reference-counting shared smartpointer.
Fawkes library namespace.