---
name: "io_uring_register_wait_reg"
section: "3"
platform: "linux"
package: "liburing"
version: "2.15-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/io_uring_register_wait_reg"
---

# io\_uring\_register\_wait\_reg(3)

register wait regions with io\_uring

## NAME

io\_uring\_register\_wait\_reg - register wait regions with io\_uring

## SYNOPSIS

```
#include <liburing.h>
```

**int io\_uring\_register\_wait\_reg(struct io\_uring \****ring***,**                                **struct io\_uring\_reg\_wait \****reg***,**                                **int** *nr***);**

## DESCRIPTION

The [**io\_uring\_register\_wait\_reg**(3)](/io_uring_register_wait_reg/3.md) function registers wait regions with the io\_uring instance specified by *ring*. The *reg* argument is a pointer to an array of *struct io\_uring\_reg\_wait* of *nr* entries.

Wait regions allow registering timeout and signal mask information that can be reused across multiple wait operations without copying the data for each call. This is used in conjunction with [**io\_uring\_submit\_and\_wait\_reg**(3)](/io_uring_submit_and_wait_reg/3.md) to reduce the overhead of wait operations.

See [**io\_uring\_register\_region**(3)](/io_uring_register_region/3.md) for registering the underlying memory region.

## RETURN VALUE

Returns 0 on success. On error, a negative errno value is returned.

## SEE ALSO

[**io\_uring\_submit\_and\_wait\_reg**(3)](/io_uring_submit_and_wait_reg/3.md), [**io\_uring\_register\_region**(3)](/io_uring_register_region/3.md), [**io\_uring\_register**(2)](/io_uring_register/2.md)
