diff options
Diffstat (limited to 'nonstd/static/thread.h')
| -rw-r--r-- | nonstd/static/thread.h | 39 |
1 files changed, 0 insertions, 39 deletions
diff --git a/nonstd/static/thread.h b/nonstd/static/thread.h deleted file mode 100644 index db66c0b7..00000000 --- a/nonstd/static/thread.h +++ /dev/null @@ -1,39 +0,0 @@ -#if defined __STDC_VERSION__ && __STDC_VERSION__ >= 201101L - -static struct per_thread *per_thread(void) -{ - _Thread_local static struct per_thread pt = {0}; - return &pt; -} - -#elif defined _POSIX_C_SOURCE && _POSIX_C_SOURCE >= 199506L -#include <pthread.h> - -static pthread_key_t __per_thread_key; - -static void _make_key(void) -{ - pthread_key_create(&key, NULL); -} - -static struct per_thread *per_thread(void) -{ - static pthread_once_t key_once = PTHREAD_ONCE_INIT; - struct per_thread *pt; - pthread_once(&key_once, make_key); - if ((pt = pthread_getspecific(key)) == NULL) { - pt = calloc(1, sizeof (*pt)); - pthread_setspecific(key, pt); - } - return pt; -} - -#else - -static struct per_thread *per_thread(void) -{ - static struct per_thread pt = {0}; - return &pt; -} - -#endif |
