ExecAndWait

This commit is contained in:
Krzosa Karol
2024-08-12 08:12:30 +02:00
parent d6dd7c9eab
commit 3251df6068
6 changed files with 43 additions and 6 deletions

View File

@@ -396,6 +396,7 @@ Process CreateCommandLineProcess(String command_line, String working_dir) {
bool PollExitCode(Process *process) {
Assert(process->is_valid);
Win32Process *p = (Win32Process *)process->platform;
if (process->exited) return process->exited;
if (WaitForSingleObject(p->handle, 0) != WAIT_OBJECT_0) {
return false;
@@ -407,11 +408,15 @@ bool PollExitCode(Process *process) {
exit_code = -1;
}
process->exited = true;
process->exit_code = (int)exit_code;
Win32CloseProcess(process);
return true;
}
void CloseProcess(Process *process) {
Win32CloseProcess(process);
}
void KillProcess(Process *process) {
Assert(process->is_valid);
Win32Process *p = (Win32Process *)process->platform;
@@ -437,6 +442,10 @@ StdoutPollInfo PollStdout(Process *process, char *buffer, int64_t buffer_size) {
return result;
}
if (!buffer) {
return {0, bytes_avail};
}
if (bytes_avail == 0) {
return result;
}