X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=ext%2Fthreads%2Fthreads.h;h=72a4872485e5723d5602c96ea81dddb307168f99;hb=84d4ea48280f6b54fdc70fe4c8b9494e3331071e;hp=d8c0dabb2af4a1e7c8ff05fce0d99f7020d4c4d9;hpb=82c40bf6e04dd4097ac1971f1cce87fd35ccf6d2;p=p5sagit%2Fp5-mst-13.2.git diff --git a/ext/threads/threads.h b/ext/threads/threads.h index d8c0dab..72a4872 100755 --- a/ext/threads/threads.h +++ b/ext/threads/threads.h @@ -9,8 +9,8 @@ #include #include #define PERL_THREAD_DETACH(t) -#define PERL_THREAD_SET_SPECIFIC(k,v) TlsSetValue(k,v) -#define PERL_THREAD_GET_SPECIFIC(k) TlsGetValue(k) +#define PERL_THREAD_SETSPECIFIC(k,v) TlsSetValue(k,v) +#define PERL_THREAD_GETSPECIFIC(k,v) v = TlsGetValue(k) #define PERL_THREAD_ALLOC_SPECIFIC(k) \ STMT_START {\ if((k = TlsAlloc()) == TLS_OUT_OF_INDEXES) {\ @@ -22,18 +22,25 @@ STMT_START {\ #include #include -#define PERL_THREAD_SET_SPECIFIC(k,v) pthread_setspecific(k,v) -#define PERL_THREAD_GET_SPECIFIC(k) PTHREAD_GETSPECIFIC(k) +#define PERL_THREAD_SETSPECIFIC(k,v) pthread_setspecific(k,v) +#ifdef OLD_PTHREADS_API +#define PERL_THREAD_DETACH(t) pthread_detach(&(t)) +#define PERL_THREAD_GETSPECIFIC(k,v) pthread_getspecific(k,&v) #define PERL_THREAD_ALLOC_SPECIFIC(k) STMT_START {\ - if(pthread_key_create(&(k),0)) {\ + if(pthread_keycreate(&(k),0)) {\ PerlIO_printf(PerlIO_stderr(), "panic threads.h: pthread_key_create");\ exit(1);\ }\ } STMT_END -#ifdef OLD_PTHREADS_API -#define PERL_THREAD_DETACH(t) pthread_detach(&(t)) #else #define PERL_THREAD_DETACH(t) pthread_detach((t)) +#define PERL_THREAD_GETSPECIFIC(k,v) v = pthread_getspecific(k) +#define PERL_THREAD_ALLOC_SPECIFIC(k) STMT_START {\ + if(pthread_key_create(&(k),0)) {\ + PerlIO_printf(PerlIO_stderr(), "panic threads.h: pthread_key_create");\ + exit(1);\ + }\ +} STMT_END #endif #endif