musl/src/thread/pthread_getschedparam.c
Rich Felker 1e21e78bf7 add support for thread scheduling (POSIX TPS option)
linux's sched_* syscalls actually implement the TPS (thread
scheduling) functionality, not the PS (process scheduling)
functionality which the sched_* functions are supposed to have.
omitting support for the PS option (and having the sched_* interfaces
fail with ENOSYS rather than omitting them, since some broken software
assumes they exist) seems to be the only conforming way to do this on
linux.
2012-11-11 15:38:04 -05:00

18 lines
361 B
C

#include "pthread_impl.h"
int pthread_getschedparam(pthread_t t, int *restrict policy, struct sched_param *restrict param)
{
int r;
__lock(t->killlock);
if (t->dead) {
r = ESRCH;
} else {
r = -__syscall(SYS_sched_getparam, t->tid, &param);
if (!r) {
*policy = __syscall(SYS_sched_getscheduler, t->tid);
}
}
__unlock(t->killlock);
return r;
}