diff --git a/src/system/libroot/posix/unistd/system.cpp b/src/system/libroot/posix/unistd/system.cpp index fd756851e2..bf156e7e43 100644 --- a/src/system/libroot/posix/unistd/system.cpp +++ b/src/system/libroot/posix/unistd/system.cpp @@ -27,7 +27,11 @@ system(const char *command) } status_t returnValue; - status_t error = wait_for_thread(thread, &returnValue); + status_t error; + do { + error = wait_for_thread(thread, &returnValue); + } while (error == B_INTERRUPTED); + if (error != B_OK) { errno = error; return -1;