[lldb/Target] Avoid race between Communication::Disconnect calls.

Avoid a race between the Disconnect call in `Communication::ReadThread`
and the one in `Process::ShouldBroadcastEvent` by reordering the calls
to Disconnect and StopReadThread in `Process::ShouldBroadcastEvent`.

In D77295 Pavel suggested that that might explain the broken pipe I was
seeing. Indeed, changing the order resolved the issue.
This commit is contained in:
Jonas Devlieghere 2020-04-22 16:51:56 -07:00
parent 478619cf9a
commit b424b0bf73
1 changed files with 1 additions and 1 deletions

View File

@ -3386,8 +3386,8 @@ bool Process::ShouldBroadcastEvent(Event *event_ptr) {
case eStateExited:
case eStateUnloaded:
m_stdio_communication.SynchronizeWithReadThread();
m_stdio_communication.Disconnect();
m_stdio_communication.StopReadThread();
m_stdio_communication.Disconnect();
m_stdin_forward = false;
LLVM_FALLTHROUGH;