]> git.mxchange.org Git - simgear.git/blobdiff - simgear/threads/SGQueue.hxx
Modified Files:
[simgear.git] / simgear / threads / SGQueue.hxx
index 83a1cfebecdf2352117984b8af7bda77eb5280df..9f534ec909a34e53b01e99c0e8f42b85fcaa0989 100644 (file)
@@ -61,6 +61,13 @@ public:
      */
     virtual T pop() = 0;
 
+    /**
+     * Query the size of the queue
+     *
+     * @return size_t size of queue.
+     */
+    virtual size_t size() = 0;
+
 protected:
     /**
      * 
@@ -136,6 +143,17 @@ public:
        this->fifo.pop();
        return item;
     }
+
+    /**
+     * Query the size of the queue
+     *
+     * @return size_t size of queue.
+     */
+    virtual size_t size() {
+       SGGuard<SGLOCK> g(mutex);
+        return this->fifo.size();
+    }
+
 private:
 
     /**
@@ -165,7 +183,7 @@ public:
     /**
      * Destroy this queue.
      */
-    ~SGBlockingQueue() { mutex.unlock(); }
+    ~SGBlockingQueue() {}
 
     /**
      * 
@@ -222,6 +240,16 @@ public:
        return item;
     }
 
+    /**
+     * Query the size of the queue
+     *
+     * @return size_t size of queue.
+     */
+    virtual size_t size() {
+       SGGuard<SGMutex> g(mutex);
+        return this->fifo.size();
+    }
+
 private:
 
     /**