aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/unix/sysv/linux/sys
diff options
context:
space:
mode:
authorAdhemerval Zanella <adhemerval.zanella@linaro.org>2022-01-28 17:13:41 -0300
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>2022-05-17 10:33:46 -0300
commit56cf9e8eec3bdc0ce44efeda373de9d6b825ea1e (patch)
tree1867665925ea0e43ff9ba08e2c3409f90abf7988 /sysdeps/unix/sysv/linux/sys
parent32dd8c251a431c90451092653f0231a4ad2665e5 (diff)
downloadglibc-56cf9e8eec3bdc0ce44efeda373de9d6b825ea1e.tar
glibc-56cf9e8eec3bdc0ce44efeda373de9d6b825ea1e.tar.gz
glibc-56cf9e8eec3bdc0ce44efeda373de9d6b825ea1e.tar.bz2
glibc-56cf9e8eec3bdc0ce44efeda373de9d6b825ea1e.zip
linux: Add pidfd_send_signal
This was added on Linux 5.1(3eb39f47934f9d5a3027fe00d906a45fe3a15fad) as a way to avoid the race condition of using kill (where PID might be reused by the kernel between between obtaining the pid and sending the signal). If the siginfo_t argument is NULL then pidfd_send_signal is equivalent to kill. If it is not NULL pidfd_send_signal is equivalent to rt_sigqueueinfo. Reviewed-by: Carlos O'Donell <carlos@redhat.com> Tested-by: Carlos O'Donell <carlos@redhat.com>
Diffstat (limited to 'sysdeps/unix/sysv/linux/sys')
-rw-r--r--sysdeps/unix/sysv/linux/sys/pidfd.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/sysdeps/unix/sysv/linux/sys/pidfd.h b/sysdeps/unix/sysv/linux/sys/pidfd.h
index 7194fc2a14..7bbc5e4863 100644
--- a/sysdeps/unix/sysv/linux/sys/pidfd.h
+++ b/sysdeps/unix/sysv/linux/sys/pidfd.h
@@ -38,4 +38,12 @@ extern int pidfd_open (__pid_t __pid, unsigned int __flags) __THROW;
extern int pidfd_getfd (int __pidfd, int __targetfd,
unsigned int __flags) __THROW;
+/* Sends the signal SIG to the target process referred by the PIDFD. If
+ INFO points to a siginfo_t buffer, it will be populated.
+
+ The FLAGS argument is reserved for future use, it must be specified
+ as 0. */
+extern int pidfd_send_signal (int __pidfd, int __sig, siginfo_t *__info,
+ unsigned int __flags) __THROW;
+
#endif /* _PIDFD_H */