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>
44 class LockQueue :
public std::queue<Type>
96 template <
typename Type>
101 template <
typename Type>
102 LockQueue<Type>::LockQueue(
const LockQueue<Type> &ll)
103 : std::queue<Type>::queue(ll), mutex_(new
Mutex())
107 template <
typename Type>
112 template <
typename Type>
119 template <
typename Type>
126 template <
typename Type>
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();