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

sync TcpStream, UnixStream and UdpSocket functionality #141

Merged

Conversation

FrankReh
Copy link
Collaborator

A few features have been added to one or the other. This brings them back to parity with each other.

Socket:

pub(crate) fn from_std<T: IntoRawFd>(socket: T) -> Socket

    Socket.from_std is changed from being UdpSocket specific to
    being generic over the IntoRawFd trait.

TcpStream:

pub from_std(std::net::TcpStream) -> TcpStream

UdpSocket:

pub(crate) fn from_socket(Socket) -> UdpSocket

pub fn shutdown(std::net::Shutdown) -> io::Result<()>

unsafe fn from_raw_fd(RawFd) -> UdpSocket

fn as_raw_fd() -> RawFd

UnixStream:

pub fn from_std(std::os::unix::net::UnixStream) -> UnixStream

pub(crate) from_socket(Socket) -> UnixStream

pub fn write_all<T: IoBuf>(mut buf: T) -> BufResult<(), T>

pub fn shutdown(std::net::Shutdown) -> io::Result<()>

unsafe fn from_raw_fd(RawFd) -> UdpSocket

fn as_raw_fd() -> RawFd

A few features have been added to one or the other. This brings them
back to parity with each other.

Socket:

    pub(crate) fn from_std<T: IntoRawFd>(socket: T) -> Socket

        Socket.from_std is changed from being UdpSocket specific to
        being generic over the IntoRawFd trait.

TcpStream:

    pub from_std(std::net::TcpStream) -> TcpStream

UdpSocket:

    pub(crate) fn from_socket(Socket) -> UdpSocket

    pub fn shutdown(std::net::Shutdown) -> io::Result<()>

    unsafe fn from_raw_fd(RawFd) -> UdpSocket

    fn as_raw_fd() -> RawFd

UnixStream:

    pub fn from_std(std::os::unix::net::UnixStream) -> UnixStream

    pub(crate) from_socket(Socket) -> UnixStream

    pub fn write_all<T: IoBuf>(mut buf: T) -> BufResult<(), T>

    pub fn shutdown(std::net::Shutdown) -> io::Result<()>

    unsafe fn from_raw_fd(RawFd) -> UdpSocket

    fn as_raw_fd() -> RawFd
@Noah-Kennedy Noah-Kennedy merged commit 3bdb73e into tokio-rs:master Oct 22, 2022
@FrankReh FrankReh deleted the frankreh/align-tcp-udp-unix-net-2 branch October 23, 2022 01:27
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.

2 participants