table of contents
FUTEX_UNLOCK_PI(2const) | FUTEX_UNLOCK_PI(2const) |
NAME¶
FUTEX_UNLOCK_PI - unlock a priority‐inheritance futex
LIBRARY¶
Standard C library (libc, -lc)
SYNOPSIS¶
#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_UNLOCK_PI);
DESCRIPTION¶
This operation wakes the top priority waiter that is waiting in FUTEX_LOCK_PI(2const) or FUTEX_LOCK_PI2(2const) on the futex address provided by the uaddr argument.
This is called when the user-space value at uaddr cannot be changed atomically from a TID (of the owner) to 0.
RETURN VALUE¶
On error, -1 is returned, and errno is set to indicate the error.
On success, FUTEX_UNLOCK_PI returns 0 if the futex was successfully unlocked.
ERRORS¶
See futex(2).
- EINVAL
- The kernel detected an inconsistency between the user-space state at uaddr and the kernel state. This indicates either state corruption or that the kernel found a waiter on uaddr which is waiting via FUTEX_WAIT(2const) or FUTEX_WAIT_BITSET(2const).
- ENOSYS
- A run-time check determined that the operation is not available. The PI-futex operations are not implemented on all architectures and are not supported on some CPU variants.
- EPERM
- The caller does not own the lock represented by the futex word.
STANDARDS¶
Linux.
HISTORY¶
Linux 2.6.18.
SEE ALSO¶
2025-05-30 | Linux man-pages (unreleased) |