X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=perlvars.h;h=51956795d8be82f440263c3b0f76d58cd8637676;hb=c8688140bd64a2d3d14b3af91b889a363c72ea56;hp=664164dbcdf582967c7d5618c15fe278af4c012b;hpb=43165c0500446fb6e4a036657f82b50e22c886e0;p=p5sagit%2Fp5-mst-13.2.git diff --git a/perlvars.h b/perlvars.h index 664164d..5195679 100644 --- a/perlvars.h +++ b/perlvars.h @@ -1,3 +1,12 @@ +/* perlvars.h + * + * Copyright (c) 1997-2002, Larry Wall + * + * You may distribute under the terms of either the GNU General Public + * License or the Artistic License, as specified in the README file. + * + */ + /****************/ /* Truly global */ /****************/ @@ -11,16 +20,16 @@ * * The 'G' prefix is only needed for vars that need appropriate #defines * generated in embed*.h. Such symbols are also used to generate - * the appropriate export list for win32. - * - * Avoid build-specific #ifdefs here, like DEBUGGING. That way, - * we can keep binary compatibility of the curinterp structure */ - + * the appropriate export list for win32. */ /* global state */ PERLVAR(Gcurinterp, PerlInterpreter *) /* currently running interpreter - * XXX this needs to be in TLS */ + * (initial parent interpreter under + * useithreads) */ +#if defined(USE_5005THREADS) || defined(USE_ITHREADS) +PERLVAR(Gthr_key, perl_key) /* key to retrieve per-thread struct */ +#endif /* constants (these are not literals to facilitate pointer comparisons) */ PERLVARIC(GYes, char *, "1") @@ -30,3 +39,21 @@ PERLVARIC(Gpatleave, char *, "\\.^$@dDwWsSbB+*?|()-nrtfeaxc0123456789[{]}") /* XXX does anyone even use this? */ PERLVARI(Gdo_undump, bool, FALSE) /* -u or dump seen? */ + +#if defined(MYMALLOC) && (defined(USE_5005THREADS) || defined(USE_ITHREADS)) +PERLVAR(Gmalloc_mutex, perl_mutex) /* Mutex for malloc */ +#endif + +#if defined(USE_ITHREADS) +PERLVAR(Gop_mutex, perl_mutex) /* Mutex for op refcounting */ +#endif + +/* Force inclusion of both runops options */ +PERLVARI(Grunops_std, runops_proc_t, MEMBER_TO_FPTR(Perl_runops_standard)) +PERLVARI(Grunops_dbg, runops_proc_t, MEMBER_TO_FPTR(Perl_runops_debug)) + +/* Hooks to shared SVs and locks. */ +PERLVARI(Gsharehook, share_proc_t, MEMBER_TO_FPTR(Perl_sv_nosharing)) +PERLVARI(Glockhook, share_proc_t, MEMBER_TO_FPTR(Perl_sv_nolocking)) +PERLVARI(Gunlockhook, share_proc_t, MEMBER_TO_FPTR(Perl_sv_nounlocking)) +