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>
43 template <
typename Type>
96 template <
typename Type>
101 template <
typename Type>
103 : std::queue<Type>::queue(ll), mutex_(new
Mutex())
107 template <
typename Type>
112 template <
typename Type>
119 template <
typename Type>
123 return mutex_->try_lock();
126 template <
typename Type>
130 return mutex_->unlock();
133 template <
typename Type>
138 std::queue<Type>::push(x);
142 template <
typename Type>
147 std::queue<Type>::pop();
151 template <
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.
void pop_locked()
Pop element from queue with lock protection.
RefPtr< Mutex > mutex() const
Get access to the internal mutex.
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.