[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(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
fn fill_events(&mut self) {
|
fn fill_events(&mut self) -> Result<(), Error> {
|
||||||
let mut buf = &mut self.pending_events;
|
let mut buf = &mut self.pending_events;
|
||||||
loop {
|
loop {
|
||||||
buf.reserve(20);
|
buf.reserve(20);
|
||||||
|
@ -1224,7 +1224,7 @@ impl Device {
|
||||||
if sz == -1 {
|
if sz == -1 {
|
||||||
let errno = errno::errno();
|
let errno = errno::errno();
|
||||||
if errno != errno::Errno(libc::EAGAIN) {
|
if errno != errno::Errno(libc::EAGAIN) {
|
||||||
println!("ERROR! evdev needs to figure out how to expose this :( {}", errno);
|
return Err(Error::LibcError(errno));
|
||||||
} else {
|
} else {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -1234,15 +1234,15 @@ impl Device {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Exposes the raw evdev events without doing synchronization on SYN_DROPPED.
|
/// Exposes the raw evdev events without doing synchronization on SYN_DROPPED.
|
||||||
pub fn raw_events(&mut self) -> RawEvents {
|
pub fn raw_events(&mut self) -> Result<RawEvents, Error> {
|
||||||
self.fill_events();
|
try!(self.fill_events());
|
||||||
RawEvents::new(self)
|
Ok(RawEvents::new(self))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
pub fn events(&mut self) -> Events {
|
pub fn events(&mut self) -> Events {
|
||||||
Events(self)
|
Events(self)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue