LAM_KSIGBLOCK(2) LAM LOCAL LIBRARY LAM_KSIGBLOCK(2)NAME
lam_ksigblock, lam_ksigsetmask, lam_ksigretry, lam_ksigsetretry,
lam_kpause - Manipulate LAM signal handling policy.
SYNOPSIS
#include <lam_ksignal.h>
int lam_ksigblock (int mask);
int lam_ksigsetmask (int mask);
int lam_ksigretry (int mask);
int lam_ksigsetretry (int mask);
int lam_kpause ();
int lam_ksigmask (int signum);
DESCRIPTION
As part of the signal handling package, LAM maintains two system masks,
a block mask and a retry mask. Each contains a bit for every defined
signal. The block mask will prevent a signal from being handled if its
corresponding bit is set. The retry mask indicates whether a system
call to the daemon should be retried after an given signal is handled.
Signals are defined in <lam_ksignal.h> and described in lam_ksignal(2).
lam_ksigblock() sets the block mask to block each signal whose corre‐
sponding bit in the mask argument is set, as well as those whose bits
were set in the original block mask. lam_ksigsetmask() explictly sets
the system block mask to the mask argument. All signals set in the
mask argument become blocked - all others become unblocked. Both rou‐
tines return the previous value of the block mask.
All signals begin as unblocked, and privileged signals cannot be
blocked. A blocked signal is not ignored - it is impeded. If the
block should be removed for a signal that was pending, the signal han‐
dler will immediately be called. Several impeded signals will fuse to‐
gether as one and not be handled distinctly.
Since some LAM daemon functions cause the calling process to block
there is an excellent chance that a system call will be interrupted by
a signal. When this happens, the blocking function returns with the
error EINTR. If the bit corresponding to the delivered signal is set
in the retry mask, the daemon request will be automatically retried af‐
ter the signal handler returns.
lam_ksigretry() resets the retry mask to retry each signal whose corre‐
sponding bit in the mask argument is set, as well as those whose bits
were set in the original retry mask. lam_ksigsetmask() explictly sets
the system retry mask to the mask argument. All signals set in the
mask argument will be retried - all others will not be retried. Both
routines return the previous value of the retry mask. Initially, all
signals will be retried except SIGRELEASE, which cannot be retried.
The macro lam_ksigmask(signum), defined in <lam_ksignal.h>, converts a
signal number into a mask with only the corresponding bit set.
lam_kpause() causes the calling process to wait until any signal is de‐
livered.
RETURN VALUElam_ksigblock(), lam_ksigsetmask(), lam_ksigretry() and lam_ksigse‐
tretry() all return the previous mask value. lam_kpause() always re‐
turns -1 and the global variable errno is always set to EINTR.
SEE ALSOlam_ksignal(2), MPIL_Signal(2)LAM 7.1.2 March, 2006 LAM_KSIGBLOCK(2)