These all have POSIX equivalents, but aside from tss_get, they all have minor changes to the signature or return value and thus need to exist as separate functions.
12 lines
368 B
C
12 lines
368 B
C
#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;
|
|
}
|