In test failures which occurred before I introeduced
packetframe: Fuse: Do not persist EINTR or EWOULDBLOCK
I think I observed poll() returning EINTR. Better to handle
that here even if the next layer up might do so.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
} else {
None
};
- self.poll.poll(&mut self.events, timeout)?;
+ loop {
+ match self.poll.poll(&mut self.events, timeout) {
+ Err(e) if e.kind() == ErrorKind::Interrupted => continue,
+ Err(e) => throw!(e),
+ Ok(()) => break,
+ }
+ }
if self.events.is_empty() { throw!(io::ErrorKind::TimedOut) }
}
}