diff --git a/src/header/poll/mod.rs b/src/header/poll/mod.rs index 887402ceafa0961034115da9a85ab71f8d1a21e1..cbf4e9defbc2238964292966d07f28cb83720ed8 100644 --- a/src/header/poll/mod.rs +++ b/src/header/poll/mod.rs @@ -57,6 +57,12 @@ pub fn poll_epoll(fds: &mut [pollfd], timeout: c_int) -> c_int { for i in 0..fds.len() { let mut pfd = &mut fds[i]; + // Ignore the entry with negative fd, set the revents to 0 + if pfd.fd < 0 { + pfd.revents = 0; + continue; + } + let mut event = epoll_event { events: 0, data: epoll_data { u64: i as u64 },