summaryrefslogtreecommitdiff
path: root/embedvar.h
diff options
context:
space:
mode:
authorGurusamy Sarathy <gsar@cpan.org>1998-11-29 12:40:28 +0000
committerGurusamy Sarathy <gsar@cpan.org>1998-11-29 12:40:28 +0000
commitb099ddc068b2498767e6f04ac167d9633b895ec4 (patch)
treec5565911f062bddb5d68139f8aed5d8489d2a488 /embedvar.h
parentbfc605f9e1d41dd7493c0c0fcfd1304c238dbe4d (diff)
downloadperl-b099ddc068b2498767e6f04ac167d9633b895ec4.tar.gz
various fixes for race conditions under threads: mutex locks based
on PL_threadnum were seriously flawed, since it means more than one thread could enter the critical region; PL_na was global instead of thread-local; child thread could finish and free thr structures before Thread->new() got around to creating the Thread object; cv_clone() needed locking, as it mucks with PL_comppad and other global data; new_struct_thread() needed to lock template-thread's mutex while copying its data p4raw-id: //depot/perl@2385
Diffstat (limited to 'embedvar.h')
-rw-r--r--embedvar.h5
1 files changed, 3 insertions, 2 deletions
diff --git a/embedvar.h b/embedvar.h
index 4d28711ee5..bc1d495cda 100644
--- a/embedvar.h
+++ b/embedvar.h
@@ -47,6 +47,7 @@
#define PL_markstack_ptr (PL_curinterp->Tmarkstack_ptr)
#define PL_maxscream (PL_curinterp->Tmaxscream)
#define PL_modcount (PL_curinterp->Tmodcount)
+#define PL_na (PL_curinterp->Tna)
#define PL_nrs (PL_curinterp->Tnrs)
#define PL_ofs (PL_curinterp->Tofs)
#define PL_ofslen (PL_curinterp->Tofslen)
@@ -438,6 +439,7 @@
#define PL_Tmarkstack_ptr PL_markstack_ptr
#define PL_Tmaxscream PL_maxscream
#define PL_Tmodcount PL_modcount
+#define PL_Tna PL_na
#define PL_Tnrs PL_nrs
#define PL_Tofs PL_ofs
#define PL_Tofslen PL_ofslen
@@ -572,6 +574,7 @@
#define PL_markstack_ptr (thr->Tmarkstack_ptr)
#define PL_maxscream (thr->Tmaxscream)
#define PL_modcount (thr->Tmodcount)
+#define PL_na (thr->Tna)
#define PL_nrs (thr->Tnrs)
#define PL_ofs (thr->Tofs)
#define PL_ofslen (thr->Tofslen)
@@ -727,7 +730,6 @@
#define PL_multi_end (PL_Vars.Gmulti_end)
#define PL_multi_open (PL_Vars.Gmulti_open)
#define PL_multi_start (PL_Vars.Gmulti_start)
-#define PL_na (PL_Vars.Gna)
#define PL_nexttoke (PL_Vars.Gnexttoke)
#define PL_nexttype (PL_Vars.Gnexttype)
#define PL_nextval (PL_Vars.Gnextval)
@@ -860,7 +862,6 @@
#define PL_Gmulti_end PL_multi_end
#define PL_Gmulti_open PL_multi_open
#define PL_Gmulti_start PL_multi_start
-#define PL_Gna PL_na
#define PL_Gnexttoke PL_nexttoke
#define PL_Gnexttype PL_nexttype
#define PL_Gnextval PL_nextval