leon 4 долоо хоног өмнө
parent
commit
0f947379a6

+ 3 - 7
src/common/queue.hpp

@@ -205,13 +205,9 @@ public:
 
 
     void clear()
     void clear()
     {
     {
-        std::unique_lock<std::mutex> lock(mutex_);
-        // 等待直到队列不为空
-        cond_var_not_empty_.wait(lock, [this] { return !queue_.empty(); });
-        while(!queue_.empty())
-        {
-            queue_.pop();
-        }
+        std::lock_guard<std::mutex> lock(mutex_);
+        std::queue<T> empty_queue;
+        std::swap(queue_, empty_queue); // O(1) 时间清空
     }
     }
 
 
     /**
     /**