path: root/src/include/liburing.h
diff options
authorJens Axboe <>2019-09-20 17:48:27 -0600
committerJens Axboe <>2019-09-20 19:49:30 -0600
commit3ad9074b7962e1ce97f744534650fbf14d32f465 (patch)
tree91cdaf29669158cddc0e03f257287cde93107de8 /src/include/liburing.h
parent5109ed3ec733968cc1aa6457020d8cc1389135bb (diff)
Add TIMEOUT support
Add support for the current TIMEOUT variant. This allows passing in a timeout and event count, first of which will trigger the completion of the timeout command. If the timeout is hit, the command completes with cqe->res == -ETIME. If the asked number of events complete first, the command completes with cqe->res == 0. test/timeout.c tests a variety of timeout conditions. Signed-off-by: Jens Axboe <>
Diffstat (limited to 'src/include/liburing.h')
1 files changed, 7 insertions, 0 deletions
diff --git a/src/include/liburing.h b/src/include/liburing.h
index c4189b1..0b631ac 100644
--- a/src/include/liburing.h
+++ b/src/include/liburing.h
@@ -10,6 +10,7 @@ extern "C" {
#include <signal.h>
#include <string.h>
#include <inttypes.h>
+#include <time.h>
#include "liburing/compat.h"
#include "liburing/io_uring.h"
#include "liburing/barrier.h"
@@ -234,6 +235,12 @@ static inline void io_uring_prep_nop(struct io_uring_sqe *sqe)
sqe->opcode = IORING_OP_NOP;
+static inline void io_uring_prep_timeout(struct io_uring_sqe *sqe,
+ struct timespec *ts, unsigned count)
+ io_uring_prep_rw(IORING_OP_TIMEOUT, sqe, 0, ts, 1, count);
#ifdef __cplusplus