<rdar://problem/10487848>
Protect a member variable from being modified by multiple threads.
git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@145920 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp b/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
index 3a21821..2e59bc0 100644
--- a/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
+++ b/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
@@ -123,6 +123,7 @@
m_gdb_comm(false),
m_debugserver_pid (LLDB_INVALID_PROCESS_ID),
m_last_stop_packet (),
+ m_last_stop_packet_mutex (Mutex::eMutexTypeNormal),
m_register_info (),
m_async_broadcaster ("lldb.process.gdb-remote.async-broadcaster"),
m_async_thread (LLDB_INVALID_HOST_THREAD),
@@ -1548,7 +1549,7 @@
if (packet_cmd == 'W' || packet_cmd == 'X')
{
- m_last_stop_packet = response;
+ SetLastStopPacket (response);
SetExitStatus(response.GetHexU8(), NULL);
}
}
@@ -2353,12 +2354,12 @@
case eStateStopped:
case eStateCrashed:
case eStateSuspended:
- process->m_last_stop_packet = response;
+ process->SetLastStopPacket (response);
process->SetPrivateState (stop_state);
break;
case eStateExited:
- process->m_last_stop_packet = response;
+ process->SetLastStopPacket (response);
response.SetFilePos(1);
process->SetExitStatus(response.GetHexU8(), NULL);
done = true;