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

Add writev to TcpStream #136

Merged
merged 6 commits into from
Oct 27, 2022
Merged

Conversation

fasterthanlime
Copy link
Contributor

Seemed like a glaring omission. Not sure how this fits in with in-progress work, let's see if this alone works.

@Noah-Kennedy
Copy link
Contributor

@fasterthanlime this would be nice to have in the crate.

@fasterthanlime fasterthanlime marked this pull request as ready for review October 17, 2022 23:41
@fasterthanlime
Copy link
Contributor Author

Note that in tokio, the equivalent method is named write_vectored: https://docs.rs/tokio/latest/tokio/io/trait.AsyncWriteExt.html#method.write_vectored

I also haven't written tests for it yet.

@Noah-Kennedy
Copy link
Contributor

I'm down to merge once tests are in. I'm fine with the Vec dependency here.

Copy link
Collaborator

@FrankReh FrankReh left a comment

Choose a reason for hiding this comment

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

These changes look good. Would you mind adding the same function for the UnixStream?

And if you wouldn't mind merging master in again. There's at least one line that should be 'op.await' now.

Barring anyone else's concerns, this can then be merged.

@Noah-Kennedy
Copy link
Contributor

CI is currently failing.

@FrankReh
Copy link
Collaborator

CI is currently failing.

Yea. That's because last night I hit the 'auto update' button and it updated the files it could but of course not the new file that was added. And I don't think I can go into the file from here and make the trivial fix. If we don't here from the OP soon, I can fork their branch and make this PR myself.

@fasterthanlime
Copy link
Contributor Author

If we don't here from the OP soon, I can fork their branch and make this PR myself.

Go ahead and make your own PR! I'm not able to fix mine right now, and there's no point in blocking on me 😌

@FrankReh FrankReh self-assigned this Oct 27, 2022
@FrankReh FrankReh merged commit 4a10a9c into tokio-rs:master Oct 27, 2022
@fasterthanlime
Copy link
Contributor Author

@FrankReh thanks for getting this past the finish line!

@FrankReh
Copy link
Collaborator

My pleasure. Still getting used to squash merges on GitHub and being able to push to someone else's branch for their PR but I found a how-to that made it easy. What with master changing so much now, this is going to come up often and generally the maintainers will know how to resolve differences much easier than the OP, even more so if the PR was written a while ago. Good luck with your http investigations!

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.

4 participants