Skip to content

Commit 6eb1efa

Browse files
HywanThomasdezeeuw
authored andcommitted
feat: Move poll::selector to Registry::selector.
1 parent 441367b commit 6eb1efa

File tree

6 files changed

+32
-26
lines changed

6 files changed

+32
-26
lines changed

src/io_source.rs

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,6 @@ use std::os::windows::io::AsRawSocket;
77
use std::sync::atomic::{AtomicUsize, Ordering};
88
use std::{fmt, io};
99

10-
#[cfg(any(unix, debug_assertions))]
11-
use crate::poll;
1210
use crate::sys::IoSourceState;
1311
use crate::{event, Interest, Registry, Token};
1412

@@ -142,7 +140,9 @@ where
142140
) -> io::Result<()> {
143141
#[cfg(debug_assertions)]
144142
self.selector_id.associate(registry)?;
145-
poll::selector(registry).register(self.inner.as_raw_fd(), token, interests)
143+
registry
144+
.selector()
145+
.register(self.inner.as_raw_fd(), token, interests)
146146
}
147147

148148
fn reregister(
@@ -153,13 +153,15 @@ where
153153
) -> io::Result<()> {
154154
#[cfg(debug_assertions)]
155155
self.selector_id.check_association(registry)?;
156-
poll::selector(registry).reregister(self.inner.as_raw_fd(), token, interests)
156+
registry
157+
.selector()
158+
.reregister(self.inner.as_raw_fd(), token, interests)
157159
}
158160

159161
fn deregister(&mut self, registry: &Registry) -> io::Result<()> {
160162
#[cfg(debug_assertions)]
161163
self.selector_id.remove_association(registry)?;
162-
poll::selector(registry).deregister(self.inner.as_raw_fd())
164+
registry.selector().deregister(self.inner.as_raw_fd())
163165
}
164166
}
165167

