From f51355807692b0d6920b83f2ed6f0124b671b77d Mon Sep 17 00:00:00 2001 From: Paul Osborne Date: Tue, 19 Feb 2019 22:23:19 -0600 Subject: [PATCH] tokio-reactor: impl AsRawFd for reactor for unix (#890) In order to support nesting a tokio reactor within another event system exposing the file descriptor for the underlying reactor is useful and is already implemented for mio::Poll. Signed-off-by: Paul Osborne --- tokio-reactor/src/lib.rs | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/tokio-reactor/src/lib.rs b/tokio-reactor/src/lib.rs index b574fcf55..cb83d37bf 100644 --- a/tokio-reactor/src/lib.rs +++ b/tokio-reactor/src/lib.rs @@ -74,6 +74,8 @@ use std::sync::atomic::Ordering::{Relaxed, SeqCst}; use std::sync::atomic::AtomicUsize; use std::sync::{Arc, Weak}; use std::time::{Duration, Instant}; +#[cfg(all(unix, not(target_os = "fuchsia")))] +use std::os::unix::io::{AsRawFd, RawFd}; use log::Level; use mio::event::Evented; @@ -429,6 +431,13 @@ impl Reactor { } } +#[cfg(all(unix, not(target_os = "fuchsia")))] +impl AsRawFd for Reactor { + fn as_raw_fd(&self) -> RawFd { + self.inner.io.as_raw_fd() + } +} + impl Park for Reactor { type Unpark = Handle; type Error = io::Error;