diff options
author | Conrad Meyer <cem@FreeBSD.org> | 2021-09-07 12:44:22 -0700 |
---|---|---|
committer | Conrad Meyer <cem@FreeBSD.org> | 2021-09-19 17:14:30 -0700 |
commit | b16e70eebf3b6c5c8f5e7e6860ff4b7b1ba3fa04 (patch) | |
tree | c0c94b2d4f52a11c9da3db92b933811a339f4ccc /src/poll.rs | |
parent | e94bf0e444f4e910d2837d6827809da32e8492c1 (diff) | |
download | nix-b16e70eebf3b6c5c8f5e7e6860ff4b7b1ba3fa04.zip |
Fix #411 - Provide accessors for 'events' in PollFd
Test: `cargo test --test test test_pollfd_events`
Diffstat (limited to 'src/poll.rs')
-rw-r--r-- | src/poll.rs | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/src/poll.rs b/src/poll.rs index 0eaf7e1d..8556c1bb 100644 --- a/src/poll.rs +++ b/src/poll.rs @@ -35,10 +35,21 @@ impl PollFd { } } - /// Returns the events that occured in the last call to `poll` or `ppoll`. + /// Returns the events that 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. pub fn revents(self) -> Option<PollFlags> { PollFlags::from_bits(self.pollfd.revents) } + + /// The events of interest for this `PollFd`. + pub fn events(self) -> PollFlags { + PollFlags::from_bits(self.pollfd.events).unwrap() + } + + /// Modify the events of interest for this `PollFd`. + pub fn set_events(&mut self, events: PollFlags) { + self.pollfd.events = events.bits(); + } } impl AsRawFd for PollFd { |