diff --git a/src/util/subprocess.h b/src/util/subprocess.h index 086a4553619..ba274dfb471 100644 --- a/src/util/subprocess.h +++ b/src/util/subprocess.h @@ -1043,7 +1043,12 @@ inline int Popen::wait() noexcept(false) #ifdef __USING_WINDOWS__ int ret = WaitForSingleObject(process_handle_, INFINITE); - return 0; + DWORD dretcode_; + + if (FALSE == GetExitCodeProcess(process_handle_, &dretcode_)) + throw OSError("Failed during call to GetExitCodeProcess", 0); + + return (int)dretcode_; #else int ret, status; std::tie(ret, status) = util::wait_for_child_exit(child_pid_);