summaryrefslogtreecommitdiffstats
path: root/lldb/source
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/source')
-rw-r--r--lldb/source/Target/Process.cpp14
1 files changed, 9 insertions, 5 deletions
diff --git a/lldb/source/Target/Process.cpp b/lldb/source/Target/Process.cpp
index 5394923af39..38622f0aa3e 100644
--- a/lldb/source/Target/Process.cpp
+++ b/lldb/source/Target/Process.cpp
@@ -3792,7 +3792,11 @@ Process::ProcessEventData::DoOnRemoval (Event *event_ptr)
for (idx = 0; idx < num_threads; ++idx)
thread_index_array[idx] = curr_thread_list.GetThreadAtIndex(idx)->GetIndexID();
- bool still_should_stop = true;
+ // Use this to track whether we should continue from here. We will only continue the target running if
+ // no thread says we should stop. Of course if some thread's PerformAction actually sets the target running,
+ // then it doesn't matter what the other threads say...
+
+ bool still_should_stop = false;
for (idx = 0; idx < num_threads; ++idx)
{
@@ -3833,10 +3837,10 @@ Process::ProcessEventData::DoOnRemoval (Event *event_ptr)
SetRestarted (true);
break;
}
- else if (!stop_info_sp->ShouldStop(event_ptr))
- {
- still_should_stop = false;
- }
+
+ bool this_thread_wants_to_stop = stop_info_sp->ShouldStop(event_ptr);
+ if (still_should_stop == false)
+ still_should_stop = this_thread_wants_to_stop;
}
}
OpenPOWER on IntegriCloud