simplify pthread tsd key handling

This commit is contained in:
Rich Felker
2011-04-03 02:40:18 -04:00
parent fd80cfa00b
commit 537d33d334
3 changed files with 7 additions and 10 deletions

View File

@ -15,7 +15,6 @@ int pthread_key_create(pthread_key_t *k, void (*dtor)(void *))
unsigned j = i;
pthread_self();
libc.tsd_keys = keys;
if (!dtor) dtor = nodtor;
do {
if (!a_cas_p(keys+j, 0, dtor)) {
@ -26,6 +25,12 @@ int pthread_key_create(pthread_key_t *k, void (*dtor)(void *))
return EAGAIN;
}
int pthread_key_delete(pthread_key_t k)
{
keys[k] = 0;
return 0;
}
void __pthread_tsd_run_dtors(pthread_t self)
{
int i, j, not_finished = self->tsd_used;