mirror of
https://sourceware.org/git/glibc.git
synced 2024-12-18 14:03:28 +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>
|
2018-04-04 Florian Weimer <fweimer@redhat.com>
|
||||||
|
|
||||||
inet: Actually build and run tst-deadline.
|
inet: Actually build and run tst-deadline.
|
||||||
|
@ -19,6 +19,10 @@
|
|||||||
#ifndef __INTERNAL_SIGNALS_H
|
#ifndef __INTERNAL_SIGNALS_H
|
||||||
# define __INTERNAL_SIGNALS_H
|
# define __INTERNAL_SIGNALS_H
|
||||||
|
|
||||||
|
#include <signal.h>
|
||||||
|
#include <sigsetops.h>
|
||||||
|
#include <stdbool.h>
|
||||||
|
|
||||||
static inline bool
|
static inline bool
|
||||||
__is_internal_signal (int sig)
|
__is_internal_signal (int sig)
|
||||||
{
|
{
|
||||||
@ -33,20 +37,25 @@ __clear_internal_signals (sigset_t *set)
|
|||||||
static inline int
|
static inline int
|
||||||
__libc_signal_block_all (sigset_t *set)
|
__libc_signal_block_all (sigset_t *set)
|
||||||
{
|
{
|
||||||
return 0;
|
sigset_t allset;
|
||||||
|
__sigfillset (&allset);
|
||||||
|
return __sigprocmask (SIG_BLOCK, &allset, set);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline int
|
static inline int
|
||||||
__libc_signal_block_app (sigset_t *set)
|
__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. */
|
/* Restore current process signal mask. */
|
||||||
static inline int
|
static inline int
|
||||||
__libc_signal_restore_set (const sigset_t *set)
|
__libc_signal_restore_set (const sigset_t *set)
|
||||||
{
|
{
|
||||||
return 0;
|
return __sigprocmask (SIG_SETMASK, set, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user