#include <threads.h> | |
int __pthread_key_create(tss_t*, void (*)(void*)); | |
int tss_create(tss_t* tss, tss_dtor_t dtor) { | |
/* Different error returns are possible. C glues them together into | |
* just failure notification. Can't be optimized to a tail call, | |
* unless thrd_error equals EAGAIN. */ | |
return __pthread_key_create(tss, dtor) ? thrd_error : thrd_success; | |
} |