Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rewrite internals #142

Draft
wants to merge 187 commits into
base: main
Choose a base branch
from
Draft

Rewrite internals #142

wants to merge 187 commits into from

Conversation

Thomasdezeeuw
Copy link
Owner

@Thomasdezeeuw Thomasdezeeuw commented Dec 15, 2024

This rewrites the internals to support OS implementations other than io_uring. This way A10 can be ported (more easily) to other platforms such as kqueue.

To move all io_uring code into.
Can be useful for other OS.
Going to be making some breaking changes.
Breaks everything, but now it's all moved. From this point we can start
building up a cross-platform API in root of the crate.

The tests are not updated as we want roughly the API as the old code, so
we don't want to change them only to change them back.
Ring, SubmissionQueue and AsyncFd.
To keep track of all the small things that need to be done.
Will move it back piece by piece.
So we can import/use them more easily.
In case it's used in an unsafe block.
It's the old sys module with the io_uring systemcall wrappers.
Now uses the public types everywhere.
The Config type is documented at the root.
Hold the CompletionQueue implementation.
Matching in the kqueue implementation.
Implements the SubmissionQueue, the types are way too complex though.
Uses kqueue::Event for this in the kqueue implementation, move it to the
root of the module from the sq submodule.
Not enough lines to warrent an entirely separate module and we're using
too many types from the root of kqueue as well.
@Thomasdezeeuw Thomasdezeeuw changed the title Port to kqueue Rewrite internals Dec 28, 2024
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.

1 participant