#[cfg(any( | |
target_os = "android", | |
target_os = "illumos", | |
target_os = "linux", | |
target_os = "solaris" | |
))] | |
mod epoll; | |
#[cfg(any( | |
target_os = "android", | |
target_os = "illumos", | |
target_os = "linux", | |
target_os = "solaris" | |
))] | |
pub(crate) use self::epoll::{event, Event, Events, Selector}; | |
#[cfg(any( | |
target_os = "dragonfly", | |
target_os = "freebsd", | |
target_os = "ios", | |
target_os = "macos", | |
target_os = "netbsd", | |
target_os = "openbsd" | |
))] | |
mod kqueue; | |
#[cfg(any( | |
target_os = "dragonfly", | |
target_os = "freebsd", | |
target_os = "ios", | |
target_os = "macos", | |
target_os = "netbsd", | |
target_os = "openbsd" | |
))] | |
pub(crate) use self::kqueue::{event, Event, Events, Selector}; | |
/// Lowest file descriptor used in `Selector::try_clone`. | |
/// | |
/// # Notes | |
/// | |
/// Usually fds 0, 1 and 2 are standard in, out and error. Some application | |
/// blindly assume this to be true, which means using any one of those a select | |
/// could result in some interesting and unexpected errors. Avoid that by using | |
/// an fd that doesn't have a pre-determined usage. | |
const LOWEST_FD: libc::c_int = 3; |