NAME

POSIX::SigAction - represent a struct sigaction

SYNOPSIS

$sigset    = POSIX::SigSet->new(SIGINT, SIGQUIT);
$sigaction = POSIX::SigAction
   ->new(\&handler, $sigset, SA_NOCLDSTOP);

$sigset    = $sigaction->mask;
$sigaction->flags(SA_RESTART);
$sigaction->safe(1);

DESCRIPTION

The POSIX::SigAction object corresponds to the C struct sigaction, defined by signal.h.

This module is a bit tricky: POSIX.pm contains the same code for the POSIX::SigAction namespace. However, we do not need POSIX.pm but only the POSIX.xs component which has the namespace hard-coded.

METHODS

Constructors

POSIX::SigAction->new(HANDLER, [SIGSET, [FLAGS]])

The first parameter is the handler, a code reference. The second parameter is a POSIX::SigSet object, it defaults to the empty set. The third parameter contains the sa_flags, it defaults to 0.

This object will be destroyed automatically when it is no longer needed.

Accessors

$obj->flags()

Accessor functions to get/set the values of a SigAction object.

$obj->handler()
$obj->mask()
$obj->safe()

Accessor function for the "safe signals" flag of a SigAction object; see perlipc for general information on safe (a.k.a. "deferred") signals. If you wish to handle a signal safely, use this accessor to set the "safe" flag in the POSIX::SigAction object:

$sigaction->safe(1);

You may also examine the "safe" flag on the output action object which is filled in when given as the third parameter to POSIX::1003::Signals::sigaction():

sigaction(SIGINT, $new_action, $old_action);
if ($old_action->safe) {
   # previous SIGINT handler used safe signals
}

SEE ALSO

This module is part of POSIX-1003 distribution version 0.07, built on December 28, 2011. Website: http://perl.overmeer.net. The code is based on POSIX, which is released with Perl itself.

COPYRIGHTS

Copyrights of the perl code and the related documentation by 2011 by Mark Overmeer. For other contributors see ChangeLog.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See http://www.perl.com/perl/misc/Artistic.html