#!/usr/bin/perl use strict; use My_Functions; &print_myheader(); my $br=(-t)?"\n":'
'; use POSIX qw(:signal_h); my $sigset_new = POSIX::SigSet->new(); my $sigset_old = POSIX::SigSet->new(); sigprocmask(SIG_BLOCK, $sigset_new, $sigset_old); if ($sigset_old->ismember(SIGALRM)) { print "SIGALRM is being blocked!$br"; $sigset_new->addset(SIGALRM); sigprocmask(SIG_UNBLOCK, $sigset_new); } else { print "SIGALRM NOT being blocked$br"; } $SIG{ALRM} = sub {print scalar(localtime()), " ALARM, leaving$br"; sigprocmask(SIG_BLOCK, $sigset_new, $sigset_old); exit; }; alarm(5); print scalar(localtime()), " Starting sleep...$br"; sleep (10); print scalar(localtime()), " Exiting normally...$br";