mirror of
https://sourceware.org/git/glibc.git
synced 2024-12-18 05:53:36 +08:00
Make sysdeps/generic/internal-signals.h less stubby.
Three of the functions defined by internal-signals.h were not actually fulfilling their contracts when the sysdeps/generic version of that file was used. Also, the Linux version included several more headers than the generic version, which is the root cause of a build failure on Hurd (already addressed in another way, but I think it is proper to make the headers match). * sysdeps/generic/internal-signals.h: Include signal.h, sigsetops.h, and stdbool.h. (__libc_signal_block_all): Actually block all signals. (__libc_signal_block_app): Likewise. (__libc_signal_restore_set): Actually restore the signal mask.
This commit is contained in:
parent
b07367bcf8
commit
9185f86d8f
@ -1,3 +1,11 @@
|
||||
2018-04-04 Zack Weinberg <zackw@panix.com>
|
||||
|
||||
* sysdeps/generic/internal-signals.h: Include signal.h,
|
||||
sigsetops.h, and stdbool.h.
|
||||
(__libc_signal_block_all): Actually block all signals.
|
||||
(__libc_signal_block_app): Likewise.
|
||||
(__libc_signal_restore_set): Actually restore the signal mask.
|
||||
|
||||
2018-04-04 Florian Weimer <fweimer@redhat.com>
|
||||
|
||||
inet: Actually build and run tst-deadline.
|
||||
|
@ -19,6 +19,10 @@
|
||||
#ifndef __INTERNAL_SIGNALS_H
|
||||
# define __INTERNAL_SIGNALS_H
|
||||
|
||||
#include <signal.h>
|
||||
#include <sigsetops.h>
|
||||
#include <stdbool.h>
|
||||
|
||||
static inline bool
|
||||
__is_internal_signal (int sig)
|
||||
{
|
||||
@ -33,20 +37,25 @@ __clear_internal_signals (sigset_t *set)
|
||||
static inline int
|
||||
__libc_signal_block_all (sigset_t *set)
|
||||
{
|
||||
return 0;
|
||||
sigset_t allset;
|
||||
__sigfillset (&allset);
|
||||
return __sigprocmask (SIG_BLOCK, &allset, set);
|
||||
}
|
||||
|
||||
static inline int
|
||||
__libc_signal_block_app (sigset_t *set)
|
||||
{
|
||||
return 0;
|
||||
sigset_t allset;
|
||||
__sigfillset (&allset);
|
||||
__clear_internal_signals (&allset);
|
||||
return __sigprocmask (SIG_BLOCK, &allset, set);
|
||||
}
|
||||
|
||||
/* Restore current process signal mask. */
|
||||
static inline int
|
||||
__libc_signal_restore_set (const sigset_t *set)
|
||||
{
|
||||
return 0;
|
||||
return __sigprocmask (SIG_SETMASK, set, NULL);
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user