diff options
author | Jason Molenda <jmolenda@apple.com> | 2013-10-21 23:52:54 +0000 |
---|---|---|
committer | Jason Molenda <jmolenda@apple.com> | 2013-10-21 23:52:54 +0000 |
commit | 4fdb5863b93c73150eac3e708514b1b15f4300f4 (patch) | |
tree | 6a250084709426c991d1cfe1fc2d161def442be3 /lldb/source/API/SBThread.cpp | |
parent | 2fb40ce1dc6543cdd667dcdf9e0a933c88657aef (diff) | |
download | bcm5719-llvm-4fdb5863b93c73150eac3e708514b1b15f4300f4.tar.gz bcm5719-llvm-4fdb5863b93c73150eac3e708514b1b15f4300f4.zip |
Expose the Thread::GetQueueID() method through the SBThread API, similar to
the existing SBThread::GetQueueName() method.
llvm-svn: 193132
Diffstat (limited to 'lldb/source/API/SBThread.cpp')
-rw-r--r-- | lldb/source/API/SBThread.cpp | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/lldb/source/API/SBThread.cpp b/lldb/source/API/SBThread.cpp index ceaaa34b2bb..0c3a17e0df8 100644 --- a/lldb/source/API/SBThread.cpp +++ b/lldb/source/API/SBThread.cpp @@ -507,6 +507,34 @@ SBThread::GetQueueName () const return name; } +lldb::queue_id_t +SBThread::GetQueueID () const +{ + queue_id_t id = LLDB_INVALID_QUEUE_ID; + Mutex::Locker api_locker; + ExecutionContext exe_ctx (m_opaque_sp.get(), api_locker); + + Log *log(lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_API)); + if (exe_ctx.HasThreadScope()) + { + Process::StopLocker stop_locker; + if (stop_locker.TryLock(&exe_ctx.GetProcessPtr()->GetRunLock())) + { + id = exe_ctx.GetThreadPtr()->GetQueueID(); + } + else + { + if (log) + log->Printf ("SBThread(%p)::GetQueueID() => error: process is running", exe_ctx.GetThreadPtr()); + } + } + + if (log) + log->Printf ("SBThread(%p)::GetQueueID () => 0x%" PRIx64, exe_ctx.GetThreadPtr(), id); + + return id; +} + SBError SBThread::ResumeNewPlan (ExecutionContext &exe_ctx, ThreadPlan *new_plan) { |