summaryrefslogtreecommitdiff
path: root/lib/libpthread/thread/thr_sigaction.c
diff options
context:
space:
mode:
authorDaniel Eischen <deischen@FreeBSD.org>2000-10-13 22:12:32 +0000
committerDaniel Eischen <deischen@FreeBSD.org>2000-10-13 22:12:32 +0000
commitfbeb36e4bf72161883eda56a41578de1d8f2f885 (patch)
tree06c51ea3d094e4b4c0492667aa46cf83d9e938c6 /lib/libpthread/thread/thr_sigaction.c
parenta95b77ec78e646b4b781d4b498bc3be7ddaee44c (diff)
Notes
Diffstat (limited to 'lib/libpthread/thread/thr_sigaction.c')
-rw-r--r--lib/libpthread/thread/thr_sigaction.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/lib/libpthread/thread/thr_sigaction.c b/lib/libpthread/thread/thr_sigaction.c
index 319999bf3047..e78f3290154c 100644
--- a/lib/libpthread/thread/thr_sigaction.c
+++ b/lib/libpthread/thread/thr_sigaction.c
@@ -74,12 +74,13 @@ _sigaction(int sig, const struct sigaction * act, struct sigaction * oact)
*/
if (act != NULL && sig != _SCHED_SIGNAL && sig != SIGCHLD &&
sig != SIGINFO) {
- /* Initialise the global signal action structure: */
- gact.sa_mask = act->sa_mask;
- gact.sa_flags = 0;
-
- /* Ensure the scheduling signal is masked: */
- sigaddset(&gact.sa_mask, _SCHED_SIGNAL);
+ /*
+ * Ensure the signal handler cannot be interrupted
+ * by other signals. Always request the POSIX signal
+ * handler arguments.
+ */
+ sigfillset(&gact.sa_mask);
+ gact.sa_flags = SA_SIGINFO;
/*
* Check if the signal handler is being set to