15 mutable std::mutex m_mutex;
16 std::priority_queue<T, std::vector<T>, Compare> m_queue;
25 std::lock_guard<std::mutex> lock(m_mutex);
26 if (m_queue.empty()) {
36 std::lock_guard<std::mutex> lock(m_mutex);
40 template <
typename... Args>
41 void emplace(Args&&... args)
43 std::lock_guard<std::mutex> lock(m_mutex);
44 m_queue.emplace(std::forward<Args>(args)...);
47 std::size_t size()
const
49 std::lock_guard<std::mutex> lock(m_mutex);
50 return m_queue.size();
54 std::lock_guard<std::mutex> lock(m_mutex);
55 return m_queue.empty();