Remove retries (#12860)

This commit is contained in:
Mykhailo Pylyp 2021-08-25 18:21:54 +03:00 committed by GitHub
parent 0440a89292
commit 0f55256262
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -42,33 +42,27 @@ inline std::wstring get_process_path(HWND window) noexcept
// It might take a time to connect the process. That's the reason for the retry loop here
DWORD new_pid = pid;
const int retryAttempts = 10;
for (int retry = 0; retry < retryAttempts && pid == new_pid; retry++)
EnumChildWindows(
window, [](HWND hwnd, LPARAM param) -> BOOL {
auto new_pid_ptr = reinterpret_cast<DWORD*>(param);
DWORD pid;
GetWindowThreadProcessId(hwnd, &pid);
if (pid != *new_pid_ptr)
{
*new_pid_ptr = pid;
return FALSE;
}
else
{
return TRUE;
}
},
reinterpret_cast<LPARAM>(&new_pid));
// If we have a new pid, get the new name.
if (new_pid != pid)
{
EnumChildWindows(
window, [](HWND hwnd, LPARAM param) -> BOOL {
auto new_pid_ptr = reinterpret_cast<DWORD*>(param);
DWORD pid;
GetWindowThreadProcessId(hwnd, &pid);
if (pid != *new_pid_ptr)
{
*new_pid_ptr = pid;
return FALSE;
}
else
{
return TRUE;
}
},
reinterpret_cast<LPARAM>(&new_pid));
// If we have a new pid, get the new name.
if (new_pid != pid)
{
return get_process_path(new_pid);
}
std::this_thread::sleep_for(std::chrono::milliseconds(100));
return get_process_path(new_pid);
}
}