| #include "pthread_impl.h" | |
| #include "lock.h" | |
| int pthread_getschedparam(pthread_t t, int *restrict policy, struct sched_param *restrict param) | |
| { | |
| int r; | |
| sigset_t set; | |
| __block_app_sigs(&set); | |
| LOCK(t->killlock); | |
| if (!t->tid) { | |
| r = ESRCH; | |
| } else { | |
| r = -__syscall(SYS_sched_getparam, t->tid, param); | |
| if (!r) { | |
| *policy = __syscall(SYS_sched_getscheduler, t->tid); | |
| } | |
| } | |
| UNLOCK(t->killlock); | |
| __restore_sigs(&set); | |
| return r; | |
| } |