---
name: "FUTEX_WAKE"
section: "2const"
platform: "linux"
package: "man-pages"
version: "6.19-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/FUTEX_WAKE"
---

# FUTEX\_WAKE(2const)

wake waiters that are inside FUTEX\_WAIT

## NAME

FUTEX\_WAKE - wake waiters that are inside FUTEX\_WAIT

## 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\_WAKE, uint32\_t** *val***);**

## DESCRIPTION

This operation wakes at most *val* of the waiters that are waiting (e.g., inside [**FUTEX\_WAIT**(2const)](/FUTEX_WAIT/2const.md)) on the futex word at the address *uaddr*.

Most commonly, *val* is specified as either 1 (wake up a single waiter) or **INT\_MAX** (wake up all waiters).

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

## RETURN VALUE

On error, -1 is returned, and *errno* is set to indicate the error.

On success, **FUTEX\_WAKE** returns the number of waiters that were woken up.

## ERRORS

See [**futex**(2)](/futex/2.md).

- **EINVAL**

  The kernel detected an inconsistency between the user-space state at *uaddr* and the kernel state—that is, it detected a waiter which waits in [**FUTEX\_LOCK\_PI**(2const)](/FUTEX_LOCK_PI/2const.md) or [**FUTEX\_LOCK\_PI2**(2const)](/FUTEX_LOCK_PI2/2const.md) on *uaddr*.

## STANDARDS

Linux.

## HISTORY

Linux 2.6.0.

## SEE ALSO

[**futex**(2)](/futex/2.md)
