Next: The deferral mechanism, Up: Signal handling
There are two distinct groups of signals.
The first group, tentatively named “semi-synchronous”, consists of
signals that are raised on illegal instruction, hitting a protected
page, or on a trap. Examples from this group are:
SIGBUS
/SIGSEGV
, SIGTRAP
, SIGILL
and
SIGEMT
. The exact meaning and function of these signals varies
by platform and OS. Understandably, because these signals are raised
in a controllable manner they are never blocked or deferred.
The other group is of blockable signals. Typically, signal handlers
block them to protect against being interrupted at all. For example
SIGHUP
, SIGINT
, SIGQUIT
belong to this group.
With the exception of SIG_STOP_FOR_GC
all blockable signals are
deferrable.