plucky (3) io_uring_submit_and_wait_timeout.3.gz

Provided by: liburing-dev_2.9-1_amd64 bug

NAME

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

SYNOPSIS

       #include <liburing.h>

       int io_uring_submit_and_wait_timeout(struct io_uring *ring,
                                            struct io_uring_cqe **cqe_ptr,
                                            unsigned wait_nr,
                                            struct __kernel_timespec *ts,
                                            sigset_t *sigmask);

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.

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)