summaryrefslogtreecommitdiff
path: root/glibc
diff options
context:
space:
mode:
Diffstat (limited to 'glibc')
-rw-r--r--glibc/signal.mdwn5
-rw-r--r--glibc/signal/signal_thread.mdwn7
2 files changed, 11 insertions, 1 deletions
diff --git a/glibc/signal.mdwn b/glibc/signal.mdwn
index 84153cff..727247ac 100644
--- a/glibc/signal.mdwn
+++ b/glibc/signal.mdwn
@@ -10,8 +10,11 @@ is included in the section entitled [[GNU Free Documentation
License|/fdl]]."]]"""]]
The [[*UNIX signalling mechanism*|unix/signal]] is implemented for the GNU Hurd
-by means of a separate *[[signal_thread]]* that is part of every
+by means of a separate *[[signal_thread]]* that is part of every user-space
[[process]]. This makes handling of signals a separate thread of control.
+[[GNU Mach|microkernel/mach/gnumach]] itself has no idea what a signal is and
+`kill` is not a [[system_call]] (as it typically is in a [[UNIX]] system): it's
+implemented in [[glibc]].
* [[SA_SIGINFO, SA_SIGACTION|open_issues/sa_siginfo_sa_sigaction]]
diff --git a/glibc/signal/signal_thread.mdwn b/glibc/signal/signal_thread.mdwn
index 28855dbd..5341b1ab 100644
--- a/glibc/signal/signal_thread.mdwn
+++ b/glibc/signal/signal_thread.mdwn
@@ -8,6 +8,13 @@ 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]]."]]"""]]
+For delivering a signal, Mach forwards an `msg_sig_post` message from the
+invoker of `kill` to the target process. The target process' [[signal_thread]]
+job is it to listen to such messages and to set up signal handler contexts in
+other threads.
+
+---
+
[[!tag open_issue_documentation]]
<braunr> bugs around signals are very tricky