Skip to content

Conversation

@hexagonal-sun
Copy link
Owner

Add the facility for multishot IO to be used. Expressed through async streams.

Any IO that is pending is put into the `pending_io` slab. Currently this
is a tuple, which can make the interpretation of the fields difficult.
Therefore, create a struct so that the fields are assigned names.
Remove access to functions that do not need to be accessible outside of
the `reactor` module.
Support multishot SQEs.
Use the AcceptMulti event, so that a single SQE can accept multiple
connections.
When a multishot IO will no longer yield a value the IORING_CQE_F_MORE
flag will not be set. Detect that here and make all multishot IOs return
`Poll::Ready(None)` in that case to signal that the end of the stream
has been reached.
@hexagonal-sun hexagonal-sun merged commit 5ba8ba9 into master May 1, 2025
1 check passed
@hexagonal-sun hexagonal-sun deleted the multishot branch May 1, 2025 06:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants