diff --git a/src/uniproc_win64.c b/src/uniproc_win64.c index ca0653b..33491a8 100644 --- a/src/uniproc_win64.c +++ b/src/uniproc_win64.c @@ -158,6 +158,11 @@ void uniproc_await_processes(const uniproc_process* p, int* return_codes, const h[num_valid_handles++] = (HANDLE)p[i]._proc_hdl; } if (num_valid_handles == 0) return; + if (num_valid_handles >= MAXIMUM_WAIT_OBJECTS) + { + __debugbreak(); + exit(-1); + } WaitForMultipleObjects(num_valid_handles, h, 1, INFINITE); free(h); @@ -190,6 +195,11 @@ 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 >= MAXIMUM_WAIT_OBJECTS) + { + __debugbreak(); + exit(-1); + } if (num_valid_handles == 0) return 1; DWORD ret = WaitForMultipleObjects(num_valid_handles, h, 1, 0); free(h); @@ -197,7 +207,7 @@ int uniproc_are_processes_finished(const uniproc_process* p, const size_t num_pr } void uniproc_nullify_processes(uniproc_process* p, const size_t num_processes) -{ memset(p, 0, num_processes * sizeof(uniproc_process)); } +{ memset(p, 0, sizeof(uniproc_process) * num_processes); } int uniproc_is_process_null(const uniproc_process* p) { return p->_proc_hdl == NULL; } @@ -212,6 +222,11 @@ 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 >= MAXIMUM_WAIT_OBJECTS) + { + __debugbreak(); + exit(-1); + } if (num_valid_handles == 0) return; WaitForMultipleObjects(num_valid_handles, h, 0, INFINITE); free(h);