summaryrefslogtreecommitdiff
path: root/thread.h
diff options
context:
space:
mode:
authorNick Ing-Simmons <nik@tiuk.ti.com>1997-11-29 23:55:31 +0000
committerNick Ing-Simmons <nik@tiuk.ti.com>1997-11-29 23:55:31 +0000
commit49f531dad558d800dbb0a247178a2e50ad834fae (patch)
treebf922c488e53c9a9c4f1125d3fa9cecfc510e464 /thread.h
parent1f99044f97a88956bef2d7e0af4369aa634ea14e (diff)
downloadperl-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.h101
1 files changed, 0 insertions, 101 deletions
diff --git a/thread.h b/thread.h
index e29f8add21..7e98c1d6e3 100644
--- a/thread.h
+++ b/thread.h
@@ -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