summaryrefslogtreecommitdiff
path: root/unix/signal.mdwn
blob: 084f7f2a4f268664d4912da3e1956aa3cb4c4012 (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
33
34
[[!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*) in a [[process]].  It's a rather limited form of doing
[[IPC]].

Signalling 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.

In a GNU/Hurd system, the signalling system is [[implemented in
glibc|glibc/signal]].


# Further Reading

  * [[!wikipedia Signal_(computing)]]

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

  * {{$unix#rjk_fork}}.