diff --git a/src/uniproc_win64.c b/src/uniproc_win64.c index e805893..eadba5b 100644 --- a/src/uniproc_win64.c +++ b/src/uniproc_win64.c @@ -158,7 +158,7 @@ void uniproc_await_processes(const uniproc_process* p, int* return_codes, const h[i] = (HANDLE)p[i]._proc_hdl; num_valid_handles++; } - + if (num_valid_handles == 0) return; WaitForMultipleObjects(num_valid_handles, h, 1, INFINITE); free(h); @@ -191,6 +191,7 @@ int uniproc_are_processes_finished(const uniproc_process* p, const size_t num_pr h[i] = (HANDLE)p[i]._proc_hdl; num_valid_handles++; } + if (num_valid_handles == 0) return true; DWORD ret = WaitForMultipleObjects(num_valid_handles, h, 1, 0); free(h); return ret >= WAIT_OBJECT_0 && ret < WAIT_OBJECT_0 + num_valid_handles; @@ -212,6 +213,7 @@ void uniproc_await_any_processes(const uniproc_process* p, const size_t num_proc h[i] = (HANDLE)p[i]._proc_hdl; num_valid_handles++; } + if (num_valid_handles == 0) return; WaitForMultipleObjects(num_valid_handles, h, 0, INFINITE); free(h); }