瀏覽代碼

添加清空队列方法

leon 4 周之前
父節點
當前提交
00443e3cbc
共有 2 個文件被更改,包括 12 次插入1 次删除
  1. 11 0
      src/common/queue.hpp
  2. 1 1
      src/nodes/base/base.hpp

+ 11 - 0
src/common/queue.hpp

@@ -203,6 +203,17 @@ public:
         return item; // RVO 或移动构造函数会高效处理
     }
 
+    void clear()
+    {
+        std::unique_lock<std::mutex> lock(mutex_);
+        // 等待直到队列不为空
+        cond_var_not_empty_.wait(lock, [this] { return !queue_.empty(); });
+        while(!queue_.empty())
+        {
+            queue_.pop();
+        }
+    }
+
     /**
      * @brief 检查队列是否为空。
      * @return 如果队列为空,返回 true;否则返回 false。

+ 1 - 1
src/nodes/base/base.hpp

@@ -86,7 +86,7 @@ public:
         }
         for (auto &item : output_buffers_) 
         {
-            item.second->push(data)
+            item.second->push(data);
         }
     }