diff --git a/src/os/core/win32/os_core_win32.c b/src/os/core/win32/os_core_win32.c index fb0c0185..47761924 100644 --- a/src/os/core/win32/os_core_win32.c +++ b/src/os/core/win32/os_core_win32.c @@ -1072,10 +1072,6 @@ os_process_join(OS_Handle handle, U64 endt_us, U64 *exit_code_out) DWORD sleep_ms = os_w32_sleep_ms_from_endt_us(endt_us); DWORD result = WaitForSingleObject(process, sleep_ms); B32 process_joined = (result == WAIT_OBJECT_0); - if(process_joined) - { - CloseHandle(process); - } if(process_joined && exit_code_out) { DWORD exit_code = 0; @@ -1084,6 +1080,10 @@ os_process_join(OS_Handle handle, U64 endt_us, U64 *exit_code_out) *exit_code_out = exit_code; } } + if(process_joined) + { + CloseHandle(process); + } return process_joined; } diff --git a/src/torture/torture.c b/src/torture/torture.c index 6edc083a..e458edb9 100644 --- a/src/torture/torture.c +++ b/src/torture/torture.c @@ -209,8 +209,6 @@ t_invoke_(String8 exe_path, String8 cmdline, U64 timeout, Arena *output_arena, S } else { os_process_kill(process_handle); } - - os_process_detach(process_handle); } scratch_end(scratch);