.\" Copyright, the authors of the Linux man-pages project .\" .\" %%%LICENSE_START(FREELY_REDISTRIBUTABLE) .\" may be freely modified and distributed .\" %%%LICENSE_END .\" .TH FUTEX_UNLOCK_PI 2const 2025-05-30 "Linux man-pages 6.16" .SH NAME FUTEX_UNLOCK_PI \- unlock a priority‐inheritance futex .SH LIBRARY Standard C library .RI ( libc ,\~ \-lc ) .SH SYNOPSIS .nf .BR "#include " " /* Definition of " FUTEX_* " constants */" .BR "#include " " /* Definition of " SYS_* " constants */" .B #include .P .BI "long syscall(SYS_futex, uint32_t *" uaddr ", FUTEX_UNLOCK_PI);" .fi .SH DESCRIPTION This operation wakes the top priority waiter that is waiting in .BR FUTEX_LOCK_PI (2const) or .BR FUTEX_LOCK_PI2 (2const) on the futex address provided by the .I uaddr argument. .P This is called when the user-space value at .I uaddr cannot be changed atomically from a TID (of the owner) to 0. .\" .SH RETURN VALUE On error, \-1 is returned, and .I errno is set to indicate the error. .P On success, .B FUTEX_UNLOCK_PI returns 0 if the futex was successfully unlocked. .SH ERRORS See .BR futex (2). .TP .B EINVAL The kernel detected an inconsistency between the user-space state at .I uaddr and the kernel state. This indicates either state corruption or that the kernel found a waiter on .I uaddr which is waiting via .BR FUTEX_WAIT (2const) or .BR FUTEX_WAIT_BITSET (2const). .TP .B 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. .TP .B EPERM The caller does not own the lock represented by the futex word. .SH STANDARDS Linux. .SH HISTORY Linux 2.6.18. .\" commit c87e2837be82df479a6bae9f155c43516d2feebc .SH SEE ALSO .BR futex (2)