X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=vmesa%2Fvmesa.c;h=59dd19b6c1abf47f56030bef6f070881d8e7cab3;hb=338584c0b1c948a967b5e2ecbb69c512410589e4;hp=b39638086fffaea96ded602df3c44d67c1546a80;hpb=3d35f11b2518ea9ea787f5db97c6c3e7cff04dbf;p=p5sagit%2Fp5-mst-13.2.git diff --git a/vmesa/vmesa.c b/vmesa/vmesa.c index b396380..59dd19b 100644 --- a/vmesa/vmesa.c +++ b/vmesa/vmesa.c @@ -121,8 +121,7 @@ do_aspawn(SV* really, SV **mark, SV **sp) status = FAIL; if (sp > mark) { - dTHR; - New(401,PL_Argv, sp - mark + 1, char*); + Newx(PL_Argv, sp - mark + 1, char*); a = PL_Argv; while (++mark <= sp) { @@ -137,7 +136,7 @@ do_aspawn(SV* really, SV **mark, SV **sp) fdMap[STDOUT_FILENO] = Perl_stdout_fd; fdMap[STDERR_FILENO] = STDERR_FILENO; nFd = 3; - *a = Nullch; + *a = NULL; /*-----------------------------------------------------*/ /* Will execvp() use PATH? */ /*-----------------------------------------------------*/ @@ -182,13 +181,13 @@ do_aspawn(SV* really, SV **mark, SV **sp) /* be used by my_pclose */ /*---------------------------------------------*/ close(fd); - FDPID_LOCK; + MUTEX_LOCK(&PL_fdpid_mutex); p_sv = av_fetch(PL_fdpid,fd,TRUE); fd = (int) SvIVX(*p_sv); SvREFCNT_dec(*p_sv); *p_sv = &PL_sv_undef; sv = *av_fetch(PL_fdpid,fd,TRUE); - FDPID_UNLOCK; + MUTEX_UNLOCK(&PL_fdpid_mutex); (void) SvUPGRADE(sv, SVt_IV); SvIVX(sv) = pid; status = 0; @@ -261,7 +260,7 @@ do_spawn(char *cmd, int execf) } } - New(402,PL_Argv, (s - cmd) / 2 + 2, char*); + Newx(PL_Argv, (s - cmd) / 2 + 2, char*); PL_Cmd = savepvn(cmd, s-cmd); a = PL_Argv; for (s = PL_Cmd; *s;) @@ -273,7 +272,7 @@ do_spawn(char *cmd, int execf) if (*s) *s++ = '\0'; } - *a = Nullch; + *a = NULL; fdMap[STDIN_FILENO] = Perl_stdin_fd; fdMap[STDOUT_FILENO] = Perl_stdout_fd; fdMap[STDERR_FILENO] = STDERR_FILENO; @@ -286,7 +285,6 @@ do_spawn(char *cmd, int execf) (const char **) environ); if (pid < 0) { - dTHR; status = FAIL; if (ckWARN(WARN_EXEC)) warner(WARN_EXEC,"Can't exec \"%s\": %s", @@ -414,29 +412,29 @@ my_popen(char *cmd, char *mode) pid = spawn_cmd(cmd, Perl_stdin_fd, Perl_stdout_fd); if (pid >= 0) { - FDPID_LOCK; + MUTEX_LOCK(&PL_fdpid_mutex); sv = *av_fetch(PL_fdpid,pFd[this],TRUE); - FDPID_UNLOCK; + MUTEX_UNLOCK(&PL_fdpid_mutex); (void) SvUPGRADE(sv, SVt_IV); SvIVX(sv) = pid; fd = PerlIO_fdopen(pFd[this], mode); close(pFd[that]); } else - fd = Nullfp; + fd = NULL; } else { - FDPID_LOCK; + MUTEX_LOCK(&PL_fdpid_mutex); sv = *av_fetch(PL_fdpid,pFd[that],TRUE); - FDPID_UNLOCK; + MUTEX_UNLOCK(&PL_fdpid_mutex); (void) SvUPGRADE(sv, SVt_IV); SvIVX(sv) = pFd[this]; fd = PerlIO_fdopen(pFd[this], mode); } } else - fd = Nullfp; + fd = NULL; return (fd); } @@ -466,9 +464,9 @@ my_pclose(FILE *fp) SV **sv; FILE *other; - FDPID_LOCK; + MUTEX_LOCK(&PL_fdpid_mutex); sv = av_fetch(PL_fdpid,PerlIO_fileno(fp),TRUE); - FDPID_UNLOCK; + MUTEX_UNLOCK(&PL_fdpid_mutex); pid = (int) SvIVX(*sv); SvREFCNT_dec(*sv); *sv = &PL_sv_undef;