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 lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits