From: Malcolm Beattie Date: Mon, 22 Sep 1997 15:10:40 +0000 (+0000) Subject: Minor multi-threading patches for VMS. X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=809a5acc2df9d5b3c0528c9c63a1f59bbe24b2cf;p=p5sagit%2Fp5-mst-13.2.git Minor multi-threading patches for VMS. p4raw-id: //depot/perl@66 --- diff --git a/mg.c b/mg.c index 56fb495..b931065 100644 --- a/mg.c +++ b/mg.c @@ -454,11 +454,14 @@ MAGIC *mg; #endif break; case '?': - sv_setiv(sv, (IV)STATUS_CURRENT); + { + dTHR; + sv_setiv(sv, (IV)STATUS_CURRENT); #ifdef COMPLEX_STATUS - LvTARGOFF(sv) = statusvalue; - LvTARGLEN(sv) = statusvalue_vms; + LvTARGOFF(sv) = statusvalue; + LvTARGLEN(sv) = statusvalue_vms; #endif + } break; case '^': s = IoTOP_NAME(GvIOp(defoutgv)); diff --git a/thread.h b/thread.h index 06d5d89..60ff29e 100644 --- a/thread.h +++ b/thread.h @@ -213,6 +213,8 @@ typedef struct condpair { #undef cxstack #undef cxstack_ix #undef cxstack_max +#undef defstash +#undef curstash #undef tmps_stack #undef tmps_floor #undef tmps_ix @@ -223,6 +225,10 @@ typedef struct condpair { #undef top_env #undef runlevel #undef in_eval +#undef restartop +#undef delaymagic +#undef dirty +#undef localizing #define self (thr->Tself) #define stack_base (thr->Tstack_base) @@ -236,6 +242,7 @@ typedef struct condpair { #endif #define curcop (thr->Tcurcop) #define stack (thr->Tstack) +#define curstack (thr->Tcurstack) #define mainstack (thr->Tmainstack) #define markstack (thr->Tmarkstack) #define markstack_ptr (thr->Tmarkstack_ptr) diff --git a/vms/vms.c b/vms/vms.c index 6ff1110..6f4b146 100644 --- a/vms/vms.c +++ b/vms/vms.c @@ -2655,6 +2655,7 @@ vms_execfree() { static char * setup_argstr(SV *really, SV **mark, SV **sp) { + dTHR; char *junk, *tmps = Nullch; register size_t cmdlen = 0; size_t rlen; @@ -3179,6 +3180,7 @@ static long int utc_offset_secs; /*{{{time_t my_time(time_t *timep)*/ time_t my_time(time_t *timep) { + dTHR; time_t when; if (gmtime_emulation_type == 0) { @@ -3226,6 +3228,7 @@ time_t my_time(time_t *timep) struct tm * my_gmtime(const time_t *timep) { + dTHR; char *p; time_t when; @@ -3251,6 +3254,7 @@ my_gmtime(const time_t *timep) struct tm * my_localtime(const time_t *timep) { + dTHR; time_t when; if (timep == NULL) { @@ -3296,6 +3300,7 @@ static const long int utime_baseadjust[2] = { 0x4beb4000, 0x7c9567 }; /*{{{int my_utime(char *path, struct utimbuf *utimes)*/ int my_utime(char *file, struct utimbuf *utimes) { + dTHR; register int i; long int bintime[2], len = 2, lowbit, unixtime, secscale = 10000000; /* seconds --> 100 ns intervals */ @@ -3680,6 +3685,8 @@ cando_by_name(I32 bit, I32 effective, char *fname) int flex_fstat(int fd, struct mystat *statbufp) { + dTHR; + if (!fstat(fd,(stat_t *) statbufp)) { if (statbufp == (struct mystat *) &statcache) *namecache == '\0'; statbufp->st_dev = encode_dev(statbufp->st_devnam); @@ -3704,6 +3711,7 @@ flex_fstat(int fd, struct mystat *statbufp) int flex_stat(char *fspec, struct mystat *statbufp) { + dTHR; char fileified[NAM$C_MAXRSS+1]; int retval = -1;