mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-12-16 08:56:45 -05:00
meson.build: check for SYS_pidfd_open
This commit is contained in:
parent
18b3efa2ed
commit
14eb43ea86
3 changed files with 9 additions and 0 deletions
|
|
@ -475,6 +475,7 @@
|
||||||
#mesondefine HAVE_MEMFD_CREATE
|
#mesondefine HAVE_MEMFD_CREATE
|
||||||
#mesondefine HAVE_GETRANDOM
|
#mesondefine HAVE_GETRANDOM
|
||||||
#mesondefine HAVE_SIGABBREV_NP
|
#mesondefine HAVE_SIGABBREV_NP
|
||||||
|
#mesondefine HAVE_PIDFD_OPEN
|
||||||
|
|
||||||
#mesondefine PIPEWIRE_VERSION_MAJOR
|
#mesondefine PIPEWIRE_VERSION_MAJOR
|
||||||
#mesondefine PIPEWIRE_VERSION_MINOR
|
#mesondefine PIPEWIRE_VERSION_MINOR
|
||||||
|
|
|
||||||
|
|
@ -282,6 +282,10 @@ if cc.has_function('sigabbrev_np', prefix : '#include <string.h>', args : [ '-D_
|
||||||
cdata.set('HAVE_SIGABBREV_NP', 1)
|
cdata.set('HAVE_SIGABBREV_NP', 1)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
if cc.get_define('SYS_pidfd_open', prefix : '#include <syscall.h>') != ''
|
||||||
|
cdata.set('HAVE_PIDFD_OPEN', 1)
|
||||||
|
endif
|
||||||
|
|
||||||
systemd = dependency('systemd', required: get_option('systemd'))
|
systemd = dependency('systemd', required: get_option('systemd'))
|
||||||
systemd_dep = dependency('libsystemd',required: get_option('systemd'))
|
systemd_dep = dependency('libsystemd',required: get_option('systemd'))
|
||||||
if systemd.found() and systemd_dep.found()
|
if systemd.found() and systemd_dep.found()
|
||||||
|
|
|
||||||
|
|
@ -812,7 +812,11 @@ static int monitor_test_forked(struct pwtest_test *t, pid_t pid, int read_fds[_F
|
||||||
size_t nevents = 0;
|
size_t nevents = 0;
|
||||||
int r;
|
int r;
|
||||||
|
|
||||||
|
#if HAVE_PIDFD_OPEN
|
||||||
pidfd = syscall(SYS_pidfd_open, pid, 0);
|
pidfd = syscall(SYS_pidfd_open, pid, 0);
|
||||||
|
#else
|
||||||
|
errno = ENOSYS;
|
||||||
|
#endif
|
||||||
/* If we don't have pidfd, we use a timerfd to ping us every 20ms */
|
/* If we don't have pidfd, we use a timerfd to ping us every 20ms */
|
||||||
if (pidfd < 0 && errno == ENOSYS) {
|
if (pidfd < 0 && errno == ENOSYS) {
|
||||||
pidfd = timerfd_create(CLOCK_MONOTONIC, TFD_NONBLOCK);
|
pidfd = timerfd_create(CLOCK_MONOTONIC, TFD_NONBLOCK);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue