Simplify process_wait()

The function process_wait() returned a bool (true if the process
terminated successfully) and provided the exit code via an output
parameter exit_code.

But the returned value was always equivalent to exit_code == 0, so just
return the exit code instead.
This commit is contained in:
Romain Vimont
2021-01-22 18:29:21 +01:00
parent 94eff0a4bb
commit b8edcf52b0
6 changed files with 30 additions and 36 deletions

View File

@@ -59,31 +59,28 @@ process_terminate(HANDLE handle) {
return TerminateProcess(handle, 1);
}
static bool
process_wait_internal(HANDLE handle, DWORD *exit_code, bool close) {
static exit_code_t
process_wait_internal(HANDLE handle, bool close) {
DWORD code;
if (WaitForSingleObject(handle, INFINITE) != WAIT_OBJECT_0
|| !GetExitCodeProcess(handle, &code)) {
// could not wait or retrieve the exit code
code = -1; // max value, it's unsigned
}
if (exit_code) {
*exit_code = code;
code = NO_EXIT_CODE; // max value, it's unsigned
}
if (close) {
CloseHandle(handle);
}
return !code;
return code;
}
bool
process_wait(HANDLE handle, DWORD *exit_code) {
return process_wait_internal(handle, exit_code, true);
exit_code_t
process_wait(HANDLE handle) {
return process_wait_internal(handle, true);
}
bool
process_wait_noclose(HANDLE handle, DWORD *exit_code) {
return process_wait_internal(handle, exit_code, false);
exit_code_t
process_wait_noclose(HANDLE handle) {
return process_wait_internal(handle, false);
}
void