FUTEX_TRYLOCK_PI
try to lock a priority-inheritance futex
- Provided by: manpages-dev (Version: 6.17-1)
- Source: manpages
- Report a bug
try to lock a priority-inheritance 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_TRYLOCK_PI);
This operation tries to acquire the lock at uaddr. It is invoked when a user-space atomic acquire did not succeed because the futex word was not 0.
Because the kernel has access to more state information than user space, acquisition of the lock might succeed if performed by the kernel in cases where the futex word (i.e., the state information accessible to use-space) contains stale state (FUTEX_WAITERS and/or FUTEX_OWNER_DIED). This can happen when the owner of the futex died. User space cannot handle this condition in a race-free manner, but the kernel can fix this up and acquire the futex.
On error, -1 is returned, and errno is set to indicate the error.
On success, FUTEX_TRYLOCK_PI Returns 0 if the futex was successfully locked.
See futex(2).
Linux.
Linux 2.6.18.