• J
    io_uring: IORING_OP_TIMEOUT support · 94601f2b
    Jens Axboe 提交于
    commit 5262f567987d3c30052b22e78c35c2313d07b230 upstream.
    
    There's been a few requests for functionality similar to io_getevents()
    and epoll_wait(), where the user can specify a timeout for waiting on
    events. I deliberately did not add support for this through the system
    call initially to avoid overloading the args, but I can see that the use
    cases for this are valid.
    
    This adds support for IORING_OP_TIMEOUT. If a user wants to get woken
    when waiting for events, simply submit one of these timeout commands
    with your wait call (or before). This ensures that the application
    sleeping on the CQ ring waiting for events will get woken. The timeout
    command is passed in as a pointer to a struct timespec. Timeouts are
    relative. The timeout command also includes a way to auto-cancel after
    N events has passed.
    Signed-off-by: NJens Axboe <axboe@kernel.dk>
    Signed-off-by: NJoseph Qi <joseph.qi@linux.alibaba.com>
    Reviewed-by: NXiaoguang Wang <xiaoguang.wang@linux.alibaba.com>
    94601f2b
io_uring.c 92.1 KB