[fix] Do error handling in fill_events and raw_events
This commit is contained in:
parent
9839b61bac
commit
d556b9dcab
1 changed files with 6 additions and 6 deletions
12
src/lib.rs
12
src/lib.rs
|
@ -1210,7 +1210,7 @@ impl Device {
|
|||
Ok(())
|
||||
}
|
||||
|
||||
fn fill_events(&mut self) {
|
||||
fn fill_events(&mut self) -> Result<(), Error> {
|
||||
let mut buf = &mut self.pending_events;
|
||||
loop {
|
||||
buf.reserve(20);
|
||||
|
@ -1224,7 +1224,7 @@ impl Device {
|
|||
if sz == -1 {
|
||||
let errno = errno::errno();
|
||||
if errno != errno::Errno(libc::EAGAIN) {
|
||||
println!("ERROR! evdev needs to figure out how to expose this :( {}", errno);
|
||||
return Err(Error::LibcError(errno));
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
|
@ -1234,15 +1234,15 @@ impl Device {
|
|||
}
|
||||
}
|
||||
}
|
||||
Ok(())
|
||||
}
|
||||
|
||||
/// Exposes the raw evdev events without doing synchronization on SYN_DROPPED.
|
||||
pub fn raw_events(&mut self) -> RawEvents {
|
||||
self.fill_events();
|
||||
RawEvents::new(self)
|
||||
pub fn raw_events(&mut self) -> Result<RawEvents, Error> {
|
||||
try!(self.fill_events());
|
||||
Ok(RawEvents::new(self))
|
||||
}
|
||||
|
||||
|
||||
pub fn events(&mut self) -> Events {
|
||||
Events(self)
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue