Scroll to navigation

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).

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).
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.
The caller does not own the lock represented by the futex word.

STANDARDS

Linux.

HISTORY

Linux 2.6.18.

SEE ALSO

futex(2)

2025-05-30 Linux man-pages (unreleased)