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
.