diff options
-rw-r--r-- | lldb/include/lldb/API/SBQueue.h | 3 | ||||
-rw-r--r-- | lldb/source/API/SBQueue.cpp | 35 |
2 files changed, 32 insertions, 6 deletions
diff --git a/lldb/include/lldb/API/SBQueue.h b/lldb/include/lldb/API/SBQueue.h index 6ab9aa09f46..619454eff29 100644 --- a/lldb/include/lldb/API/SBQueue.h +++ b/lldb/include/lldb/API/SBQueue.h @@ -62,6 +62,9 @@ public: lldb::SBQueueItem GetPendingItemAtIndex (uint32_t); + uint32_t + GetNumRunningItems (); + protected: friend class SBProcess; diff --git a/lldb/source/API/SBQueue.cpp b/lldb/source/API/SBQueue.cpp index 0860bf92967..cd914bc26a8 100644 --- a/lldb/source/API/SBQueue.cpp +++ b/lldb/source/API/SBQueue.cpp @@ -222,21 +222,24 @@ namespace lldb_private } return sb_thread; } - - + uint32_t GetNumPendingItems () { uint32_t result = 0; - FetchItems(); - - if (m_pending_items_fetched) + + QueueSP queue_sp = m_queue_wp.lock(); + if (m_pending_items_fetched == false && queue_sp) + { + result = queue_sp->GetNumPendingWorkItems(); + } + else { result = m_pending_items.size(); } return result; } - + lldb::SBQueueItem GetPendingItemAtIndex (uint32_t idx) { @@ -248,6 +251,16 @@ namespace lldb_private } return result; } + + uint32_t + GetNumRunningItems () + { + uint32_t result = 0; + QueueSP queue_sp = m_queue_wp.lock(); + if (queue_sp) + result = queue_sp->GetNumRunningWorkItems(); + return result; + } lldb::SBProcess GetProcess () @@ -399,6 +412,16 @@ SBQueue::GetPendingItemAtIndex (uint32_t idx) return m_opaque_sp->GetPendingItemAtIndex (idx); } +uint32_t +SBQueue::GetNumRunningItems () +{ + uint32_t running_items = m_opaque_sp->GetNumRunningItems (); + Log *log(lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_API)); + if (log) + log->Printf("SBQueue(0x%" PRIx64 ")::GetNumRunningItems() == %d", m_opaque_sp->GetQueueID(), running_items); + return running_items; +} + SBProcess SBQueue::GetProcess () { |