16 mutable std::mutex m_mutex;
23 std::priority_queue<T, std::deque<T>, Compare> m_queue;
32 std::lock_guard<std::mutex> lock(m_mutex);
33 if (m_queue.empty()) {
43 std::lock_guard<std::mutex> lock(m_mutex);
47 template <
typename... Args>
48 void emplace(Args&&... args)
50 std::lock_guard<std::mutex> lock(m_mutex);
51 m_queue.emplace(std::forward<Args>(args)...);
54 std::size_t size()
const
56 std::lock_guard<std::mutex> lock(m_mutex);
57 return m_queue.size();
61 std::lock_guard<std::mutex> lock(m_mutex);
62 return m_queue.empty();