about summary refs log tree commit diff
path: root/src/libstd
diff options
context:
space:
mode:
authorAlex Crichton <alex@alexcrichton.com>2014-03-04 17:40:45 -0800
committerAlex Crichton <alex@alexcrichton.com>2014-03-05 09:11:10 -0800
commitd8bd8de82e19702ad26fff704ff9a4890ebe1bf7 (patch)
treea4eb4b305a72fd8cd1e19d49a8d91179566a25c7 /src/libstd
parent8334dd445fb10089a68808e7895f0c00d6fd0b3e (diff)
downloadrust-d8bd8de82e19702ad26fff704ff9a4890ebe1bf7.tar.gz
rust-d8bd8de82e19702ad26fff704ff9a4890ebe1bf7.zip
native: Move from usleep() to nanosleep()
Using nanosleep() allows us to gracefully recover from EINTR because on error it
fills in the second parameter with the remaining time to sleep.

Closes #12689
Diffstat (limited to 'src/libstd')
-rw-r--r--src/libstd/libc.rs2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/libstd/libc.rs b/src/libstd/libc.rs
index 7096765d9fc..d10fa7684e8 100644
--- a/src/libstd/libc.rs
+++ b/src/libstd/libc.rs
@@ -3682,6 +3682,7 @@ pub mod funcs {
             use libc::types::common::c95::c_void;
             use libc::types::os::arch::c95::{c_char, c_int, c_long, c_uint};
             use libc::types::os::arch::c95::{size_t};
+            use libc::types::os::common::posix01::timespec;
             use libc::types::os::arch::posix01::utimbuf;
             use libc::types::os::arch::posix88::{gid_t, off_t, pid_t};
             use libc::types::os::arch::posix88::{ssize_t, uid_t};
@@ -3731,6 +3732,7 @@ pub mod funcs {
                 pub fn setuid(uid: uid_t) -> c_int;
                 pub fn sleep(secs: c_uint) -> c_uint;
                 pub fn usleep(secs: c_uint) -> c_int;
+                pub fn nanosleep(rqtp: *timespec, rmtp: *mut timespec) -> c_int;
                 pub fn sysconf(name: c_int) -> c_long;
                 pub fn tcgetpgrp(fd: c_int) -> pid_t;
                 pub fn ttyname(fd: c_int) -> *c_char;