From 75cb7033c719cd0ece8b1b8d85e199d5e24643ea Mon Sep 17 00:00:00 2001 From: Jeremy Soller <jeremy@system76.com> Date: Sun, 28 Apr 2019 13:33:17 -0600 Subject: [PATCH] Fix use of timeout in epoll_pwait on redox --- src/platform/redox/epoll.rs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/platform/redox/epoll.rs b/src/platform/redox/epoll.rs index 3274860a..dd0dfc35 100644 --- a/src/platform/redox/epoll.rs +++ b/src/platform/redox/epoll.rs @@ -105,13 +105,15 @@ impl PalEpoll for Sys { } let read = bytes_read as usize / mem::size_of::<epoll_event>(); + let mut count = 0; for i in 0..read { unsafe { let event_ptr = events.add(i); let event = *(event_ptr as *mut Event); if let Some(ref timer) = timer_opt { if event.id as c_int == timer.fd { - return EINTR; + // Do not count timer event + continue; } } *event_ptr = epoll_event { @@ -119,9 +121,10 @@ impl PalEpoll for Sys { data: mem::transmute(event.data), ..Default::default() }; + count += 1; } } - read as c_int + count as c_int } } -- GitLab