This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH 5/5] Factor out shared definitions from bits/signum.h.


On 06/05/2017 03:45 PM, Zack Weinberg wrote:
> +* The obsolete signal constants SIGSTKFLT and SIGUNUSED are no longer
> +  defined by <signal.h>.  No supported version of the Linux kernel
> +  generates these signals, on any architecture.

But can't you use these signals like SIGUSR1 and SIGUSR2?  It certainly
works this way:

rt_sigaction(SIGSTKFLT, {sa_handler=0x4006f0, sa_mask=[],
sa_flags=SA_RESTORER, sa_restorer=0x7ff27215d990}, NULL, 8) = 0
getpid()                                = 28291
kill(28291, SIGSTKFLT)                  = 0
--- SIGSTKFLT {si_signo=SIGSTKFLT, si_code=SI_USER, si_pid=28291,
si_uid=1000} ---
write(1, "handler called\n", 15handler called
)        = 15

If we can reserve yet another signal, we could abuse the blocked/not
blocked flag as an indicator whether we are running in a signal handler
or not.  But I'm not sure if this is a good idea.

Florian


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]