Hello, While doing some tests which are open/read/close files I saw that I was getting -EAGAIN return value sometimesi on io_uring_peek_cqe, and more often after dropping caches. In parrallel, when reading examples provided by liburing, we can see that getting this error is making the example fail (such as in io_uring-cp). So I was wondering whether it was stupid to change the example to something like: diff --git a/examples/io_uring-cp.c b/examples/io_uring-cp.c index cc7a227..2d6d190 100644 --- a/examples/io_uring-cp.c +++ b/examples/io_uring-cp.c @@ -170,11 +170,11 @@ static int copy_file(struct io_uring *ring, off_t insize) ret = io_uring_wait_cqe(ring, &cqe); got_comp = 1; } else { - ret = io_uring_peek_cqe(ring, &cqe); - if (ret == -EAGAIN) { - cqe = NULL; - ret = 0; - } + do { + ret = io_uring_peek_cqe(ring, &cqe) + if (ret != -EAGAIN) + break; + } while (1); } if (ret < 0) { fprintf(stderr, "io_uring_peek_cqe: %s\n", Best, -- William