avoid updating caller's size when getdelim fails to realloc
[musl.git] / src / sched / affinity.c
blob948ece413fd45dc9569d183112c04df0de13d2ab
1 #define _GNU_SOURCE
2 #include <sched.h>
3 #include <string.h>
4 #include "pthread_impl.h"
5 #include "syscall.h"
7 int sched_setaffinity(pid_t tid, size_t size, const cpu_set_t *set)
9 return syscall(SYS_sched_setaffinity, tid, size, set);
12 int pthread_setaffinity_np(pthread_t td, size_t size, const cpu_set_t *set)
14 return -__syscall(SYS_sched_setaffinity, td->tid, size, set);
17 static int do_getaffinity(pid_t tid, size_t size, cpu_set_t *set)
19 long ret = __syscall(SYS_sched_getaffinity, tid, size, set);
20 if (ret < 0) return ret;
21 if (ret < size) memset((char *)set+ret, 0, size-ret);
22 return 0;
25 int sched_getaffinity(pid_t tid, size_t size, cpu_set_t *set)
27 return __syscall_ret(do_getaffinity(tid, size, set));
30 int pthread_getaffinity_np(pthread_t td, size_t size, cpu_set_t *set)
32 return -do_getaffinity(td->tid, size, set);