diff options
author | Nick Ing-Simmons <nik@tiuk.ti.com> | 1997-11-29 23:55:31 +0000 |
---|---|---|
committer | Nick Ing-Simmons <nik@tiuk.ti.com> | 1997-11-29 23:55:31 +0000 |
commit | 49f531dad558d800dbb0a247178a2e50ad834fae (patch) | |
tree | bf922c488e53c9a9c4f1125d3fa9cecfc510e464 /thread.h | |
parent | 1f99044f97a88956bef2d7e0af4369aa634ea14e (diff) | |
download | perl-49f531dad558d800dbb0a247178a2e50ad834fae.tar.gz |
Globals and structs via macros - part 1 of N
- introduce perlvars.h intrpvar.h and thrdvar.h
- change perl.h and thread.h to include them with
appropriate macros defined
- result is status-quo but with macros
- next step is to tweak embed.* to capitalize on
new easy-to-find info.
p4raw-id: //depot/ansiperl@337
Diffstat (limited to 'thread.h')
-rw-r--r-- | thread.h | 101 |
1 files changed, 0 insertions, 101 deletions
@@ -138,107 +138,6 @@ struct perl_thread *getTHR _((void)); # define THREAD_RET_CAST(p) ((void *)(p)) #endif /* THREAD_RET */ -struct perl_thread { - /* The fields that used to be global */ - /* Important ones in the first cache line (if alignment is done right) */ - SV ** Tstack_sp; -#ifdef OP_IN_REGISTER - OP * Topsave; -#else - OP * Top; -#endif - SV ** Tcurpad; - SV ** Tstack_base; - - SV ** Tstack_max; - - I32 * Tscopestack; - I32 Tscopestack_ix; - I32 Tscopestack_max; - - ANY * Tsavestack; - I32 Tsavestack_ix; - I32 Tsavestack_max; - - OP ** Tretstack; - I32 Tretstack_ix; - I32 Tretstack_max; - - I32 * Tmarkstack; - I32 * Tmarkstack_ptr; - I32 * Tmarkstack_max; - - SV * TSv; - XPV * TXpv; - struct stat Tstatbuf; -#ifdef HAS_TIMES - struct tms Ttimesbuf; -#endif - - /* XXX What about regexp stuff? */ - - /* Now the fields that used to be "per interpreter" (even when global) */ - - /* Fields used by magic variables such as $@, $/ and so on */ - bool Ttainted; - PMOP * Tcurpm; - SV * Tnrs; - SV * Trs; - GV * Tlast_in_gv; - char * Tofs; - STRLEN Tofslen; - GV * Tdefoutgv; - char * Tchopset; - SV * Tformtarget; - SV * Tbodytarget; - SV * Ttoptarget; - - /* Stashes */ - HV * Tdefstash; - HV * Tcurstash; - - /* Stacks */ - SV ** Ttmps_stack; - I32 Ttmps_ix; - I32 Ttmps_floor; - I32 Ttmps_max; - - int Tin_eval; - OP * Trestartop; - int Tdelaymagic; - bool Tdirty; - U8 Tlocalizing; - COP * Tcurcop; - - PERL_CONTEXT * Tcxstack; - I32 Tcxstack_ix; - I32 Tcxstack_max; - - AV * Tcurstack; - AV * Tmainstack; - JMPENV * Ttop_env; - - /* XXX Sort stuff, firstgv, secongv and so on? */ - - SV * oursv; - HV * cvcache; - perl_os_thread self; /* Underlying thread object */ - U32 flags; - AV * threadsv; /* Per-thread SVs ($_, $@ etc.) */ - AV * specific; /* Thread-specific user data */ - SV * errsv; /* Backing SV for $@ */ - HV * errhv; /* HV for what was %@ in pp_ctl.c */ - perl_mutex mutex; /* For the fields others can change */ - U32 tid; - struct perl_thread *next, *prev; /* Circular linked list of threads */ - JMPENV Tstart_env; /* Top of top_env longjmp() chain */ -#ifdef HAVE_THREAD_INTERN - struct thread_intern i; /* Platform-dependent internals */ -#endif - char trailing_nul; /* For the sake of thrsv and oursv */ -}; - -typedef struct perl_thread *Thread; /* Values and macros for thr->flags */ #define THRf_STATE_MASK 7 |