@@ -24,9 +24,12 @@ use input::{
2424use libc:: { O_ACCMODE , O_RDONLY , O_RDWR , O_WRONLY , c_char} ;
2525use input_linux:: { uinput:: UInputHandle , EventKind , Key , SynchronizeKind } ;
2626use input_linux_sys:: { uinput_setup, input_id, timeval, input_event} ;
27- use nix:: sys:: {
28- signal:: { Signal , SigSet } ,
29- epoll:: { Epoll , EpollCreateFlags , EpollEvent , EpollFlags }
27+ use nix:: {
28+ sys:: {
29+ signal:: { Signal , SigSet } ,
30+ epoll:: { Epoll , EpollCreateFlags , EpollEvent , EpollFlags }
31+ } ,
32+ errno:: Errno
3033} ;
3134use privdrop:: PrivDrop ;
3235
@@ -415,7 +418,10 @@ fn real_main(drm: &mut DrmBackend) {
415418 needs_complete_redraw = false ;
416419 }
417420
418- epoll. wait ( & mut [ EpollEvent :: new ( EpollFlags :: EPOLLIN , 0 ) ] , next_timeout_ms as isize ) . unwrap ( ) ;
421+ match epoll. wait ( & mut [ EpollEvent :: new ( EpollFlags :: EPOLLIN , 0 ) ] , next_timeout_ms as isize ) {
422+ Err ( Errno :: EINTR ) | Ok ( _) => { 0 } ,
423+ e => e. unwrap ( ) ,
424+ } ;
419425 input_tb. dispatch ( ) . unwrap ( ) ;
420426 input_main. dispatch ( ) . unwrap ( ) ;
421427 for event in & mut input_tb. clone ( ) . chain ( input_main. clone ( ) ) {
0 commit comments