Added error checking to ensure that we remain within the maximum of 64 objects.
Reformatted a memcpy to have sizeof come before count.
This commit is contained in:
@@ -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;
|
h[num_valid_handles++] = (HANDLE)p[i]._proc_hdl;
|
||||||
}
|
}
|
||||||
if (num_valid_handles == 0) return;
|
if (num_valid_handles == 0) return;
|
||||||
|
if (num_valid_handles >= MAXIMUM_WAIT_OBJECTS)
|
||||||
|
{
|
||||||
|
__debugbreak();
|
||||||
|
exit(-1);
|
||||||
|
}
|
||||||
WaitForMultipleObjects(num_valid_handles, h, 1, INFINITE);
|
WaitForMultipleObjects(num_valid_handles, h, 1, INFINITE);
|
||||||
free(h);
|
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;
|
h[i] = (HANDLE)p[i]._proc_hdl;
|
||||||
num_valid_handles++;
|
num_valid_handles++;
|
||||||
}
|
}
|
||||||
|
if (num_valid_handles >= MAXIMUM_WAIT_OBJECTS)
|
||||||
|
{
|
||||||
|
__debugbreak();
|
||||||
|
exit(-1);
|
||||||
|
}
|
||||||
if (num_valid_handles == 0) return 1;
|
if (num_valid_handles == 0) return 1;
|
||||||
DWORD ret = WaitForMultipleObjects(num_valid_handles, h, 1, 0);
|
DWORD ret = WaitForMultipleObjects(num_valid_handles, h, 1, 0);
|
||||||
free(h);
|
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)
|
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)
|
int uniproc_is_process_null(const uniproc_process* p)
|
||||||
{ return p->_proc_hdl == NULL; }
|
{ 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;
|
h[i] = (HANDLE)p[i]._proc_hdl;
|
||||||
num_valid_handles++;
|
num_valid_handles++;
|
||||||
}
|
}
|
||||||
|
if (num_valid_handles >= MAXIMUM_WAIT_OBJECTS)
|
||||||
|
{
|
||||||
|
__debugbreak();
|
||||||
|
exit(-1);
|
||||||
|
}
|
||||||
if (num_valid_handles == 0) return;
|
if (num_valid_handles == 0) return;
|
||||||
WaitForMultipleObjects(num_valid_handles, h, 0, INFINITE);
|
WaitForMultipleObjects(num_valid_handles, h, 0, INFINITE);
|
||||||
free(h);
|
free(h);
|
||||||
|
|||||||
Reference in New Issue
Block a user