Fixed issues where WaitForMultipleObjects may hang when given a NULL process. Caused by incorrect placement into an array of valid processes.
This commit is contained in:
@@ -155,8 +155,7 @@ void uniproc_await_processes(const uniproc_process* p, int* return_codes, const
|
|||||||
for (size_t i = 0; i < num_processes; ++i)
|
for (size_t i = 0; i < num_processes; ++i)
|
||||||
{
|
{
|
||||||
if (uniproc_is_process_null(p + i)) continue;
|
if (uniproc_is_process_null(p + i)) continue;
|
||||||
h[i] = (HANDLE)p[i]._proc_hdl;
|
h[num_valid_handles++] = (HANDLE)p[i]._proc_hdl;
|
||||||
num_valid_handles++;
|
|
||||||
}
|
}
|
||||||
if (num_valid_handles == 0) return;
|
if (num_valid_handles == 0) return;
|
||||||
WaitForMultipleObjects(num_valid_handles, h, 1, INFINITE);
|
WaitForMultipleObjects(num_valid_handles, h, 1, INFINITE);
|
||||||
|
|||||||
Reference in New Issue
Block a user