logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

io_uring_submit_and_wait_timeout - submit requests to the submission queue and wait for the completion

Description

       The io_uring_submit_and_wait_timeout(3) function submits the next  requests  from  the  submission  queue
       belonging  to  the  ring  and  waits  for wait_nr completion events, or until the timeout ts expires. The
       completion events are stored in the cqe_ptr array.

       The sigmask specifies the set of signals to block. If set, it is equivalent to atomically  executing  the
       following calls:

           sigset_t origmask;

           pthread_sigmask(SIG_SETMASK, &sigmask, &origmask);
           ret = io_uring_submit_and_wait_timeout(ring, cqe, wait_nr, ts, NULL);
           pthread_sigmask(SIG_SETMASK, &origmask, NULL);

       After  the caller retrieves a submission queue entry (SQE) with io_uring_get_sqe(3) and prepares the SQE,
       it can be submitted with io_uring_submit_and_wait_timeout(3).

       Ideally used with a ring setup with IORING_SETUP_SINGLE_ISSUER|IORING_SETUP_DEFER_TASKRUN  as  that  will
       greatly reduce the number of context switches that an application will see waiting on multiple requests.

Name

       io_uring_submit_and_wait_timeout  -  submit  requests to the submission queue and wait for the completion
       with timeout

Return Value

       On  success io_uring_submit_and_wait_timeout(3) returns the number of submitted submission queue entries.
       On failure it returns -errno.  Note that in earlier versions of the liburing library,  the  return  value
       was  0  on  success.   The  most  common  failure case is not receiving a completion within the specified
       timeout, -ETIME is returned in this case.

See Also

io_uring_queue_init_params(3),  io_uring_get_sqe(3),   io_uring_submit(3),   io_uring_submit_and_wait(3),
       io_uring_wait_cqe(3)

liburing-2.1                                    November 15, 2021            io_uring_submit_and_wait_timeout(3)

Synopsis

#include<liburing.h>intio_uring_submit_and_wait_timeout(structio_uring*ring,structio_uring_cqe**cqe_ptr,unsignedwait_nr,struct__kernel_timespec*ts,sigset_t*sigmask);

See Also