aboutsummaryrefslogtreecommitdiff
path: root/src/sys/epoll.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/sys/epoll.rs')
-rw-r--r--src/sys/epoll.rs37
1 files changed, 28 insertions, 9 deletions
diff --git a/src/sys/epoll.rs b/src/sys/epoll.rs
index 6bc2a25..58def2e 100644
--- a/src/sys/epoll.rs
+++ b/src/sys/epoll.rs
@@ -1,9 +1,9 @@
-use crate::Result;
use crate::errno::Errno;
+use crate::Result;
use libc::{self, c_int};
+use std::mem;
use std::os::unix::io::RawFd;
use std::ptr;
-use std::mem;
libc_bitflags!(
pub struct EpollFlags: c_int {
@@ -18,7 +18,6 @@ libc_bitflags!(
EPOLLERR;
EPOLLHUP;
EPOLLRDHUP;
- #[cfg(target_os = "linux")] // Added in 4.5; not in Android.
EPOLLEXCLUSIVE;
#[cfg(not(target_arch = "mips"))]
EPOLLWAKEUP;
@@ -36,7 +35,7 @@ pub enum EpollOp {
EpollCtlMod = libc::EPOLL_CTL_MOD,
}
-libc_bitflags!{
+libc_bitflags! {
pub struct EpollCreateFlags: c_int {
EPOLL_CLOEXEC;
}
@@ -50,7 +49,12 @@ pub struct EpollEvent {
impl EpollEvent {
pub fn new(events: EpollFlags, data: u64) -> Self {
- EpollEvent { event: libc::epoll_event { events: events.bits() as u32, u64: data } }
+ EpollEvent {
+ event: libc::epoll_event {
+ events: events.bits() as u32,
+ u64: data,
+ },
+ }
}
pub fn empty() -> Self {
@@ -81,8 +85,14 @@ pub fn epoll_create1(flags: EpollCreateFlags) -> Result<RawFd> {
}
#[inline]
-pub fn epoll_ctl<'a, T>(epfd: RawFd, op: EpollOp, fd: RawFd, event: T) -> Result<()>
- where T: Into<Option<&'a mut EpollEvent>>
+pub fn epoll_ctl<'a, T>(
+ epfd: RawFd,
+ op: EpollOp,
+ fd: RawFd,
+ event: T,
+) -> Result<()>
+where
+ T: Into<Option<&'a mut EpollEvent>>,
{
let mut event: Option<&mut EpollEvent> = event.into();
if event.is_none() && op != EpollOp::EpollCtlDel {
@@ -100,9 +110,18 @@ pub fn epoll_ctl<'a, T>(epfd: RawFd, op: EpollOp, fd: RawFd, event: T) -> Result
}
#[inline]
-pub fn epoll_wait(epfd: RawFd, events: &mut [EpollEvent], timeout_ms: isize) -> Result<usize> {
+pub fn epoll_wait(
+ epfd: RawFd,
+ events: &mut [EpollEvent],
+ timeout_ms: isize,
+) -> Result<usize> {
let res = unsafe {
- libc::epoll_wait(epfd, events.as_mut_ptr() as *mut libc::epoll_event, events.len() as c_int, timeout_ms as c_int)
+ libc::epoll_wait(
+ epfd,
+ events.as_mut_ptr() as *mut libc::epoll_event,
+ events.len() as c_int,
+ timeout_ms as c_int,
+ )
};
Errno::result(res).map(|r| r as usize)