Files
clang-p2996/lldb/source/Core/Communication.cpp
Stephen Wilson a08cfb1299 Do not pass an invalid thread to Thread{Cancel,Join}.
A race condition exists between StopReadThread and the reader thread proper.
When StopReadThread sets m_read_thread_enabled to false the reader thread can
terminate and set m_read_thread to LLDB_INVALID_HOST_THREAD on exit.  Thus calls
to ThreadCancel or ThreadJoin in StopReadThread can be passed an invalid handle.

This patch removes the race by using m_read_thread_enabled as the flag thru
which the reader thread can notify the parent thread of early/abnormal
termination.

llvm-svn: 123309
2011-01-12 04:22:54 +00:00

13 KiB