]> git.seodisparate.com - UDPConnection/commitdiff
Add top_and_pop fn to TSQueue
authorStephen Seo <seo.disparate@gmail.com>
Fri, 30 Aug 2019 06:55:43 +0000 (15:55 +0900)
committerStephen Seo <seo.disparate@gmail.com>
Fri, 30 Aug 2019 06:55:43 +0000 (15:55 +0900)
cpp_impl/src/TSQueue.hpp

index 947f76ccece948ebd37b7a61c98c013e5701a3f9..1985eee25bfe74f0bbf7a77316ca855d20f05e52 100644 (file)
@@ -25,6 +25,7 @@ class TSQueue {
     bool push(const T &data);
     T top();
     bool pop();
+    T top_and_pop();
     void clear();
     void changeCapacity(unsigned int newCapacity);
     unsigned int size();
@@ -96,6 +97,14 @@ bool TSQueue<T>::pop() {
     return true;
 }
 
+template <typename T>
+T TSQueue<T>::top_and_pop() {
+    std::lock_guard<std::mutex> lock(mutex);
+    T value = rb.top();
+    rb.pop();
+    return value;
+}
+
 template <typename T>
 void TSQueue<T>::clear() {
     std::lock_guard<std::mutex> lock(mutex);