Fixed compiler error
[libcds.git] / test / stress / queue / std_queue.h
index d943169d38a78086bb5dcd4df5d55b57b5ee0ad1..0c27a31368e8cc50c66d526ea07722e3f400c1a2 100644 (file)
@@ -42,7 +42,7 @@ namespace queue {
     class StdQueue: public std::queue<T, Container >
     {
         typedef std::queue<T, Container >   base_class;
-        Lock    m_Locker;
+        mutable Lock m_Locker;
 
     public:
         bool enqueue( const T& data )
@@ -52,7 +52,12 @@ namespace queue {
             base_class::push( data );
             return true;
         }
-        bool push( const T& data )  { return enqueue( data ) ; }
+
+        bool push( const T& data )
+        { 
+            return enqueue( data );
+        }
+
         bool dequeue( T& data )
         {
             std::unique_lock<Lock> a(m_Locker);
@@ -63,7 +68,23 @@ namespace queue {
             base_class::pop();
             return true;
         }
-        bool pop( T& data )         { return dequeue( data ) ; }
+
+        bool pop( T& data )
+        { 
+            return dequeue( data );
+        }
+
+        bool empty() const
+        {
+            std::unique_lock<Lock> a( m_Locker );
+            return base_class::empty();
+        }
+
+        size_t size() const
+        {
+            std::unique_lock<Lock> a( m_Locker );
+            return base_class::size();
+        }
 
         cds::opt::none statistics() const
         {