From bce813aac1160c79546da18348b6e6d4f2d4e476 Mon Sep 17 00:00:00 2001 From: Dan Sugalski Date: Wed, 16 May 2001 14:05:19 -0400 Subject: [PATCH] Quick thread speedup Message-Id: <5.1.0.14.0.20010516175826.01afde08@24.8.96.48> p4raw-id: //depot/perl@10141 --- thread.h | 7 ++++++- util.c | 12 ++++++++---- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/thread.h b/thread.h index 99269a1..87e8974 100644 --- a/thread.h +++ b/thread.h @@ -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 diff --git a/util.c b/util.c index 720bcf0..848a61e 100644 --- a/util.c +++ b/util.c @@ -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 -- 2.7.4