From: Ben Harris Date: Sun, 18 Nov 2018 11:46:50 +0000 (+0000) Subject: Correct error handling for clock_nanosleep(). X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~bjharris/git?a=commitdiff_plain;h=aaba2422dce96db32b8cf188a6d814abdf1a2a43;p=clunk.git Correct error handling for clock_nanosleep(). It apparently returns its errors rather than setting errno. --- diff --git a/clunk.c b/clunk.c index aebd1db..32d7db7 100644 --- a/clunk.c +++ b/clunk.c @@ -1,4 +1,5 @@ #include +#include #include #include #include @@ -89,7 +90,9 @@ pulse() err(1, "sigprocmask(block)"); dummy_out(true); record_tick(); - clock_nanosleep(CLOCK_MONOTONIC, 0, &ts, NULL); + errno = clock_nanosleep(CLOCK_MONOTONIC, 0, &ts, NULL); + if (errno != 0) + err(1, "clock_nanosleep"); dummy_out(false); if (sigprocmask(SIG_SETMASK, &saved_mask, NULL) != 0) err(1, "sigprocmask(restore)"); @@ -209,8 +212,9 @@ run() /* Choose when next tick will be. */ ts.tv_nsec = 1000000000 - pulsewidth; ts.tv_sec += tick - 1; - if (clock_nanosleep(CLOCK_REALTIME, TIMER_ABSTIME, &ts, NULL) - != 0) + errno = clock_nanosleep(CLOCK_REALTIME, TIMER_ABSTIME, + &ts, NULL); + if (errno != 0) err(1, "clock_nanosleep"); } }