FUTEX_WAIT_REQUEUE_PI
wait on a non-PI futex, and potentially be requeued onto a PI futex
- Provided by: manpages-dev (Version: 6.17-1)
- Source: manpages
- Report a bug
wait on a non-PI futex, and potentially be requeued onto a PI futex
Standard C library (libc, -lc)
#include <linux/futex.h> /* Definition of FUTEX_* constants */ #include <sys/syscall.h> /* Definition of SYS_* constants */ #include <unistd.h>
long syscall(SYS_futex, uint32_t *uaddr, FUTEX_WAIT_REQUEUE_PI,
uint32_t val,
const struct timespec *timeout,
uint32_t *uaddr2);
Wait on a non-PI futex at uaddr and potentially be requeued (via a FUTEX_CMP_REQUEUE_PI(2const) operation in another task) onto a PI futex at uaddr2. The wait operation on uaddr is the same as for FUTEX_WAIT(2const).
The waiter can be removed from the wait on uaddr without requeueing on uaddr2 via a FUTEX_WAKE(2const) operation in another task. In this case, the FUTEX_WAIT_REQUEUE_PI operation fails with the error EAGAIN.
If timeout is not NULL, the structure it points to specifies an absolute timeout for the wait operation. If timeout is NULL, the operation can block indefinitely.
On error, -1 is returned, and errno is set to indicate the error.
On success, FUTEX_WAIT_REQUEUE_PI returns 0 if the caller was successfully requeued to the futex for the futex word at uaddr2.
See futex(2).
Linux.
Linux 2.6.31.