io_uring_peek_cqe - Man Page

check if an io_uring completion event is available

Synopsis

#include <liburing.h>

int io_uring_peek_cqe(struct io_uring *ring,
                      struct io_uring_cqe **cqe_ptr);

int io_uring_peek_batch_cqe(struct io_uring *ring,
                            struct io_uring_cqe **cqe_ptrs,
                            unsigned count );"

Description

The io_uring_peek_cqe(3) function returns an IO completion from the queue belonging to the ring param, if one is readily available. On successful return, cqe_ptr param is filled with a valid CQE entry.

This function does not enter the kernel to wait for an event, an event is only returned if it's already available in the CQ ring.

The io_uring_peek_batch_cqe(3) function returns up to count request completions in cqe_ptrs belonging to the ring param, if they are readily available. It will not enter the kernel, unless the CQ ring is in an overflow condition. Upon successful return, cqe_ptrs are filled with the number of events indicated by the return value.

Return Value

On success io_uring_peek_cqe(3) returns 0 and the cqe_ptr parameter is filled in. On success io_uring_peek_batch_cqe(3) returns the number of completions filled in. On failure, they may return -EAGAIN.

See Also

io_uring_submit(3), io_uring_wait_cqes(3), io_uring_wait_cqe(3)

Referenced By

io_uring_cq_advance(3), io_uring_cqe_seen(3), io_uring_setup(2).

The man page io_uring_peek_batch_cqe(3) is an alias of io_uring_peek_cqe(3).

March 12, 2022 liburing-2.2 liburing Manual