summaryrefslogtreecommitdiff
path: root/compat/time32/nanosleep_time32.c
blob: ea6bdd81b14add4838dd94ba8985294a5d2fd006 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include "time32.h"
#include <time.h>
#include <errno.h>

int __nanosleep_time32(const struct timespec32 *req32, struct timespec32 *rem32)
{
	struct timespec rem;
	int ret = nanosleep((&(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;
}