---
name: "io_uring_cq_has_overflow"
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_cq_has_overflow"
---

# io\_uring\_cq\_has\_overflow(3)

returns if there are overflow entries waiting to move to the CQ ring

## NAME

io\_uring\_cq\_has\_overflow - returns if there are overflow entries waiting to move to the CQ ring

## SYNOPSIS

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

**bool io\_uring\_cq\_has\_overflow(const struct io\_uring \****ring***);**

## DESCRIPTION

The [**io\_uring\_cq\_has\_overflow**(3)](/io_uring_cq_has_overflow/3.md) function informs the application if CQ entries have overflowed and are waiting to be flushed to the CQ ring. For example using [**io\_uring\_get\_events**(3)](/io_uring_get_events/3.md)

## NOTES

Using this function is only valid if the ring has **IORING\_FEAT\_NODROP** set, as it's checking for a flag set by kernels supporting that feature. For really old kernels that don't support this feature, if CQE overflow is experienced the CQEs are lost. If that happens, the CQ ring overflow offset will get incremented.

## RETURN VALUE

True if there are CQ entries waiting to be flushed to the CQ ring.

## SEE ALSO

[**io\_uring\_get\_events**(3)](/io_uring_get_events/3.md)
