diff options
Diffstat (limited to 'man')
| -rw-r--r-- | man/io_uring_enter.2 | 45 | 
1 files changed, 44 insertions, 1 deletions
| diff --git a/man/io_uring_enter.2 b/man/io_uring_enter.2 index eeabced..d0d12ad 100644 --- a/man/io_uring_enter.2 +++ b/man/io_uring_enter.2 @@ -13,7 +13,8 @@ io_uring_enter \- initiate and/or complete asynchronous I/O  .BR "#include <linux/io_uring.h>"  .PP  .BI "int io_uring_enter(unsigned int " fd ", unsigned int " to_submit , -.BI "                   unsigned int " min_complete ", unsigned int " flags) +.BI "                   unsigned int " min_complete ", unsigned int " flags , +.BI "                   sigset_t *" sig ", size_t " sigsz)  .fi  .PP  .SH DESCRIPTION @@ -52,6 +53,48 @@ flag in  as for IRQ driven I/O, the application can just check the completion  queue without entering the kernel. +.I sig +is a pointer to a signal mask (see +.BR sigprocmask (2)); +.I sigsz +is the size of the +.I sig +argument.  If +.I sig +is not NULL, +.BR io_uring_enter () +first replaces the current signal mask by the one pointed to by +.I sig, +then waits for events to become available in the completion queue, and +then restores the original signal mask.  The following +.BI io_uring_enter () +call: +.PP +.in +4n +.EX +ret = io_uring_enter(fd, 0, 1, +            IORING_ENTER_GETEVENTS, &sig, sigsz); +.EE +.in +.PP +is equivalent to +.I atomically +executing the following calls: +.PP +.in +4n +.EX +pthread_sigmask(SIG_SETMASK, &sig, &orig); +ret = io_uring_enter(fd, 0, 1, IORING_ENTER_GETEVENTS, NULL, 0); +pthread_sigmask(SIG_SETMASK, &orig, NULL); +.EE +.in +.PP +See the description of +.BR pselect (2) +for an explanation of why the +.I sig +parameter is necessary. +  Submission queue entries are represented using the following data  structure:  .PP | 
