.TH sigrelse() "" "" "System Call (libc)"
.PC "Release a signal for processing"
.B "#include <signal.h>
\fBint sigrelse (\fIsigtype\^\fB)\fR
\fBint \fIsigtype\^\fB;\fR
.PP
.B sigrelse()
is a member of the
.B sigset()
family of signal-handling system calls.
It releases the signal
.IR sigtype ,
which had previously been ``placed on hold'' by the system call
.BR sighold() .
Only one ``copy'' of
.I sigtype
can be held at a time.
Thus, you can use
.B sighold()
and
.B sigrelse()
to defer processing of the signal
.IR sigtype .
This permits you to protect a portion of your application from this signal
until it is ready to process it.
.PP
When
.I sigtype
is released, it is processed by the function that had set for it
by the system call
.BR sigset() .
If
.B sigset()
has not been invoked for
.IR sigtype ,
then the system uses the function to which
.B SIG_DFL
points.
.B SIG_DFL
terminates the process, just as if it called the function
.BR exit() .
In addition, it dumps core if
.I sigtype
is any of the following:
.BR SIGQUIT ,
.BR SIGRESET ,
.BR SIGTRAP ,
.BR SIGSEGV ,
or
.BR SIGSYS .
.PP
Note that signal
.B SIGKILL
cannot be held.
See the Lexicon entry for
.B signal()
for a list of recognized signals.
.PP
.B sigrelse()
returns zero if all went well.
If something went wrong, it returns \-1 and sets
.B errno
to an appropriate value.
.SH "See Also"
.Xr "libc," libc
.Xr "sighold()," sighold
.Xr "sigignore()," sigignore
.Xr "signal()," signal
.Xr "sigpause()," sigpause
.Xr "sigset()" sigset
.SH Notes
For more information on the
.B sigset()
family of signal-handling system calls, see the Lexicon entry for
.BR sigset() .
