summaryrefslogtreecommitdiff
path: root/src/buildtool/system/system_command.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/buildtool/system/system_command.hpp')
-rw-r--r--src/buildtool/system/system_command.hpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/buildtool/system/system_command.hpp b/src/buildtool/system/system_command.hpp
index ade2f54b..909c047a 100644
--- a/src/buildtool/system/system_command.hpp
+++ b/src/buildtool/system/system_command.hpp
@@ -201,7 +201,7 @@ class SystemCommand {
// wait for child to finish and obtain return value
int status{};
std::optional<int> retval{std::nullopt};
- do {
+ while (not retval) {
if (::waitpid(pid, &status, 0) == -1) {
// this should never happen
logger_.Emit(LogLevel::Error,
@@ -221,7 +221,7 @@ class SystemCommand {
LogLevel::Debug, "Child got killed by signal {}", sig);
}
// continue waitpid() in case we got STOPSIG from child
- } while (not retval);
+ }
return retval;
}