simplify pthread tsd key handling
This commit is contained in:
parent
fd80cfa00b
commit
537d33d334
3 changed files with 7 additions and 10 deletions
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -1,7 +0,0 @@
|
|||
#include "pthread_impl.h"
|
||||
|
||||
int pthread_key_delete(pthread_key_t k)
|
||||
{
|
||||
libc.tsd_keys[k] = 0;
|
||||
return 0;
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue