__pthread_tsd_run_dtors();
- __lock(self->exitlock);
+ LOCK(self->exitlock);
/* Mark this thread dead before decrementing count */
- __lock(self->killlock);
+ LOCK(self->killlock);
self->dead = 1;
/* Block all signals before decrementing the live thread count.
* been blocked. This precludes observation of the thread id
* as a live thread (with application code running in it) after
* the thread was reported dead by ESRCH being returned. */
- __unlock(self->killlock);
+ UNLOCK(self->killlock);
/* It's impossible to determine whether this is "the last thread"
* until performing the atomic decrement, since multiple threads
if (a_cas(t->exitlock, 0, INT_MIN + 1))
return __pthread_join(t, 0);
t->detached = 2;
- __unlock(t->exitlock);
+ UNLOCK(t->exitlock);
return 0;
}
int pthread_getschedparam(pthread_t t, int *restrict policy, struct sched_param *restrict param)
{
int r;
- __lock(t->killlock);
+ LOCK(t->killlock);
if (t->dead) {
r = ESRCH;
} else {
*policy = __syscall(SYS_sched_getscheduler, t->tid);
}
}
- __unlock(t->killlock);
+ UNLOCK(t->killlock);
return r;
}
int pthread_kill(pthread_t t, int sig)
{
int r;
- __lock(t->killlock);
+ LOCK(t->killlock);
r = t->dead ? ESRCH : -__syscall(SYS_tkill, t->tid, sig);
- __unlock(t->killlock);
+ UNLOCK(t->killlock);
return r;
}
int pthread_setschedparam(pthread_t t, int policy, const struct sched_param *param)
{
int r;
- __lock(t->killlock);
+ LOCK(t->killlock);
r = t->dead ? ESRCH : -__syscall(SYS_sched_setscheduler, t->tid, policy, param);
- __unlock(t->killlock);
+ UNLOCK(t->killlock);
return r;
}
int pthread_setschedprio(pthread_t t, int prio)
{
int r;
- __lock(t->killlock);
+ LOCK(t->killlock);
r = t->dead ? ESRCH : -__syscall(SYS_sched_setparam, t->tid, &prio);
- __unlock(t->killlock);
+ UNLOCK(t->killlock);
return r;
}