.\" Copyright, the authors of the Linux man-pages project .\" .\" %%%LICENSE_START(FREELY_REDISTRIBUTABLE) .\" may be freely modified and distributed .\" %%%LICENSE_END .\" .TH FUTEX_WAKE 2const 2025-05-30 "Linux man-pages 6.15" .SH NAME FUTEX_WAKE \- wake waiters that are inside FUTEX_WAIT .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_WAKE, uint32_t " val ); .fi .SH DESCRIPTION This operation wakes at most .I val of the waiters that are waiting (e.g., inside .BR FUTEX_WAIT (2const)) on the futex word at the address .IR uaddr . .P Most commonly, .I val is specified as either 1 (wake up a single waiter) or .B INT_MAX (wake up all waiters). .P No guarantee is provided about which waiters are awoken (e.g., a waiter with a higher scheduling priority is not guaranteed to be awoken in preference to a waiter with a lower priority). .\" FIXME . (Torvald) I think we should remove this. Or maybe adapt to .\" a different example. .\" .\" For .\" .BR futex (7), .\" this is executed if incrementing the count showed that .\" there were waiters, .\" once the futex value has been set to 1 .\" (indicating that it is available). .\" .\" How does "incrementing the count show that there were waiters"? .\" .SH RETURN VALUE On error, \-1 is returned, and .I errno is set to indicate the error. .P On success, .B FUTEX_WAKE returns the number of waiters that were woken up. .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\[em]that is, it detected a waiter which waits in .BR FUTEX_LOCK_PI (2const) or .BR FUTEX_LOCK_PI2 (2const) on .IR uaddr . .SH STANDARDS Linux. .SH HISTORY Linux 2.6.0. .\" Strictly speaking, since Linux 2.5.x .SH SEE ALSO .BR futex (2)