xref: /aosp_15_r20/external/musl/src/thread/thrd_sleep.c (revision c9945492fdd68bbe62686c5b452b4dc1be3f8453)
1*c9945492SAndroid Build Coastguard Worker #include <threads.h>
2*c9945492SAndroid Build Coastguard Worker #include <time.h>
3*c9945492SAndroid Build Coastguard Worker #include <errno.h>
4*c9945492SAndroid Build Coastguard Worker #include "syscall.h"
5*c9945492SAndroid Build Coastguard Worker 
thrd_sleep(const struct timespec * req,struct timespec * rem)6*c9945492SAndroid Build Coastguard Worker int thrd_sleep(const struct timespec *req, struct timespec *rem)
7*c9945492SAndroid Build Coastguard Worker {
8*c9945492SAndroid Build Coastguard Worker 	int ret = -__clock_nanosleep(CLOCK_REALTIME, 0, req, rem);
9*c9945492SAndroid Build Coastguard Worker 	switch (ret) {
10*c9945492SAndroid Build Coastguard Worker 	case 0:      return 0;
11*c9945492SAndroid Build Coastguard Worker 	case -EINTR: return -1; /* value specified by C11 */
12*c9945492SAndroid Build Coastguard Worker 	default:     return -2;
13*c9945492SAndroid Build Coastguard Worker 	}
14*c9945492SAndroid Build Coastguard Worker }
15