diff options
author | Nick Ing-Simmons <nik@tiuk.ti.com> | 2001-01-17 22:41:10 +0000 |
---|---|---|
committer | Nick Ing-Simmons <nik@tiuk.ti.com> | 2001-01-17 22:41:10 +0000 |
commit | 0a8e0eff0300ee74cef43b18ff11d05a6376450e (patch) | |
tree | b7b923b1cedae412a37ad43239ef3327d1ca1c52 /gv.c | |
parent | 9b5a166df944a05919fc72a0c76a3ff67c30dc35 (diff) | |
download | perl-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.c | 7 |
1 files changed, 4 insertions, 3 deletions
@@ -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; |