aboutsummaryrefslogtreecommitdiff
path: root/tests/io_async_fd.rs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/io_async_fd.rs')
-rw-r--r--tests/io_async_fd.rs31
1 files changed, 9 insertions, 22 deletions
diff --git a/tests/io_async_fd.rs b/tests/io_async_fd.rs
index 49b5a68..aca2546 100644
--- a/tests/io_async_fd.rs
+++ b/tests/io_async_fd.rs
@@ -1,7 +1,7 @@
#![warn(rust_2018_idioms)]
#![cfg(all(unix, feature = "full"))]
-use std::os::unix::io::{AsRawFd, IntoRawFd, RawFd};
+use std::os::unix::io::{AsRawFd, RawFd};
use std::sync::{
atomic::{AtomicBool, Ordering},
Arc,
@@ -13,7 +13,7 @@ use std::{
task::{Context, Waker},
};
-use nix::unistd::{close, read, write};
+use nix::unistd::{read, write};
use futures::poll;
@@ -57,18 +57,18 @@ impl TestWaker {
#[derive(Debug)]
struct FileDescriptor {
- fd: RawFd,
+ fd: std::os::fd::OwnedFd,
}
impl AsRawFd for FileDescriptor {
fn as_raw_fd(&self) -> RawFd {
- self.fd
+ self.fd.as_raw_fd()
}
}
impl Read for &FileDescriptor {
fn read(&mut self, buf: &mut [u8]) -> io::Result<usize> {
- read(self.fd, buf).map_err(io::Error::from)
+ read(self.fd.as_raw_fd(), buf).map_err(io::Error::from)
}
}
@@ -80,7 +80,7 @@ impl Read for FileDescriptor {
impl Write for &FileDescriptor {
fn write(&mut self, buf: &[u8]) -> io::Result<usize> {
- write(self.fd, buf).map_err(io::Error::from)
+ write(&self.fd, buf).map_err(io::Error::from)
}
fn flush(&mut self) -> io::Result<()> {
@@ -98,12 +98,6 @@ impl Write for FileDescriptor {
}
}
-impl Drop for FileDescriptor {
- fn drop(&mut self) {
- let _ = close(self.fd);
- }
-}
-
fn set_nonblocking(fd: RawFd) {
use nix::fcntl::{OFlag, F_GETFL, F_SETFL};
@@ -132,17 +126,10 @@ fn socketpair() -> (FileDescriptor, FileDescriptor) {
SockFlag::empty(),
)
.expect("socketpair");
- let fds = (
- FileDescriptor {
- fd: fd_a.into_raw_fd(),
- },
- FileDescriptor {
- fd: fd_b.into_raw_fd(),
- },
- );
+ let fds = (FileDescriptor { fd: fd_a }, FileDescriptor { fd: fd_b });
- set_nonblocking(fds.0.fd);
- set_nonblocking(fds.1.fd);
+ set_nonblocking(fds.0.fd.as_raw_fd());
+ set_nonblocking(fds.1.fd.as_raw_fd());
fds
}