summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGreg Clayton <gclayton@apple.com>2010-10-16 18:11:41 +0000
committerGreg Clayton <gclayton@apple.com>2010-10-16 18:11:41 +0000
commit556658c79e34ce1fe126e2634d47b80e8b3e78fd (patch)
tree6d6ff145a0e6e809373b6b08d4c18a6916b0ca0d
parentcd86570b93e75660fae2e241b662d5e4b55c1085 (diff)
downloadbcm5719-llvm-556658c79e34ce1fe126e2634d47b80e8b3e78fd.tar.gz
bcm5719-llvm-556658c79e34ce1fe126e2634d47b80e8b3e78fd.zip
Fixed an issue with MachTask::TaskResume () where if the task was already
suspended, we would call "int ::task_resume (task_t task);" as many times as it took to resume the task which isn't what we want to do. llvm-svn: 116674
-rw-r--r--lldb/tools/debugserver/source/MacOSX/MachTask.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/lldb/tools/debugserver/source/MacOSX/MachTask.cpp b/lldb/tools/debugserver/source/MacOSX/MachTask.cpp
index 61ace434ec5..62ebac294b6 100644
--- a/lldb/tools/debugserver/source/MacOSX/MachTask.cpp
+++ b/lldb/tools/debugserver/source/MacOSX/MachTask.cpp
@@ -86,14 +86,18 @@ MachTask::Resume()
{
struct task_basic_info task_info;
task_t task = TaskPort();
+ if (task == TASK_NULL)
+ return KERN_INVALID_ARGUMENT;
DNBError err;
err = BasicInfo(task, &task_info);
if (err.Success())
{
- integer_t i;
- for (i=0; i<task_info.suspend_count; i++)
+ // task_resume isn't counted like task_suspend calls are, are, so if the
+ // task is not suspended, don't try and resume it since it is already
+ // running
+ if (task_info.suspend_count > 0)
{
err = ::task_resume (task);
if (DNBLogCheckLogBit(LOG_TASK) || err.Fail())
OpenPOWER on IntegriCloud