Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 22 additions & 1 deletion man/io_uring_prep_recv.3
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,28 @@ Instead it returns the negated
.I errno
directly in the CQE
.I res
field.
field. Some common error cases are:
.TP
.B -EAGAIN
The operation would have blocked. io_uring normally arms internal poll and
reissues the request once the socket is ready, so this does not occur for a
socket in blocking mode. It is returned when the operation is non-blocking and
cannot complete immediately, that is when
.B MSG_DONTWAIT
was set in the
.I flags
argument or the socket is marked
.BR O_NONBLOCK ;
.BR recv (2)
treats the two equivalently. To have io_uring poll and retry instead, do not
mark the socket
.B O_NONBLOCK
and do not set
.BR MSG_DONTWAIT .
Otherwise treat
.B -EAGAIN
as transient and reissue the request.
.P
.SH NOTES
Despite accepting a size_t number of bytes, these functions can transfer at most
INT_MAX bytes per call (the maximum for the underlying syscall interface).
Expand Down
25 changes: 24 additions & 1 deletion man/io_uring_prep_recvmsg.3
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,30 @@ Instead it returns the negated
.I errno
directly in the CQE
.I res
field.
field. Some common error cases are:
.TP
.B -EAGAIN
The operation would have blocked. io_uring normally arms internal poll and
reissues the request once the socket is ready, so this does not occur for a
socket in blocking mode. It is returned when the operation is non-blocking and
cannot complete immediately, that is when
.B MSG_DONTWAIT
was set in the
.I msg_flags
of the
.I msghdr
argument or the socket is marked
.BR O_NONBLOCK ;
.BR recv (2)
treats the two equivalently. To have io_uring poll and retry instead, do not
mark the socket
.B O_NONBLOCK
and do not set
.BR MSG_DONTWAIT .
Otherwise treat
.B -EAGAIN
as transient and reissue the request.
.P
.SH NOTES
As with any request that passes in data in a struct, that data must remain
valid until the request has been successfully submitted. It need not remain
Expand Down
23 changes: 22 additions & 1 deletion man/io_uring_prep_send.3
Original file line number Diff line number Diff line change
Expand Up @@ -184,7 +184,28 @@ Instead it returns the negated
.I errno
directly in the CQE
.I res
field.
field. Some common error cases are:
.TP
.B -EAGAIN
The operation would have blocked. io_uring normally arms internal poll and
reissues the request once the socket is ready, so this does not occur for a
socket in blocking mode. It is returned when the operation is non-blocking and
cannot complete immediately, that is when
.B MSG_DONTWAIT
was set in the
.I flags
argument or the socket is marked
.BR O_NONBLOCK ;
.BR send (2)
treats the two equivalently. To have io_uring poll and retry instead, do not
mark the socket
.B O_NONBLOCK
and do not set
.BR MSG_DONTWAIT .
Otherwise treat
.B -EAGAIN
as transient and reissue the request.
.P
.SH NOTES
Despite accepting a size_t number of bytes, these functions can transfer at most
INT_MAX bytes per call (the maximum for the underlying syscall interface).
Expand Down
22 changes: 22 additions & 0 deletions man/io_uring_prep_sendmsg.3
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,28 @@ directly in the CQE
.I res
field. Some common error cases are:
.TP
.B -EAGAIN
The operation would have blocked. io_uring normally arms internal poll and
reissues the request once the socket is ready, so this does not occur for a
socket in blocking mode. It is returned when the operation is non-blocking and
cannot complete immediately, that is when
.B MSG_DONTWAIT
was set in the
.I msg_flags
of the
.I msghdr
argument or the socket is marked
.BR O_NONBLOCK ;
.BR send (2)
treats the two equivalently. To have io_uring poll and retry instead, do not
mark the socket
.B O_NONBLOCK
and do not set
.BR MSG_DONTWAIT .
Otherwise treat
.B -EAGAIN
as transient and reissue the request.
.TP
.B -ENOMEM
The
.BR ulimit (1)
Expand Down
Loading