@@ -230,7 +232,7 @@ impl SelectorId {
230232
/// Associate an I/O source with `registry`, returning an error if its
231233
/// already registered.
232234
fn associate(&self, registry: &Registry) -> io::Result<()> {
233-
let registry_id = poll::selector(&registry).id();
235+
let registry_id = registry.selector().id();
234236
let previous_id = self.id.swap(registry_id, Ordering::AcqRel);
235237

236238
if previous_id == Self::UNASSOCIATED {
@@ -247,7 +249,7 @@ impl SelectorId {
247249
/// error if its registered with a different `Registry` or not registered at
248250
/// all.
249251
fn check_association(&self, registry: &Registry) -> io::Result<()> {
250-
let registry_id = poll::selector(&registry).id();
252+
let registry_id = registry.selector().id();
251253
let id = self.id.load(Ordering::Acquire);
252254

253255
if id == registry_id {
@@ -268,7 +270,7 @@ impl SelectorId {
268270
/// Remove a previously made association from `registry`, returns an error
269271
/// if it was not previously associated with `registry`.
270272
fn remove_association(&self, registry: &Registry) -> io::Result<()> {
271-
let registry_id = poll::selector(&registry).id();
273+
let registry_id = registry.selector().id();
272274
let previous_id = self.id.swap(Self::UNASSOCIATED, Ordering::AcqRel);
273275

274276
if previous_id == registry_id {

src/poll.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -628,6 +628,11 @@ impl Registry {
628628
panic!("Only a single `Waker` can be active per `Poll` instance");
629629
}
630630
}
631+
632+
/// Get access to the `sys::Selector`.
633+
pub(crate) fn selector(&self) -> &sys::Selector {
634+
&self.selector
635+
}
631636
}
632637

633638
impl fmt::Debug for Registry {
@@ -643,11 +648,6 @@ impl AsRawFd for Registry {
643648
}
644649
}
645650

646-
/// Get access to the `sys::Selector` from `Registry`.
647-
pub(crate) fn selector(registry: &Registry) -> &sys::Selector {
648-
&registry.selector
649-
}
650-
651651
cfg_os_poll! {
652652
#[cfg(unix)]
653653
#[test]

src/sys/unix/sourcefd.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
use crate::{event, poll, Interest, Registry, Token};
1+
use crate::{event, Interest, Registry, Token};
22

33
use std::io;
44
use std::os::unix::io::RawFd;
@@ -98,7 +98,7 @@ impl<'a> event::Source for SourceFd<'a> {
9898
token: Token,
9999
interests: Interest,
100100
) -> io::Result<()> {
101-
poll::selector(registry).register(*self.0, token, interests)
101+
registry.selector().register(*self.0, token, interests)
102102
}
103103

104104
fn reregister(
@@ -107,10 +107,10 @@ impl<'a> event::Source for SourceFd<'a> {
107107
token: Token,
108108
interests: Interest,
109109
) -> io::Result<()> {
110-
poll::selector(registry).reregister(*self.0, token, interests)
110+
registry.selector().reregister(*self.0, token, interests)
111111
}
112112

113113
fn deregister(&mut self, registry: &Registry) -> io::Result<()> {
114-
poll::selector(registry).deregister(*self.0)
114+
registry.selector().deregister(*self.0)
115115
}
116116
}

src/sys/windows/mod.rs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ cfg_io_source! {
4545
use std::pin::Pin;
4646
use std::sync::{Arc, Mutex};
4747

48-
use crate::{poll, Interest, Registry, Token};
48+
use crate::{Interest, Registry, Token};
4949

5050
struct InternalState {
5151
selector: Arc<SelectorInner>,
@@ -101,7 +101,8 @@ cfg_io_source! {
101101
if self.inner.is_some() {
102102
Err(io::ErrorKind::AlreadyExists.into())
103103
} else {
104-
poll::selector(registry)
104+
registry
105+
.selector()
105106
.register(socket, token, interests)
106107
.map(|state| {
107108
self.inner = Some(Box::new(state));
@@ -117,7 +118,8 @@ cfg_io_source! {
117118
) -> io::Result<()> {
118119
match self.inner.as_mut() {
119120
Some(state) => {
120-
poll::selector(registry)
121+
registry
122+
.selector()
121123
.reregister(state.sock_state.clone(), token, interests)
122124
.map(|()| {
123125
state.token = token;

src/sys/windows/named_pipe.rs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ use winapi::um::minwinbase::{OVERLAPPED, OVERLAPPED_ENTRY};
1414

1515
use crate::event::Source;
1616
use crate::sys::windows::{Event, Overlapped};
17-
use crate::{poll, Registry};
17+
use crate::Registry;
1818
use crate::{Interest, Token};
1919

2020
/// Non-blocking windows named pipe.
@@ -396,10 +396,12 @@ impl Source for NamedPipe {
396396
}
397397

398398
if io.cp.is_none() {
399-
io.cp = Some(poll::selector(registry).clone_port());
399+
let selector = registry.selector();
400+
401+
io.cp = Some(selector.clone_port());
400402

401403
let inner_token = NEXT_TOKEN.fetch_add(2, Relaxed) + 2;
402-
poll::selector(registry)
404+
selector
403405
.inner
404406
.cp
405407
.add_handle(inner_token, &self.inner.handle)?;
@@ -716,7 +718,7 @@ fn write_done(status: &OVERLAPPED_ENTRY, events: Option<&mut Vec<Event>>) {
716718
impl Io {
717719
fn check_association(&self, registry: &Registry, required: bool) -> io::Result<()> {
718720
match self.cp {
719-
Some(ref cp) if !poll::selector(registry).same_port(cp) => Err(io::Error::new(
721+
Some(ref cp) if !registry.selector().same_port(cp) => Err(io::Error::new(
720722
io::ErrorKind::AlreadyExists,
721723
"I/O source already registered with a different `Registry`",
722724
)),

src/waker.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
use crate::{poll, sys, Registry, Token};
1+
use crate::{sys, Registry, Token};
22

33
use std::io;
44

@@ -84,7 +84,7 @@ impl Waker {
8484
pub fn new(registry: &Registry, token: Token) -> io::Result<Waker> {
8585
#[cfg(debug_assertions)]
8686
registry.register_waker();
87-
sys::Waker::new(poll::selector(&registry), token).map(|inner| Waker { inner })
87+
sys::Waker::new(registry.selector(), token).map(|inner| Waker { inner })
8888
}
8989

9090
/// Wake up the [`Poll`] associated with this `Waker`.

0 commit comments

Comments
 (0)