diff options
| author | Daniel Eischen <deischen@FreeBSD.org> | 2000-10-13 22:12:32 +0000 |
|---|---|---|
| committer | Daniel Eischen <deischen@FreeBSD.org> | 2000-10-13 22:12:32 +0000 |
| commit | fbeb36e4bf72161883eda56a41578de1d8f2f885 (patch) | |
| tree | 06c51ea3d094e4b4c0492667aa46cf83d9e938c6 /lib/libpthread/thread/thr_sigaction.c | |
| parent | a95b77ec78e646b4b781d4b498bc3be7ddaee44c (diff) | |
Notes
Diffstat (limited to 'lib/libpthread/thread/thr_sigaction.c')
| -rw-r--r-- | lib/libpthread/thread/thr_sigaction.c | 13 |
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 |
