From 470d0e2a1ce5773b5db3526e7ee3d6bf84a36816 Mon Sep 17 00:00:00 2001 From: Raphael Amorim Date: Fri, 20 Mar 2026 09:43:10 +0100 Subject: [PATCH] update corcovado --- corcovado/Cargo.toml | 2 +- corcovado/src/channel.rs | 2 +- corcovado/src/event_imp.rs | 4 ++-- corcovado/src/lib.rs | 30 ++++++-------------------- corcovado/src/poll.rs | 5 +++-- corcovado/src/sys/fuchsia/awakener.rs | 2 +- corcovado/src/sys/fuchsia/eventedfd.rs | 6 +++--- corcovado/src/sys/fuchsia/handles.rs | 2 +- corcovado/src/sys/fuchsia/mod.rs | 4 ++-- corcovado/src/sys/fuchsia/net.rs | 4 ++-- corcovado/src/sys/fuchsia/ready.rs | 2 +- corcovado/src/sys/fuchsia/selector.rs | 6 +++--- corcovado/src/sys/unix/awakener.rs | 6 +++--- corcovado/src/sys/unix/dlsym.rs | 4 ++-- corcovado/src/sys/unix/epoll.rs | 8 +++---- corcovado/src/sys/unix/eventedfd.rs | 4 ++-- corcovado/src/sys/unix/io.rs | 8 +++---- corcovado/src/sys/unix/kqueue.rs | 13 +++++------ corcovado/src/sys/unix/mod.rs | 4 ++-- corcovado/src/sys/unix/ready.rs | 2 +- corcovado/src/sys/unix/uds.rs | 8 +++---- corcovado/src/sys/windows/awakener.rs | 4 ++-- corcovado/src/sys/windows/selector.rs | 10 ++++----- corcovado/src/sys/windows/tcp.rs | 6 +++--- corcovado/src/sys/windows/udp.rs | 4 ++-- corcovado/src/timer.rs | 3 ++- 26 files changed, 70 insertions(+), 83 deletions(-) diff --git a/corcovado/Cargo.toml b/corcovado/Cargo.toml index 1bf244cf..18b219ff 100644 --- a/corcovado/Cargo.toml +++ b/corcovado/Cargo.toml @@ -2,7 +2,7 @@ name = "corcovado" version = { workspace = true } license = "MIT" -edition = "2015" +edition = "2021" authors = ["Raphael Amorim Ready { - Ready(READABLE | WRITABLE | ::sys::READY_ALL) + Ready(READABLE | WRITABLE | crate::sys::READY_ALL) } /// Returns true if `Ready` is the empty set diff --git a/corcovado/src/lib.rs b/corcovado/src/lib.rs index 7a51f44a..c458459d 100644 --- a/corcovado/src/lib.rs +++ b/corcovado/src/lib.rs @@ -97,26 +97,10 @@ // // ``` -extern crate iovec; -extern crate net2; -extern crate slab; - #[cfg(target_os = "fuchsia")] -extern crate fuchsia_zircon as zircon; +use fuchsia_zircon as zircon; #[cfg(target_os = "fuchsia")] -extern crate fuchsia_zircon_sys as zircon_sys; - -#[cfg(unix)] -extern crate libc; - -#[cfg(windows)] -extern crate miow; - -#[cfg(windows)] -extern crate windows_sys; - -#[macro_use] -extern crate tracing; +use fuchsia_zircon_sys as zircon_sys; mod event_imp; mod io; @@ -148,8 +132,8 @@ pub use event::Events; #[cfg(all(unix, not(target_os = "fuchsia")))] pub mod unix { //! Unix only extensions - pub use sys::unix::UnixReady; - pub use sys::EventedFd; + pub use crate::sys::unix::UnixReady; + pub use crate::sys::EventedFd; } #[cfg(target_os = "fuchsia")] @@ -161,8 +145,8 @@ pub mod fuchsia { //! This module depends on the [magenta-sys crate](https://crates.io/crates/magenta-sys) //! and so might introduce breaking changes, even on minor releases, //! so long as that crate remains unstable. - pub use sys::fuchsia::{zx_signals_t, FuchsiaReady}; - pub use sys::EventedHandle; + pub use crate::sys::fuchsia::{zx_signals_t, FuchsiaReady}; + pub use crate::sys::EventedHandle; } /// Windows-only extensions to the mio crate. @@ -218,5 +202,5 @@ pub mod fuchsia { #[cfg(windows)] pub mod windows { - pub use sys::{Binding, Overlapped}; + pub use crate::sys::{Binding, Overlapped}; } diff --git a/corcovado/src/poll.rs b/corcovado/src/poll.rs index 113a4dde..efd1171f 100644 --- a/corcovado/src/poll.rs +++ b/corcovado/src/poll.rs @@ -1,4 +1,5 @@ -use event_imp::{self as event, Event, Evented, PollOpt, Ready}; +use crate::event_imp::{self as event, Event, Evented, PollOpt, Ready}; +use tracing::trace; use std::cell::UnsafeCell; #[cfg(all(unix, not(target_os = "fuchsia")))] use std::os::unix::io::AsRawFd; @@ -12,7 +13,7 @@ use std::sync::{Arc, Condvar, Mutex}; use std::time::{Duration, Instant}; use std::{fmt, io, ptr}; use std::{mem, ops}; -use {sys, Token}; +use crate::{sys, Token}; // Poll is backed by two readiness queues. The first is a system readiness queue // represented by `sys::Selector`. The system readiness queue handles events diff --git a/corcovado/src/sys/fuchsia/awakener.rs b/corcovado/src/sys/fuchsia/awakener.rs index d92f6367..ea7bb4fa 100644 --- a/corcovado/src/sys/fuchsia/awakener.rs +++ b/corcovado/src/sys/fuchsia/awakener.rs @@ -1,6 +1,6 @@ use std::sync::{Arc, Mutex, Weak}; use zircon; -use {io, poll, Evented, Poll, PollOpt, Ready, Token}; +use crate::{io, poll, Evented, Poll, PollOpt, Ready, Token}; pub struct Awakener { /// Token and weak reference to the port on which Awakener was registered. diff --git a/corcovado/src/sys/fuchsia/eventedfd.rs b/corcovado/src/sys/fuchsia/eventedfd.rs index 85c12918..8f1d5883 100644 --- a/corcovado/src/sys/fuchsia/eventedfd.rs +++ b/corcovado/src/sys/fuchsia/eventedfd.rs @@ -2,10 +2,10 @@ use libc; use std::mem; use std::os::unix::io::RawFd; use std::sync::{Arc, Mutex}; -use sys::fuchsia::{poll_opts_to_wait_async, sys, DontDrop}; +use crate::sys::fuchsia::{poll_opts_to_wait_async, sys, DontDrop}; use zircon; use zircon::AsHandleRef; -use {io, poll, Evented, Poll, PollOpt, Ready, Token}; +use crate::{io, poll, Evented, Poll, PollOpt, Ready, Token}; /// Properties of an `EventedFd`'s current registration #[derive(Debug)] @@ -247,7 +247,7 @@ impl Evented for EventedFd { } fn ioevent_to_epoll(interest: Ready, opts: PollOpt) -> u32 { - use event_imp::ready_from_usize; + use crate::event_imp::ready_from_usize; const HUP: usize = 0b01000; let mut kind = 0; diff --git a/corcovado/src/sys/fuchsia/handles.rs b/corcovado/src/sys/fuchsia/handles.rs index c64e5bc8..3caf57cc 100644 --- a/corcovado/src/sys/fuchsia/handles.rs +++ b/corcovado/src/sys/fuchsia/handles.rs @@ -1,6 +1,6 @@ use std::sync::Mutex; use zircon_sys::zx_handle_t; -use {io, poll, Evented, Poll, PollOpt, Ready, Token}; +use crate::{io, poll, Evented, Poll, PollOpt, Ready, Token}; /// Wrapper for registering a `HandleBase` type with mio. #[derive(Debug)] diff --git a/corcovado/src/sys/fuchsia/mod.rs b/corcovado/src/sys/fuchsia/mod.rs index 88d5f5a0..56b6cb93 100644 --- a/corcovado/src/sys/fuchsia/mod.rs +++ b/corcovado/src/sys/fuchsia/mod.rs @@ -4,7 +4,7 @@ use std::net::{IpAddr, Ipv4Addr, SocketAddr}; use std::ops::{Deref, DerefMut}; use std::os::unix::io::RawFd; use zircon; -use {io, PollOpt, Ready}; +use crate::{io, PollOpt, Ready}; mod awakener; mod eventedfd; @@ -132,7 +132,7 @@ impl IsMinusOne for isize { } } -fn cvt(t: T) -> ::io::Result { +fn cvt(t: T) -> crate::io::Result { use std::io; if t.is_minus_one() { diff --git a/corcovado/src/sys/fuchsia/net.rs b/corcovado/src/sys/fuchsia/net.rs index 6f18c292..58779708 100644 --- a/corcovado/src/sys/fuchsia/net.rs +++ b/corcovado/src/sys/fuchsia/net.rs @@ -9,8 +9,8 @@ use std::io::{Read, Write}; use std::net::{self, Ipv4Addr, Ipv6Addr, SocketAddr}; use std::os::unix::io::AsRawFd; use std::time::Duration; -use sys::fuchsia::{recv_from, set_nonblock, DontDrop, EventedFd}; -use {io, Evented, Poll, PollOpt, Ready, Token}; +use crate::sys::fuchsia::{recv_from, set_nonblock, DontDrop, EventedFd}; +use crate::{io, Evented, Poll, PollOpt, Ready, Token}; #[derive(Debug)] pub struct TcpStream { diff --git a/corcovado/src/sys/fuchsia/ready.rs b/corcovado/src/sys/fuchsia/ready.rs index d4f47203..2141cddf 100644 --- a/corcovado/src/sys/fuchsia/ready.rs +++ b/corcovado/src/sys/fuchsia/ready.rs @@ -1,4 +1,4 @@ -use event_imp::{ready_as_usize, ready_from_usize, Ready}; +use crate::event_imp::{ready_as_usize, ready_from_usize, Ready}; use std::ops; pub use zircon_sys::{zx_signals_t, ZX_OBJECT_READABLE, ZX_OBJECT_WRITABLE}; diff --git a/corcovado/src/sys/fuchsia/selector.rs b/corcovado/src/sys/fuchsia/selector.rs index b32e7e50..4e31d6a4 100644 --- a/corcovado/src/sys/fuchsia/selector.rs +++ b/corcovado/src/sys/fuchsia/selector.rs @@ -4,15 +4,15 @@ use std::mem; use std::sync::atomic::{AtomicBool, AtomicUsize, Ordering, ATOMIC_USIZE_INIT}; use std::sync::{Arc, Mutex, Weak}; use std::time::Duration; -use sys; -use sys::fuchsia::{ +use crate::sys; +use crate::sys::fuchsia::{ assert_fuchsia_ready_repr, epoll_event_to_ready, poll_opts_to_wait_async, EventedFd, EventedFdInner, FuchsiaReady, }; use zircon; use zircon::AsHandleRef; use zircon_sys::zx_handle_t; -use {io, Event, PollOpt, Ready, Token}; +use crate::{io, Event, PollOpt, Ready, Token}; /// The kind of registration-- file descriptor or handle. /// diff --git a/corcovado/src/sys/unix/awakener.rs b/corcovado/src/sys/unix/awakener.rs index 74242442..cbff7e99 100644 --- a/corcovado/src/sys/unix/awakener.rs +++ b/corcovado/src/sys/unix/awakener.rs @@ -2,10 +2,10 @@ pub use self::pipe::Awakener; /// Default awakener backed by a pipe mod pipe { - use event::Evented; + use crate::event::Evented; use std::io::{Read, Write}; - use sys::unix; - use {io, Poll, PollOpt, Ready, Token}; + use crate::sys::unix; + use crate::{io, Poll, PollOpt, Ready, Token}; /* * diff --git a/corcovado/src/sys/unix/dlsym.rs b/corcovado/src/sys/unix/dlsym.rs index 674e6cc4..f91ac33c 100644 --- a/corcovado/src/sys/unix/dlsym.rs +++ b/corcovado/src/sys/unix/dlsym.rs @@ -7,8 +7,8 @@ use libc; macro_rules! dlsym { (fn $name:ident($($t:ty),*) -> $ret:ty) => ( #[allow(bad_style)] - static $name: ::sys::unix::dlsym::DlSym $ret> = - ::sys::unix::dlsym::DlSym { + static $name: crate::sys::unix::dlsym::DlSym $ret> = + crate::sys::unix::dlsym::DlSym { name: concat!(stringify!($name), "\0"), addr: ::std::sync::atomic::AtomicUsize::new(0), _marker: ::std::marker::PhantomData, diff --git a/corcovado/src/sys/unix/epoll.rs b/corcovado/src/sys/unix/epoll.rs index 7856ab18..19161940 100644 --- a/corcovado/src/sys/unix/epoll.rs +++ b/corcovado/src/sys/unix/epoll.rs @@ -9,10 +9,10 @@ use libc::{self, c_int}; use libc::{EPOLLERR, EPOLLHUP, EPOLLONESHOT}; use libc::{EPOLLET, EPOLLIN, EPOLLOUT, EPOLLPRI}; -use event_imp::Event; -use sys::unix::io::set_cloexec; -use sys::unix::{cvt, UnixReady}; -use {io, PollOpt, Ready, Token}; +use crate::event_imp::Event; +use crate::sys::unix::io::set_cloexec; +use crate::sys::unix::{cvt, UnixReady}; +use crate::{io, PollOpt, Ready, Token}; /// Each Selector has a globally unique(ish) ID associated with it. This ID /// gets tracked by `TcpStream`, `TcpListener`, etc... when they are first diff --git a/corcovado/src/sys/unix/eventedfd.rs b/corcovado/src/sys/unix/eventedfd.rs index 1f469f21..ae985cbd 100644 --- a/corcovado/src/sys/unix/eventedfd.rs +++ b/corcovado/src/sys/unix/eventedfd.rs @@ -1,6 +1,6 @@ -use event::Evented; +use crate::event::Evented; use std::os::unix::io::RawFd; -use {io, poll, Poll, PollOpt, Ready, Token}; +use crate::{io, poll, Poll, PollOpt, Ready, Token}; /* * diff --git a/corcovado/src/sys/unix/io.rs b/corcovado/src/sys/unix/io.rs index 9456a8cb..65b15f17 100644 --- a/corcovado/src/sys/unix/io.rs +++ b/corcovado/src/sys/unix/io.rs @@ -4,10 +4,10 @@ use std::os::unix::io::{AsRawFd, FromRawFd, IntoRawFd, RawFd}; use libc; -use event::Evented; -use sys::unix::cvt; -use unix::EventedFd; -use {io, Poll, PollOpt, Ready, Token}; +use crate::event::Evented; +use crate::sys::unix::cvt; +use crate::unix::EventedFd; +use crate::{io, Poll, PollOpt, Ready, Token}; #[allow(unused)] pub fn set_nonblock(fd: libc::c_int) -> io::Result<()> { diff --git a/corcovado/src/sys/unix/kqueue.rs b/corcovado/src/sys/unix/kqueue.rs index c484491d..2b299d92 100644 --- a/corcovado/src/sys/unix/kqueue.rs +++ b/corcovado/src/sys/unix/kqueue.rs @@ -1,4 +1,5 @@ use std::collections::HashMap; +use tracing::trace; #[cfg(not(target_os = "netbsd"))] use std::os::raw::{c_int, c_short}; use std::os::unix::io::AsRawFd; @@ -9,10 +10,10 @@ use std::{cmp, fmt, ptr}; use libc::{self, time_t}; -use event_imp::{self as event, Event}; -use sys::unix::io::set_cloexec; -use sys::unix::{cvt, UnixReady}; -use {io, PollOpt, Ready, Token}; +use crate::event_imp::{self as event, Event}; +use crate::sys::unix::io::set_cloexec; +use crate::sys::unix::{cvt, UnixReady}; +use crate::{io, PollOpt, Ready, Token}; /// Each Selector has a globally unique(ish) ID associated with it. This ID /// gets tracked by `TcpStream`, `TcpListener`, etc... when they are first @@ -386,8 +387,8 @@ impl fmt::Debug for Events { #[test] fn does_not_register_rw() { - use unix::EventedFd; - use {Poll, PollOpt, Ready, Token}; + use crate::unix::EventedFd; + use crate::{Poll, PollOpt, Ready, Token}; let kq = unsafe { libc::kqueue() }; let kqf = EventedFd(&kq); diff --git a/corcovado/src/sys/unix/mod.rs b/corcovado/src/sys/unix/mod.rs index 101dae3c..212c88f2 100644 --- a/corcovado/src/sys/unix/mod.rs +++ b/corcovado/src/sys/unix/mod.rs @@ -54,7 +54,7 @@ pub use self::ready::{UnixReady, READY_ALL}; use std::os::unix::io::FromRawFd; -pub fn pipe() -> ::io::Result<(Io, Io)> { +pub fn pipe() -> crate::io::Result<(Io, Io)> { // Use pipe2 for atomically setting O_CLOEXEC if we can, but otherwise // just fall back to using `pipe`. dlsym!(fn pipe2(*mut c_int, c_int) -> c_int); @@ -98,7 +98,7 @@ impl IsMinusOne for isize { } } -fn cvt(t: T) -> ::io::Result { +fn cvt(t: T) -> crate::io::Result { use std::io; if t.is_minus_one() { diff --git a/corcovado/src/sys/unix/ready.rs b/corcovado/src/sys/unix/ready.rs index 344dd2c2..7b09f409 100644 --- a/corcovado/src/sys/unix/ready.rs +++ b/corcovado/src/sys/unix/ready.rs @@ -1,4 +1,4 @@ -use event_imp::{ready_as_usize, ready_from_usize, Ready}; +use crate::event_imp::{ready_as_usize, ready_from_usize, Ready}; use std::fmt; use std::ops; diff --git a/corcovado/src/sys/unix/uds.rs b/corcovado/src/sys/unix/uds.rs index e0cf70a1..2df34c7d 100644 --- a/corcovado/src/sys/unix/uds.rs +++ b/corcovado/src/sys/unix/uds.rs @@ -7,10 +7,10 @@ use std::ptr; use libc; -use event::Evented; -use sys::unix::io::{set_cloexec, set_nonblock}; -use sys::unix::{cvt, Io}; -use {io, Poll, PollOpt, Ready, Token}; +use crate::event::Evented; +use crate::sys::unix::io::{set_cloexec, set_nonblock}; +use crate::sys::unix::{cvt, Io}; +use crate::{io, Poll, PollOpt, Ready, Token}; trait MyInto { fn my_into(self) -> T; diff --git a/corcovado/src/sys/windows/awakener.rs b/corcovado/src/sys/windows/awakener.rs index cebe3e93..0cfef904 100644 --- a/corcovado/src/sys/windows/awakener.rs +++ b/corcovado/src/sys/windows/awakener.rs @@ -2,8 +2,8 @@ use std::sync::Mutex; use event::Evented; use miow::iocp::CompletionStatus; -use sys::windows::Selector; -use {io, poll, Poll, PollOpt, Ready, Token}; +use crate::sys::windows::Selector; +use crate::{io, poll, Poll, PollOpt, Ready, Token}; pub struct Awakener { inner: Mutex>, diff --git a/corcovado/src/sys/windows/selector.rs b/corcovado/src/sys/windows/selector.rs index 04ca0ba6..3efb583a 100644 --- a/corcovado/src/sys/windows/selector.rs +++ b/corcovado/src/sys/windows/selector.rs @@ -11,15 +11,15 @@ use windows_sys::Win32::Foundation::WAIT_TIMEOUT; use windows_sys::Win32::System::IO::OVERLAPPED; use windows_sys::Win32::System::IO::OVERLAPPED_ENTRY; -use lazycell::AtomicLazyCell; +use crate::lazycell::AtomicLazyCell; use miow; use miow::iocp::{CompletionPort, CompletionStatus}; -use event_imp::{Event, Evented, Ready}; -use poll::{self, Poll}; -use sys::windows::buffer_pool::BufferPool; -use {PollOpt, Token}; +use crate::event_imp::{Event, Evented, Ready}; +use crate::poll::{self, Poll}; +use crate::sys::windows::buffer_pool::BufferPool; +use crate::{PollOpt, Token}; /// Each Selector has a globally unique(ish) ID associated with it. This ID /// gets tracked by `TcpStream`, `TcpListener`, etc... when they are first diff --git a/corcovado/src/sys/windows/tcp.rs b/corcovado/src/sys/windows/tcp.rs index 448f8991..9ca89a19 100644 --- a/corcovado/src/sys/windows/tcp.rs +++ b/corcovado/src/sys/windows/tcp.rs @@ -14,9 +14,9 @@ use miow::net::*; use net2::{TcpBuilder, TcpStreamExt as Net2TcpExt}; use event::Evented; -use sys::windows::from_raw_arc::FromRawArc; -use sys::windows::selector::{Overlapped, ReadyBinding}; -use sys::windows::Family; +use crate::sys::windows::from_raw_arc::FromRawArc; +use crate::sys::windows::selector::{Overlapped, ReadyBinding}; +use crate::sys::windows::Family; use {poll, Poll, PollOpt, Ready, Token}; pub struct TcpStream { diff --git a/corcovado/src/sys/windows/udp.rs b/corcovado/src/sys/windows/udp.rs index 9585dcd4..c38283aa 100644 --- a/corcovado/src/sys/windows/udp.rs +++ b/corcovado/src/sys/windows/udp.rs @@ -21,8 +21,8 @@ use miow::net::UdpSocketExt as MiowUdpSocketExt; use net2::{UdpBuilder, UdpSocketExt}; use event::Evented; -use sys::windows::from_raw_arc::FromRawArc; -use sys::windows::selector::{Overlapped, ReadyBinding}; +use crate::sys::windows::from_raw_arc::FromRawArc; +use crate::sys::windows::selector::{Overlapped, ReadyBinding}; use {poll, Poll, PollOpt, Ready, Token}; pub struct UdpSocket { diff --git a/corcovado/src/timer.rs b/corcovado/src/timer.rs index 8b34ea49..0b5b71eb 100644 --- a/corcovado/src/timer.rs +++ b/corcovado/src/timer.rs @@ -1,6 +1,7 @@ //! Timer optimized for I/O related operations +use tracing::trace; use crate::{event::Evented, Poll, PollOpt, Ready, Registration, SetReadiness, Token}; -use lazycell::LazyCell; +use crate::lazycell::LazyCell; use slab::Slab; use std::sync::atomic::{AtomicUsize, Ordering}; use std::sync::Arc; -- 2.51.2