diff --git a/src/system/libroot/posix/unistd/alarm.c b/src/system/libroot/posix/unistd/alarm.c index e47f6e9261..fbfeddcc11 100644 --- a/src/system/libroot/posix/unistd/alarm.c +++ b/src/system/libroot/posix/unistd/alarm.c @@ -15,12 +15,17 @@ uint alarm(unsigned int sec) { struct itimerval value, oldValue; + int result; value.it_interval.tv_sec = value.it_interval.tv_usec = 0; value.it_value.tv_sec = sec; value.it_value.tv_usec = 0; - if (setitimer(ITIMER_REAL, &value, &oldValue) < 0) + + result = setitimer(ITIMER_REAL, &value, &oldValue); + if (result < 0) { + errno = result; return -1; + } if (oldValue.it_value.tv_usec) oldValue.it_value.tv_sec++;