diff options
-rw-r--r-- | thread.h | 7 | ||||
-rw-r--r-- | util.c | 12 |
2 files changed, 14 insertions, 5 deletions
@@ -250,7 +250,12 @@ #endif /* JOIN */ #ifndef PERL_GET_CONTEXT -# define PERL_GET_CONTEXT pthread_getspecific(PL_thr_key) +/* True for Tru64 version 4.0 and up as well */ +# if defined(__ALPHA) && (__VMS_VER >= 70000000) +# define PERL_GET_CONTEXT pthread_unchecked_getspecific_np(PL_thr_key) +# else +# define PERL_GET_CONTEXT pthread_getspecific(PL_thr_key) +# endif #endif #ifndef PERL_SET_CONTEXT @@ -3489,10 +3489,14 @@ Perl_get_context(void) Perl_croak_nocontext("panic: pthread_getspecific"); return (void*)t; # else -# ifdef I_MACH_CTHREADS - return (void*)cthread_data(cthread_self()); -# else - return (void*)pthread_getspecific(PL_thr_key); +# ifdef I_MACH_CTHREADS + return (void*)cthread_data(cthread_self()); +# else +# if defined(__ALPHA) && (__VMS_VER >= 70000000) + return (void*)pthread_unchecked_getspecific_np(PL_thr_key); +# else + return (void*)pthread_getspecific(PL_thr_key); +# endif # endif # endif #else |