summaryrefslogtreecommitdiff
path: root/glibc/signals.mdwn
blob: 40fdc0e11808ac357df677b88c2d4a961bd248a5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
[[!meta copyright="Copyright © 2010 Free Software Foundation, Inc."]]

[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
id="license" text="Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation License, Version 1.2 or
any later version published by the Free Software Foundation; with no Invariant
Sections, no Front-Cover Texts, and no Back-Cover Texts.  A copy of the license
is included in the section entitled [[GNU Free Documentation
License|/fdl]]."]]"""]]

*[[UNIX]] signals* are a means to asynchronously invoke a specific function
(*signal handler*).  This may impact on [[system call]]s that are executing at
the same time in that they may be completely aborted, return incomplete
results, scheduled for restarting, or cause signal delivery to be blocked upon
the system call's completion.

An explanation can be found in the relevant standards, an overview, including
UNIX signals' deficiencies is given in {{$unix#2010_brown_ghosts_3}}, for
example.

The UNIX signalling mechanism is implemented for the GNU Hurd by means of a
separate signal-handling thread that is part of every process.  This makes
handling of signals a separate thread of control.

  * [[SA_SIGINFO, SA_SIGACTION|open_issues/sa_siginfo_sa_sigaction]]


# External

  * {{$unix#djb_self-pipe}}.

  * {{$unix#rjk_fork}}.