cameron314 added inline comments.
================
Comment at: source/Target/Process.cpp:4116
@@ -4120,1 +4115,3 @@
+ // Signal the private state thread
+ if (m_private_state_thread.IsJoinable())
{
----------------
clayborg wrote:
> If you are going to do IsJoinable(), Cancel(), and Join() then this is still
> racy in that someone else could do the same thing on another thread. So this
> code should probably take a mutex to protect:
>
> ```
> Mutex::Locker locker(m_private_state_thread.GetMutex());
> if (m_private_state_thread.IsJoinable())
> ```
>
> This would need to live in HostNativeThreadBase because HostThread contains a
> shared pointer to a HostNativeThreadBase and HostThread can be copied.
>
I removed the call to `Reset` from the other thread (line 4452 below). It
didn't make sense for a thread to reset its own `HostThread` since it's not its
own owner, the Process is.
So now only the `Process` is allowed to control the `HostThread` it owns, and
there's no races and thus no need for a mutex.
Repository:
rL LLVM
http://reviews.llvm.org/D19122
_______________________________________________
lldb-commits mailing list
[email protected]
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits