summaryrefslogtreecommitdiff
path: root/gv.c
diff options
context:
space:
mode:
authorNick Ing-Simmons <nik@tiuk.ti.com>2001-01-17 22:41:10 +0000
committerNick Ing-Simmons <nik@tiuk.ti.com>2001-01-17 22:41:10 +0000
commit0a8e0eff0300ee74cef43b18ff11d05a6376450e (patch)
treeb7b923b1cedae412a37ad43239ef3327d1ca1c52 /gv.c
parent9b5a166df944a05919fc72a0c76a3ff67c30dc35 (diff)
downloadperl-0a8e0eff0300ee74cef43b18ff11d05a6376450e.tar.gz
"Safe" signals - trial implementation.
gv.c tweaked to zero PL_sig_pend array perlio.c tweaked to PERL_ASYNC_CHECK() on EINTR util.c tweaked to not set SA_RESTART to give perlio.c a chance. Odd thing is that it "works" with PERLIO=stdio as well (linux). p4raw-id: //depot/perlio@8467
Diffstat (limited to 'gv.c')
-rw-r--r--gv.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/gv.c b/gv.c
index 8b15d41334..ea96c6f8fd 100644
--- a/gv.c
+++ b/gv.c
@@ -750,9 +750,9 @@ Perl_gv_fetchpv(pTHX_ const char *nambeg, I32 add, I32 sv_type)
HV *hv;
I32 i;
if (!PL_psig_ptr) {
- New(73, PL_psig_ptr, SIG_SIZE, SV*);
- New(73, PL_psig_name, SIG_SIZE, SV*);
- New(73, PL_psig_pend, SIG_SIZE, int);
+ Newz(73, PL_psig_ptr, SIG_SIZE, SV*);
+ Newz(73, PL_psig_name, SIG_SIZE, SV*);
+ Newz(73, PL_psig_pend, SIG_SIZE, int);
}
GvMULTI_on(gv);
hv = GvHVn(gv);
@@ -764,6 +764,7 @@ Perl_gv_fetchpv(pTHX_ const char *nambeg, I32 add, I32 sv_type)
sv_setsv(*init, &PL_sv_undef);
PL_psig_ptr[i] = 0;
PL_psig_name[i] = 0;
+ PL_psig_pend[i] = 0;
}
}
break;