pub struct PollFd<'fd> { /* private fields */ }Expand description
Implementations§
Source§impl<'fd> PollFd<'fd>
impl<'fd> PollFd<'fd>
Sourcepub fn new(fd: BorrowedFd<'fd>, events: PollFlags) -> PollFd<'fd>
pub fn new(fd: BorrowedFd<'fd>, events: PollFlags) -> PollFd<'fd>
Creates a new PollFd specifying the events of interest
for a given file descriptor.
§Examples
let (r, w) = pipe().unwrap();
let pfd = PollFd::new(r.as_fd(), PollFlags::POLLIN);
let mut fds = [pfd];
poll(&mut fds, PollTimeout::NONE).unwrap();
let mut buf = [0u8; 80];
read(r.as_raw_fd(), &mut buf[..]);Sourcepub fn revents(self) -> Option<PollFlags>
pub fn revents(self) -> Option<PollFlags>
Returns the events that occurred in the last call to poll or ppoll. Will only return
None if the kernel provides status flags that Nix does not know about.
Sourcepub fn any(self) -> Option<bool>
pub fn any(self) -> Option<bool>
Returns if any of the events of interest occured in the last call to poll or ppoll. Will
only return None if the kernel provides status flags that Nix does not know about.
Equivalent to x.revents()? != PollFlags::empty().
This is marginally more efficient than PollFd::all.
Sourcepub fn all(self) -> Option<bool>
pub fn all(self) -> Option<bool>
Returns if all the events of interest occured in the last call to poll or ppoll. Will
only return None if the kernel provides status flags that Nix does not know about.
Equivalent to x.revents()? & x.events() == x.events().
This is marginally less efficient than PollFd::any.
Sourcepub fn set_events(&mut self, events: PollFlags)
pub fn set_events(&mut self, events: PollFlags)
Modify the events of interest for this PollFd.