//===-- QueueList.cpp -------------------------------------------*- C++ -*-===// // // The LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// #include "lldb/Target/Queue.h" #include "lldb/Target/Process.h" #include "lldb/Target/QueueList.h" using namespace lldb; using namespace lldb_private; QueueList::QueueList(Process *process) : m_process(process), m_stop_id(0), m_queues(), m_mutex() {} QueueList::~QueueList() { Clear(); } uint32_t QueueList::GetSize() { std::lock_guard guard(m_mutex); return m_queues.size(); } lldb::QueueSP QueueList::GetQueueAtIndex(uint32_t idx) { std::lock_guard guard(m_mutex); if (idx < m_queues.size()) { return m_queues[idx]; } else { return QueueSP(); } } void QueueList::Clear() { std::lock_guard guard(m_mutex); m_queues.clear(); } void QueueList::AddQueue(QueueSP queue_sp) { std::lock_guard guard(m_mutex); if (queue_sp.get()) { m_queues.push_back(queue_sp); } } lldb::QueueSP QueueList::FindQueueByID(lldb::queue_id_t qid) { QueueSP ret; for (QueueSP queue_sp : Queues()) { if (queue_sp->GetID() == qid) { ret = queue_sp; break; } } return ret; } lldb::QueueSP QueueList::FindQueueByIndexID(uint32_t index_id) { QueueSP ret; for (QueueSP queue_sp : Queues()) { if (queue_sp->GetIndexID() == index_id) { ret = queue_sp; break; } } return ret; } std::mutex &QueueList::GetMutex() { return m_mutex; }