diff options
Diffstat (limited to 'libc-top-half/musl/compat/time32/thrd_sleep_time32.c')
-rw-r--r-- | libc-top-half/musl/compat/time32/thrd_sleep_time32.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/libc-top-half/musl/compat/time32/thrd_sleep_time32.c b/libc-top-half/musl/compat/time32/thrd_sleep_time32.c new file mode 100644 index 0000000..5908800 --- /dev/null +++ b/libc-top-half/musl/compat/time32/thrd_sleep_time32.c @@ -0,0 +1,16 @@ +#include "time32.h" +#include <time.h> +#include <threads.h> +#include <errno.h> + +int __thrd_sleep_time32(const struct timespec32 *req32, struct timespec32 *rem32) +{ + struct timespec rem; + int ret = thrd_sleep((&(struct timespec){ + .tv_sec = req32->tv_sec, .tv_nsec = req32->tv_nsec}), &rem); + if (ret<0 && errno==EINTR && rem32) { + rem32->tv_sec = rem.tv_sec; + rem32->tv_nsec = rem.tv_nsec; + } + return ret; +} |