diff options
author | Gurusamy Sarathy <gsar@cpan.org> | 1998-10-25 06:33:43 +0000 |
---|---|---|
committer | Gurusamy Sarathy <gsar@cpan.org> | 1998-10-25 06:33:43 +0000 |
commit | 33c2748902d07b7ec367f87ad66e61e89f2aa994 (patch) | |
tree | fde7996e8953d60e19976c0365224c3ba03cf565 /ext/POSIX/POSIX.xs | |
parent | 2e7e7c6ca2ccdf33926d1330538338beae355adb (diff) | |
download | perl-33c2748902d07b7ec367f87ad66e61e89f2aa994.tar.gz |
integrate changes#1982,2014,2021 (from maint-5.005)
p4raw-link: @2021 on //depot/maint-5.005/perl: ece095e7b265a16d4ec3543b1418100f9c635a87
p4raw-link: @2014 on //depot/maint-5.005/perl: cca0b9804acab4b7678c0f185888d57497a5c2a9
p4raw-link: @1982 on //depot/maint-5.005/perl: fe676099d996f70caaedeb6ae85adc3ee59d2240
p4raw-id: //depot/perl@2059
Diffstat (limited to 'ext/POSIX/POSIX.xs')
-rw-r--r-- | ext/POSIX/POSIX.xs | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/ext/POSIX/POSIX.xs b/ext/POSIX/POSIX.xs index 1840ca4034..1ef70eb8f2 100644 --- a/ext/POSIX/POSIX.xs +++ b/ext/POSIX/POSIX.xs @@ -3256,7 +3256,20 @@ SysRet sigprocmask(how, sigset, oldsigset = 0) int how POSIX::SigSet sigset - POSIX::SigSet oldsigset + POSIX::SigSet oldsigset = NO_INIT +INIT: + if ( items < 3 ) { + oldsigset = 0; + } + else if (sv_derived_from(ST(2), "POSIX::SigSet")) { + IV tmp = SvIV((SV*)SvRV(ST(2))); + oldsigset = (POSIX__SigSet) tmp; + } + else { + oldsigset = (sigset_t*)safemalloc(sizeof(sigset_t)); + sigemptyset(oldsigset); + sv_setref_pv(ST(2), "POSIX::SigSet", (void*)oldsigset); + } SysRet sigsuspend(signal_mask) |