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.
This commit is contained in:
@@ -0,0 +1,17 @@
|
||||
#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, ¶m);
|
||||
if (!r) {
|
||||
*policy = __syscall(SYS_sched_getscheduler, t->tid);
|
||||
}
|
||||
}
|
||||
__unlock(t->killlock);
|
||||
return r;
|
||||
}
|
||||
Reference in New Issue
Block a user