1 #include "pthread_impl.h"
4 hidden void *__start_sched(void *p)
6 struct start_sched_args *ssa = p;
7 void *start_arg = ssa->start_arg;
8 void *(*start_fn)(void *) = ssa->start_fn;
9 pthread_t self = __pthread_self();
11 int ret = -__syscall(SYS_sched_setscheduler, self->tid,
12 ssa->attr->_a_policy, &ssa->attr->_a_prio);
13 if (!ret) __restore_sigs(&ssa->mask);
14 a_store(&ssa->futex, ret);
15 __wake(&ssa->futex, 1, 1);
17 self->detach_state = DT_DYNAMIC;
20 return start_fn(start_arg);
23 int pthread_attr_setinheritsched(pthread_attr_t *a, int inherit)
25 if (inherit > 1U) return EINVAL;
26 a->_a_sched = inherit;