-
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
Merged
Merged
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
The caller must uphold some conditions the compiler can not check.
Indicates whether or not the operation should be resubmitted. For kqueue this will always be true, for io_uring this will be false.
Use T::drop_from_waker_data directly.
To support direct descriptors.
Renames CompletionState types to OperationState to match the trait name.
To support multishot operations.
Only macro not used.
To make space for submodules.
Instead of exposing the implementation specific type.
Allows the two be configured separately.
We can safely do it without this requirement.
Wrapper around libc::iovec to not depend on an external crate in the public API. Also helps with implementing Send, Sync and fmt::Debug.
Before this commit we assumed that the task::Waker never changed between calls to Future::poll AsyncIter::poll_next. This commit changes it to always attempt to update the waker when we return Poll::Pending
These aren't actually filled.
The box is an implementation detail. Also want to move to a not-libc type in the future.
Moving it to the State type.
Had to be manually implemented, which means exposing some of the op module's types, such as op::State.
Now uses the AsyncIterator implementation for ReceiveSignals.
Open
Rust 1.84 isn't released yet.
Some of these are outdated, others are turned into GitHub issues and others still refer to Rust unstable features that have been unstable for too long.
Before it would only call the drop method, but not actually drop the state itself.
Rust 1.84 has been released.
Required for task::Waker::noop.
Rust 1.85 isn't stable yet.
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.