diff options
author | Jens Axboe <axboe@kernel.dk> | 2019-09-20 17:48:27 -0600 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2019-09-20 19:49:30 -0600 |
commit | 3ad9074b7962e1ce97f744534650fbf14d32f465 (patch) | |
tree | 91cdaf29669158cddc0e03f257287cde93107de8 /src/include/liburing.h | |
parent | 5109ed3ec733968cc1aa6457020d8cc1389135bb (diff) | |
download | liburing-3ad9074b7962e1ce97f744534650fbf14d32f465.tar.gz liburing-3ad9074b7962e1ce97f744534650fbf14d32f465.tar.bz2 |
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 <axboe@kernel.dk>
Diffstat (limited to 'src/include/liburing.h')
-rw-r--r-- | src/include/liburing.h | 7 |
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 } #endif |