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