diff options
-rw-r--r-- | TSRM/TSRM.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/TSRM/TSRM.c b/TSRM/TSRM.c index 76d0c820b4..72a57f5d5f 100644 --- a/TSRM/TSRM.c +++ b/TSRM/TSRM.c @@ -94,7 +94,12 @@ static FILE *tsrm_error_file; } #endif -#if defined(PTHREADS) +#if defined(GNUPTH) +static pth_key_t tls_key; +# define tsrm_tls_set(what) pth_key_setdata(tls_key, (void*)(what)) +# define tsrm_tls_get() pth_key_getdata(tls_key) + +#elif defined(PTHREADS) /* Thread local storage */ static pthread_key_t tls_key; # define tsrm_tls_set(what) pthread_setspecific(tls_key, (void*)(what)) @@ -123,6 +128,7 @@ TSRM_API int tsrm_startup(int expected_threads, int expected_resources, int debu {/*{{{*/ #if defined(GNUPTH) pth_init(); + pth_key_create(&tls_key, 0); #elif defined(PTHREADS) pthread_key_create( &tls_key, 0 ); #elif defined(TSRM_ST) |