about summary refs log tree commit diff
path: root/src/libnative
diff options
context:
space:
mode:
authorAlex Crichton <alex@alexcrichton.com>2014-01-23 12:33:34 -0800
committerAlex Crichton <alex@alexcrichton.com>2014-01-23 12:34:01 -0800
commitaa78da3f45486bb6ef336f044b47072e99c595d2 (patch)
tree2eb82c872bcd48ce4634f8451dbc96efc144daf8 /src/libnative
parent657e3530225410d167d7f1ee827f15bc69cd965e (diff)
downloadrust-aa78da3f45486bb6ef336f044b47072e99c595d2.tar.gz
rust-aa78da3f45486bb6ef336f044b47072e99c595d2.zip
Handle EINTR in epoll for native timers
Diffstat (limited to 'src/libnative')
-rw-r--r--src/libnative/io/timer_timerfd.rs1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/libnative/io/timer_timerfd.rs b/src/libnative/io/timer_timerfd.rs
index 4912f4f431f..0556b0c2599 100644
--- a/src/libnative/io/timer_timerfd.rs
+++ b/src/libnative/io/timer_timerfd.rs
@@ -85,6 +85,7 @@ fn helper(input: libc::c_int, messages: Port<Req>) {
                             events.len() as libc::c_int, -1)
         } {
             0 => fail!("epoll_wait returned immediately!"),
+            -1 if os::errno() == libc::EINTR as int => { continue }
             -1 => fail!("epoll wait failed: {}", os::last_os_error()),
             n => n
         };