-
Notifications
You must be signed in to change notification settings - Fork 2
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
Thomasdezeeuw
wants to merge
187
commits into
main
Choose a base branch
from
port
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
Rewrite internals #142
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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.
io_uring only.
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.
Shorter name.
Sort of.
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.
Otherwise the types can't be reached.
Trait to support the Extract implementation. Also adds the poll_extract function to FdOperation, which uses the trait.
Requires a new Operation::poll_extract method and OpExtract extension trait.
Inline them at the callsites.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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.