Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 1 addition & 3 deletions lldb/tools/debugserver/source/MacOSX/MachTask.h
Original file line number Diff line number Diff line change
Expand Up @@ -81,9 +81,7 @@ class MachTask {
void TaskPortChanged(task_t task);
task_t TaskPort() const { return m_task; }
task_t TaskPortForProcessID(DNBError &err, bool force = false);
static task_t TaskPortForProcessID(pid_t pid, DNBError &err,
uint32_t num_retries = 10,
uint32_t usec_interval = 10000);
static task_t TaskPortForProcessID(pid_t pid, DNBError &err);

MachProcess *Process() { return m_process; }
const MachProcess *Process() const { return m_process; }
Expand Down
11 changes: 6 additions & 5 deletions lldb/tools/debugserver/source/MacOSX/MachTask.mm
Original file line number Diff line number Diff line change
Expand Up @@ -523,14 +523,15 @@ static void get_threads_profile_data(DNBProfileDataScanType scanType,
//----------------------------------------------------------------------
// MachTask::TaskPortForProcessID
//----------------------------------------------------------------------
task_t MachTask::TaskPortForProcessID(pid_t pid, DNBError &err,
uint32_t num_retries,
uint32_t usec_interval) {
task_t MachTask::TaskPortForProcessID(pid_t pid, DNBError &err) {
static constexpr uint32_t k_num_retries = 10;
static constexpr uint32_t k_usec_delay = 10000;

if (pid != INVALID_NUB_PROCESS) {
DNBError err;
mach_port_t task_self = mach_task_self();
task_t task = TASK_NULL;
for (uint32_t i = 0; i < num_retries; i++) {
for (uint32_t i = 0; i < k_num_retries; i++) {
DNBLog("[LaunchAttach] (%d) about to task_for_pid(%d)", getpid(), pid);
err = ::task_for_pid(task_self, pid, &task);

Expand All @@ -557,7 +558,7 @@ static void get_threads_profile_data(DNBProfileDataScanType scanType,
}

// Sleep a bit and try again
::usleep(usec_interval);
::usleep(k_usec_delay);
}
}
return TASK_NULL;
Expand Down
Loading