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

driver: add Builder API as an option to start #113

Merged
merged 1 commit into from
Sep 19, 2022

Conversation

FrankReh
Copy link
Collaborator

Add a Builder API as an option to start the tokio_uring runtime.

The preexisting tokio_uring::start function is maintained.

A new start mechanism is introduced that allows specifying the parts that the runtime start and the driver initialize use.

An example of the new usage is provided in the Builder::start method.

A goal of this Builder was to remain independant of the io-uring Builder progress and allow the caller to build their io-uring options and pass them to this crate's Builder. As new kernel versions support more io_uring setup parameters, the tokio io-uring crate will add more Builder options and they should not require lock-step changes in this crate.

Fixes #105

Add a Builder API as an option to start the tokio_uring runtime.

The preexisting tokio_uring::start function is maintained.

A new start mechanism is introduced that allows specifying the parts
that the runtime start and the driver initialize use.

An example of the new usage is provided in the Builder::start method.

A goal of this Builder was to remain independant of the io-uring Builder
progress and allow the caller to build their io-uring options and pass
them to this crate's Builder. As new kernel versions support more
io_uring setup parameters, the tokio io-uring crate will add more
Builder options and they should not require lock-step changes in this
crate.

Fixes tokio-rs#105
@FrankReh
Copy link
Collaborator Author

I'm always open to name changes and comment changes. My comments could sometimes be too on the nose, while my local variable names could be too short for some.

@FrankReh
Copy link
Collaborator Author

@Noah-Kennedy Github is confusing me. Do I need to do something else to get this reviewed by someone on the team?

Copy link
Contributor

@Noah-Kennedy Noah-Kennedy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@FrankReh I had meant to get to this earlier, but ended up being quite busy. If something like this looks like it's falling through, please ping me like you did here.

src/lib.rs Show resolved Hide resolved
@Noah-Kennedy Noah-Kennedy merged commit 20da163 into tokio-rs:master Sep 19, 2022
@FrankReh FrankReh deleted the frankreh/builder_setup branch September 23, 2022 12:32
Noah-Kennedy pushed a commit that referenced this pull request Nov 5, 2022
# 0.4.0 (November 5th, 2022)

### Fixed

- Fix panic in Deref/DerefMut for Slice extending into uninitialized
part of the buffer ([#52])
- docs: all-features = true ([#84])
- fix fs unit tests to avoid parallelism ([#121])
- Box the socket address to allow moving the Connect future ([#126])
- rt: Fix data race ([#146])

### Added

- Implement fs::File::readv_at()/writev_at() ([#87])
- fs: implement FromRawFd for File ([#89])
- Implement `AsRawFd` for `TcpStream` ([#94])
- net: add TcpListener.local_addr method ([#107])
- net: add TcpStream.write_all ([#111])
- driver: add Builder API as an option to start ([#113])
- Socket and TcpStream shutdown ([#124])
- fs: implement fs::File::from_std ([#131])
- net: implement FromRawFd for TcpStream ([#132])
- fs: implement OpenOptionsExt for OpenOptions ([#133])
- Add NoOp support ([#134])
- Add writev to TcpStream ([#136])
- sync TcpStream, UnixStream and UdpSocket functionality ([#141])
- Add benchmarks for no-op submission ([#144])
- Expose runtime structure ([#148])

### Changed

- driver: batch submit requests and add benchmark ([#78])
- Depend on io-uring version ^0.5.8 ([#153])

### Internal Improvements

- chore: fix clippy lints ([#99])
- io: refactor post-op logic in ops into Completable ([#116])
- Support multi completion events: v2 ([#130])
- simplify driver operation futures ([#139])
- rt: refactor runtime to avoid Rc\<RefCell\<...>> ([#142])
- Remove unused dev-dependencies ([#143])
- chore: types and fields explicitly named ([#149])
- Ignore errors from uring while cleaning up ([#154])
- rt: drop runtime before driver during shutdown ([#155])
- rt: refactor drop logic ([#157])
- rt: fix error when calling block_on twice ([#162])

### CI changes

- chore: update actions/checkout action to v3 ([#90])
- chore: add all-systems-go ci check ([#98])
- chore: add clippy to ci ([#100])
- ci: run cargo test --doc ([#135])


[#52]: #52
[#78]: #78
[#84]: #84
[#87]: #87
[#89]: #89
[#90]: #90
[#94]: #94
[#98]: #98
[#99]: #99
[#100]: #100
[#107]: #107
[#111]: #111
[#113]: #113
[#116]: #116
[#121]: #121
[#124]: #124
[#126]: #126
[#130]: #130
[#131]: #131
[#132]: #132
[#133]: #133
[#134]: #134
[#135]: #135
[#136]: #136
[#139]: #139
[#141]: #141
[#142]: #142
[#143]: #143
[#144]: #144
[#146]: #146
[#148]: #148
[#149]: #149
[#153]: #153
[#154]: #154
[#155]: #155
[#157]: #157
[#162]: #162
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.

io_uring setup parameters
2 participants