forked from OSchip/llvm-project
194357c509
Summary: MonitorDebugServerProcess went to a lot of effort to make sure its asynchronous invocation does not cause any mischief, but it was still not race-free. Specifically, in a quick stop-restart sequence (like the one in TestAddressBreakpoints) the copying of the process shared pointer via target_sp->GetProcessSP() was racing with the resetting of the pointer in DeleteCurrentProcess, as they were both accessing the same shared_ptr object. To avoid this, I simply pass in a weak_ptr to the process when the callback is created. Locking this pointer is race-free as they are two separate object even though they point to the same process instance. This also removes the need for the complicated tap-dance around retrieving the process pointer. Reviewers: clayborg Subscribers: tberghammer, lldb-commits Differential Revision: http://reviews.llvm.org/D20107 llvm-svn: 269281 |
||
---|---|---|
.. | ||
API | ||
Breakpoint | ||
Commands | ||
Core | ||
DataFormatters | ||
Expression | ||
Host | ||
Initialization | ||
Interpreter | ||
Plugins | ||
Symbol | ||
Target | ||
Utility | ||
CMakeLists.txt | ||
lldb.cpp |