diff options
author | Haibo Huang <hhb@google.com> | 2020-11-02 18:45:36 -0800 |
---|---|---|
committer | Haibo Huang <hhb@google.com> | 2020-11-02 18:45:36 -0800 |
commit | 3a1a50620397b347db105e65b3cab650c2c7bb72 (patch) | |
tree | fe408064c79f43f6575f398a4a33a4f9c4d69adf /src/sys/unix/selector/kqueue.rs | |
parent | 547d80671d6fbd3df9883d1670a6700eda533536 (diff) | |
download | mio-3a1a50620397b347db105e65b3cab650c2c7bb72.tar.gz |
Upgrade rust/crates/mio to 0.7.5
Test: make
Change-Id: I0b3424bb3d27a0db04cd91b8573fca44e311c491
Diffstat (limited to 'src/sys/unix/selector/kqueue.rs')
-rw-r--r-- | src/sys/unix/selector/kqueue.rs | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/src/sys/unix/selector/kqueue.rs b/src/sys/unix/selector/kqueue.rs index 2ebac9a..454f47d 100644 --- a/src/sys/unix/selector/kqueue.rs +++ b/src/sys/unix/selector/kqueue.rs @@ -4,7 +4,7 @@ use std::mem::MaybeUninit; use std::ops::{Deref, DerefMut}; use std::os::unix::io::{AsRawFd, RawFd}; #[cfg(debug_assertions)] -use std::sync::atomic::{AtomicUsize, Ordering}; +use std::sync::atomic::{AtomicBool, AtomicUsize, Ordering}; use std::time::Duration; use std::{cmp, io, ptr, slice}; @@ -69,6 +69,8 @@ pub struct Selector { #[cfg(debug_assertions)] id: usize, kq: RawFd, + #[cfg(debug_assertions)] + has_waker: AtomicBool, } impl Selector { @@ -79,6 +81,8 @@ impl Selector { #[cfg(debug_assertions)] id: NEXT_ID.fetch_add(1, Ordering::Relaxed), kq, + #[cfg(debug_assertions)] + has_waker: AtomicBool::new(false), }) } @@ -88,6 +92,8 @@ impl Selector { #[cfg(debug_assertions)] id: self.id, kq, + #[cfg(debug_assertions)] + has_waker: AtomicBool::new(self.has_waker.load(Ordering::Acquire)), }) } @@ -208,6 +214,11 @@ impl Selector { kevent_register(self.kq, &mut changes, &[libc::ENOENT as Data]) } + #[cfg(debug_assertions)] + pub fn register_waker(&self) -> bool { + self.has_waker.swap(true, Ordering::AcqRel) + } + // Used by `Waker`. #[cfg(any(target_os = "freebsd", target_os = "ios", target_os = "macos"))] pub fn setup_waker(&self, token: Token) -> io::Result<()> { @@ -292,7 +303,7 @@ fn check_errors(events: &[libc::kevent], ignored_errors: &[Data]) -> io::Result< Ok(()) } -cfg_net! { +cfg_io_source! { #[cfg(debug_assertions)] impl Selector { pub fn id(&self) -> usize { |