summaryrefslogtreecommitdiff
path: root/compat/time32/thrd_sleep_time32.c
blob: 59088001b22039bafc5a637669816f2dd3357a67 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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;
}